From 07d421c2c7e25ce2cec07db3d5bfe9c1e42247ed Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Tue, 12 Nov 2024 12:59:04 -0500 Subject: [PATCH 01/15] Update import scripts --- import-added-ocaml-source-files.sh | 20 +++++++++++--------- import-ocaml-source.sh | 17 ++++++++++++----- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/import-added-ocaml-source-files.sh b/import-added-ocaml-source-files.sh index 2f979c36d..64d037884 100755 --- a/import-added-ocaml-source-files.sh +++ b/import-added-ocaml-source-files.sh @@ -7,11 +7,12 @@ cd "$(dirname "${BASH_SOURCE[0]}")" # Script arguments with their default values commitish=main repository=https://github.com/ocaml-flambda/flambda-backend -subdirectory=ocaml +subdirectory=. +old_subdirectory=. function usage () { cat <&2 exit 1 @@ -39,7 +41,7 @@ esac # First, fetch the new flambda-backend sources (which include ocaml-jst). function sorted_files_at_committish() { - git ls-tree -r --name-only "$1" | sort + git ls-tree -r --name-only "$1" "$2" | sed "s#^$2/##" | sort } git fetch "$repository" "$(cat upstream/ocaml_flambda/base-rev.txt)" @@ -48,15 +50,15 @@ rev=$(git rev-parse FETCH_HEAD) function files_new_at_fetch_head() { comm -13 \ - <(sorted_files_at_committish "$(cat upstream/ocaml_flambda/base-rev.txt)") \ - <(sorted_files_at_committish FETCH_HEAD) + <(sorted_files_at_committish "$(cat upstream/ocaml_flambda/base-rev.txt)" "$old_subdirectory") \ + <(sorted_files_at_committish FETCH_HEAD "$subdirectory") } function directories_from_previous_import() { comm -12 \ <(cd src/ocaml; ls -d */) \ <(cd upstream/ocaml_flambda; ls -d */) \ - | xargs -n 1 printf "^$subdirectory/%s\n" + | xargs -n 1 printf "^%s\n" } files=$(files_new_at_fetch_head | grep -f <(directories_from_previous_import)) @@ -69,9 +71,9 @@ for file in $files; do case ${answer} in y|Y|"" ) echo "Importing $file" - ocaml_flambda_file=upstream/ocaml_flambda/"${file#$subdirectory/}" + ocaml_flambda_file=upstream/ocaml_flambda/"${file}" git show "FETCH_HEAD:$file" > "$ocaml_flambda_file" - cp "$ocaml_flambda_file" src/$file + cp "$ocaml_flambda_file" src/ocaml/$file ;; * ) echo "Skipping $file; run '$0' again in order to make a different decision" diff --git a/import-ocaml-source.sh b/import-ocaml-source.sh index 11053ef82..a1b0514b6 100755 --- a/import-ocaml-source.sh +++ b/import-ocaml-source.sh @@ -4,11 +4,12 @@ cd "$(dirname "${BASH_SOURCE[0]}")" # Script arguments with their default values repository=https://github.com/ocaml-flambda/flambda-backend -subdirectory=ocaml +subdirectory=. +old_subdirectory=. function usage () { cat <&2 exit 1 @@ -68,7 +70,7 @@ old_base_rev="$(cat upstream/ocaml_flambda/base-rev.txt)" current_head="$(git symbolic-ref --short HEAD)" # First, add any files that have been added since the last import. -./import-added-ocaml-source-files.sh "$commitish" "$repository" "$subdirectory" +./import-added-ocaml-source-files.sh "$commitish" "$repository" "$subdirectory" "$old_subdirectory" # Then, fetch the new flambda-backend sources (which include ocaml-jst) and # copy into upstream/ocaml_flambda @@ -77,7 +79,12 @@ rev=$(git rev-parse FETCH_HEAD) cd upstream/ocaml_flambda echo $rev > base-rev.txt for file in $(git ls-tree --name-only -r HEAD | grep -v base-rev.txt); do - git show "FETCH_HEAD:$subdirectory/$file" > "$file"; + if [[ "$subdirectory" = "." ]]; then + git_file="$file" + else + git_file="$subdirectory/$file" + fi + git show "FETCH_HEAD:$git_file" > "$file" done git add -u . cd ../.. From 3052ea2de25b8b37ebe75462fdc2511ec9e2ee52 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 10:35:45 -0500 Subject: [PATCH 02/15] Import ocaml sources for ocaml-flambda/flambda-backend@e1efceb89a5 --- upstream/ocaml_flambda/base-rev.txt | 2 +- upstream/ocaml_flambda/configure | 23359 ---------------- .../ocaml_flambda/file_formats/cmi_format.ml | 9 +- .../ocaml_flambda/file_formats/cmi_format.mli | 3 +- .../ocaml_flambda/file_formats/cmt_format.ml | 7 +- .../ocaml_flambda/file_formats/cmx_format.mli | 73 +- .../file_formats/linear_format.ml | 13 +- upstream/ocaml_flambda/parsing/ast_helper.ml | 78 +- upstream/ocaml_flambda/parsing/ast_helper.mli | 47 +- .../ocaml_flambda/parsing/ast_invariants.ml | 37 +- .../ocaml_flambda/parsing/ast_iterator.ml | 318 +- .../ocaml_flambda/parsing/ast_iterator.mli | 9 +- upstream/ocaml_flambda/parsing/ast_mapper.ml | 468 +- upstream/ocaml_flambda/parsing/ast_mapper.mli | 25 +- .../parsing/builtin_attributes.ml | 59 +- .../parsing/builtin_attributes.mli | 8 + upstream/ocaml_flambda/parsing/depend.ml | 199 +- upstream/ocaml_flambda/parsing/jane_syntax.ml | 1522 - .../ocaml_flambda/parsing/jane_syntax.mli | 474 - .../parsing/jane_syntax_parsing.ml | 874 - .../parsing/jane_syntax_parsing.mli | 272 - upstream/ocaml_flambda/parsing/parse.ml | 3 + upstream/ocaml_flambda/parsing/parser.mly | 380 +- .../ocaml_flambda/parsing/parser_types.ml | 46 - .../ocaml_flambda/parsing/parser_types.mli | 13 - upstream/ocaml_flambda/parsing/parsetree.mli | 150 +- upstream/ocaml_flambda/parsing/pprintast.ml | 422 +- upstream/ocaml_flambda/parsing/pprintast.mli | 3 +- upstream/ocaml_flambda/parsing/printast.ml | 131 +- upstream/ocaml_flambda/parsing/printast.mli | 3 +- upstream/ocaml_flambda/parsing/syntaxerr.ml | 2 + upstream/ocaml_flambda/parsing/syntaxerr.mli | 1 + upstream/ocaml_flambda/typing/ctype.ml | 2 +- upstream/ocaml_flambda/typing/env.ml | 457 +- upstream/ocaml_flambda/typing/env.mli | 30 +- upstream/ocaml_flambda/typing/envaux.ml | 6 +- upstream/ocaml_flambda/typing/jkind.ml | 100 +- upstream/ocaml_flambda/typing/jkind.mli | 18 +- upstream/ocaml_flambda/typing/jkind_types.ml | 2 +- upstream/ocaml_flambda/typing/jkind_types.mli | 2 +- upstream/ocaml_flambda/typing/mode_intf.mli | 2 + upstream/ocaml_flambda/typing/oprint.ml | 2 - upstream/ocaml_flambda/typing/outcometree.mli | 2 - upstream/ocaml_flambda/typing/parmatch.ml | 1 + upstream/ocaml_flambda/typing/patterns.ml | 1 + .../ocaml_flambda/typing/persistent_env.ml | 538 +- .../ocaml_flambda/typing/persistent_env.mli | 54 +- upstream/ocaml_flambda/typing/predef.ml | 37 +- upstream/ocaml_flambda/typing/printtyp.ml | 19 +- upstream/ocaml_flambda/typing/printtyped.ml | 8 +- upstream/ocaml_flambda/typing/solver.ml | 140 +- .../ocaml_flambda/typing/tast_iterator.ml | 13 +- upstream/ocaml_flambda/typing/tast_mapper.ml | 16 +- upstream/ocaml_flambda/typing/typeclass.ml | 2 +- upstream/ocaml_flambda/typing/typecore.ml | 447 +- upstream/ocaml_flambda/typing/typecore.mli | 1 + upstream/ocaml_flambda/typing/typedecl.ml | 108 +- upstream/ocaml_flambda/typing/typedecl.mli | 2 +- upstream/ocaml_flambda/typing/typedtree.ml | 57 +- upstream/ocaml_flambda/typing/typedtree.mli | 38 +- upstream/ocaml_flambda/typing/typemod.ml | 256 +- upstream/ocaml_flambda/typing/typemode.ml | 2 +- upstream/ocaml_flambda/typing/typeopt.ml | 86 +- upstream/ocaml_flambda/typing/typetexp.ml | 163 +- upstream/ocaml_flambda/typing/typetexp.mli | 2 +- .../typing/uniqueness_analysis.ml | 157 +- upstream/ocaml_flambda/typing/untypeast.ml | 210 +- upstream/ocaml_flambda/typing/untypeast.mli | 3 +- .../ocaml_flambda/typing/value_rec_check.ml | 4 +- upstream/ocaml_flambda/utils/clflags.ml | 22 +- upstream/ocaml_flambda/utils/clflags.mli | 5 +- .../ocaml_flambda/utils/language_extension.ml | 436 - .../utils/language_extension.mli | 160 - .../utils/language_extension_kernel.ml | 100 +- .../utils/language_extension_kernel.mli | 52 +- upstream/ocaml_flambda/utils/profile.ml | 6 +- 76 files changed, 2850 insertions(+), 29929 deletions(-) diff --git a/upstream/ocaml_flambda/base-rev.txt b/upstream/ocaml_flambda/base-rev.txt index ebb0c4d35..11132f977 100644 --- a/upstream/ocaml_flambda/base-rev.txt +++ b/upstream/ocaml_flambda/base-rev.txt @@ -1 +1 @@ -8a585cf2429644141a48bd23db7b237b20360938 +e1efceb89a5fb273cdb506c612f75479bee6042a diff --git a/upstream/ocaml_flambda/configure b/upstream/ocaml_flambda/configure index 0d0782038..e69de29bb 100644 --- a/upstream/ocaml_flambda/configure +++ b/upstream/ocaml_flambda/configure @@ -1,23359 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for OCaml 5.2.0+jst. -# -# Report bugs to . -# -# -# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, -# Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: -if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - - -# Reset variables that may have inherited troublesome values from -# the environment. - -# IFS needs to be set, to space, tab, and newline, in precisely that order. -# (If _AS_PATH_WALK were called with IFS unset, it would have the -# side effect of setting IFS to empty, thus disabling word splitting.) -# Quoting is to prevent editors from complaining about space-tab. -as_nl=' -' -export as_nl -IFS=" "" $as_nl" - -PS1='$ ' -PS2='> ' -PS4='+ ' - -# Ensure predictable behavior from utilities with locale-dependent output. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# We cannot yet rely on "unset" to work, but we need these variables -# to be unset--not just set to an empty or harmless value--now, to -# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct -# also avoids known problems related to "unset" and subshell syntax -# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). -for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH -do eval test \${$as_var+y} \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done - -# Ensure that fds 0, 1, and 2 are open. -if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi -if (exec 3>&2) ; then :; else exec 2>/dev/null; fi - -# The user is always right. -if ${PATH_SEPARATOR+false} :; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - test -r "$as_dir$0" && as_myself=$as_dir$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="as_nop=: -if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else \$as_nop - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ) -then : - -else \$as_nop - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -blah=\$(echo \$(echo blah)) -test x\"\$blah\" = xblah || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 - - test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( - ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO - PATH=/empty FPATH=/empty; export PATH FPATH - test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ - || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null -then : - as_have_required=yes -else $as_nop - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null -then : - -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null -then : - CONFIG_SHELL=$as_shell as_have_required=yes - if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null -then : - break 2 -fi -fi - done;; - esac - as_found=false -done -IFS=$as_save_IFS -if $as_found -then : - -else $as_nop - if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null -then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi -fi - - - if test "x$CONFIG_SHELL" != x -then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno -then : - printf "%s\n" "$0: This script requires a shell more modern than all" - printf "%s\n" "$0: the shells that I found on your system." - if test ${ZSH_VERSION+y} ; then - printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" - printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." - else - printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and caml-list@inria.fr -$0: about your system, including any error possibly output -$0: before this message. Then install a modern shell, or -$0: manually run the script under such a shell if you do -$0: have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null -then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else $as_nop - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null -then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else $as_nop - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - printf "%s\n" "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -# Determine whether it's possible to make 'echo' print without a newline. -# These variables are no longer used directly by Autoconf, but are AC_SUBSTed -# for compatibility with existing Makefiles. -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -# For backward compatibility with old third-party macros, we provide -# the shell variables $as_echo and $as_echo_n. New code should use -# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. -as_echo='printf %s\n' -as_echo_n='printf %s' - - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - -SHELL=${CONFIG_SHELL-/bin/sh} - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='OCaml' -PACKAGE_TARNAME='ocaml' -PACKAGE_VERSION='5.2.0+jst' -PACKAGE_STRING='OCaml 5.2.0+jst' -PACKAGE_BUGREPORT='caml-list@inria.fr' -PACKAGE_URL='http://www.ocaml.org' - -ac_unique_file="runtime/interp.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_STDIO_H -# include -#endif -#ifdef HAVE_STDLIB_H -# include -#endif -#ifdef HAVE_STRING_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_header_c_list= -ac_subst_vars='LTLIBOBJS -LIBOBJS -DIFF -PTHREAD_CFLAGS -PTHREAD_LIBS -PTHREAD_CXX -PTHREAD_CC -ax_pthread_config -PKG_CONFIG -rlwrap -DIRECT_LD -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -flexlink -CPP -ac_ct_DEP_CC -DEP_CC -LT_SYS_LIBRARY_PATH -OTOOL64 -OTOOL -LIPO -NMEDIT -DSYMUTIL -MANIFEST_TOOL -AWK -RANLIB -STRIP -ac_ct_AR -DLLTOOL -OBJDUMP -LN_S -NM -ac_ct_DUMPBIN -DUMPBIN -FGREP -EGREP -GREP -SED -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -LIBTOOL -ac_ct_LD -LD -DEFAULT_STRING -WINDOWS_UNICODE_MODE -LIBUNWIND_LDFLAGS -LIBUNWIND_CPPFLAGS -DLLIBS -PARTIALLD -csc -target_os -target_vendor -target_cpu -target -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -target_bindir -ar_supports_response_files -QS -ocaml_libdir -ocaml_bindir -dune -poll_insertion -stack_allocation -intel_jcc_bug_cflags -naked_pointers_checker -naked_pointers -compute_deps -build_libraries_manpages -PACKLD -mkexe_ldflags_exp -mkdll_ldflags_exp -flexdll_chain -afl -oc_native_compflags -probes -function_sections -flat_float_array -windows_unicode -cmm_invariants -flambda_invariants -flambda2 -flambda -cpp_mangling -frame_pointers -no_partial_inlining_cflags -custom_ops_struct_size -profinfo_width -profinfo -reserved_header_bits -install_ocamlnat -install_source_artifacts -install_bytecode_programs -mksharedlibrpath -mkmaindll_exp -mkmaindll -mkdll_exp -mkdll -rpath -sharedlib_cflags -asm_cfi_supported -AS -endianness -ASPP -ocamltest_opt_target -ocamltest_target -ocamltest -build_ocamltest -documentation_tool_cmd -documentation_tool -with_ocamldoc -ocamldoc_opt_target -ocamldoc_target -build_ocamldoc -build_ocamltex -build_ocamldebug -with_debugger -as_has_debug_prefix_map -cc_has_debug_prefix_map -unix_directory -unix_library -ocamltest_libunix -ocamltest_CPP -optional_native_tools -optional_bytecode_tools -optional_libraries -lib_unix -lib_systhreads_path -lib_systhreads -lib_str -lib_runtime_events -lib_dynlink -otherlibraries -has_monotonic_clock -instrumented_runtime_libs -instrumented_runtime -debug_runtime -cmxs -natdynlink_archive -natdynlinkopts -natdynlink -supports_shared_libraries -mklib -AR -shebangscripts -flexlink_flags -flexdll_dir -bootstrapping_flexdll -flexdll_source_dir -ocamlc_cppflags -ocamlc_cflags -zstd_libs -native_ldflags -cclibs -oc_exe_ldflags -oc_dll_ldflags -oc_ldflags -oc_cppflags -tsan_native_runtime_c_sources -tsan -oc_cflags -toolchain -ccomptype -mkexe_via_cc_ldflags -mkexe_extra_flags -mkexedebugflag -mkexe_exp -mkexe -fpic -syslib -outputobj -outputexe -ocamlyacc_wstr_module -ln -unix_or_win32 -ocamlsrcdir -systhread_support -native_cppflags -native_cflags -system -model -arch64 -arch_specific_SOURCES -arch -SO -runtime_asm_objects -S -libext -OBJEXT -exeext -ac_tool_prefix -CSCFLAGS -CSC -DIFF_FLAGS -CC -LINEAR_MAGIC_NUMBER -CFG_MAGIC_NUMBER -CMS_MAGIC_NUMBER -CMT_MAGIC_NUMBER -CMXS_MAGIC_NUMBER -AST_INTF_MAGIC_NUMBER -AST_IMPL_MAGIC_NUMBER -CMXA_MAGIC_NUMBER -CMX_MAGIC_NUMBER -CMA_MAGIC_NUMBER -CMO_MAGIC_NUMBER -CMI_MAGIC_NUMBER -EXEC_MAGIC_NUMBER -MAGIC_NUMBER_LENGTH -OCAML_VERSION_SHORT -OCAML_VERSION_EXTRA -OCAML_VERSION_PATCHLEVEL -OCAML_VERSION_MINOR -OCAML_VERSION_MAJOR -OCAML_RELEASE_EXTRA -OCAML_DEVELOPMENT_VERSION -VERSION -default_build_target -native_compiler -CONFIGURE_ARGS -enable_stack_checks -runtime_suffix -enable_runtime5 -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -runstatedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_runtime5 -enable_stack_checks -with_dune -enable_debug_runtime -enable_ocamldebug -enable_debugger -enable_dependency_generation -enable_instrumented_runtime -enable_vmthreads -enable_systhreads -enable_tsan -enable_graph_lib -enable_str_lib -enable_unix_lib -enable_bigarray_lib -enable_ocamldoc -with_odoc -enable_ocamltest -enable_native_toplevel -enable_frame_pointers -enable_cpp_mangling -enable_naked_pointers -enable_naked_pointers_checker -enable_spacetime -enable_cfi -enable_imprecise_c99_float_ops -enable_installing_source_artifacts -enable_installing_bytecode_programs -enable_native_compiler -enable_flambda -enable_flambda_invariants -enable_flambda2 -enable_cmm_invariants -with_target_bindir -with_target_sh -enable_stdlib_manpages -enable_warn_error -enable_force_safe_string -enable_flat_float_array -enable_function_sections -enable_mmap_map_stack -with_afl -enable_stack_allocation -enable_poll_insertion -with_flexdll -with_zstd -enable_shared -enable_static -with_pic -enable_fast_install -with_aix_soname -with_gnu_ld -with_sysroot -enable_libtool_lock -' - ac_precious_vars='build_alias -host_alias -target_alias -AS -ASPP -PARTIALLD -DLLIBS -LIBUNWIND_CPPFLAGS -LIBUNWIND_LDFLAGS -WINDOWS_UNICODE_MODE -DEFAULT_STRING -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -LT_SYS_LIBRARY_PATH -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" - ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" - ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" - ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" - ac_useropt_orig=$ac_useropt - ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures OCaml 5.2.0+jst to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/ocaml] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] - --target=TARGET configure for building compilers for TARGET [HOST] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of OCaml 5.2.0+jst:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-runtime5 Use the OCaml 5 runtime - --enable-stack_checks Enable stack checks - --disable-debug-runtime do not build runtime with debugging support - --enable-ocamldebug build ocamldebug [default=auto] - --enable-debugger alias for --enable-ocamldebug - --disable-dependency-generation - do not compute dependency information for C sources - --enable-instrumented-runtime - build the instrumented runtime [default=auto] - - --disable-systhreads disable the Win32/POSIX threads library - --enable-tsan enable ThreadSanitizer support [default=no] - --disable-str-lib do not build the str library - --disable-unix-lib do not build the unix library - --disable-ocamldoc do not build the ocamldoc documentation system - --disable-ocamltest do not build ocamltest - --enable-native-toplevel - build the native toplevel - --enable-frame-pointers use frame pointers in runtime and generated code - --enable-cpp-mangling use cpp mangling for exported symbols - --disable-naked-pointers - do not allow naked pointers - --disable-cfi disable the CFI directives in assembly files - --enable-imprecise-c99-float-ops - enables potentially imprecise replacement - implementations of C99 float ops if unavailable on - this platform - --enable-installing-source-artifacts - install *.cmt* and *.mli files - --enable-installing-bytecode-programs - also install the bytecode versions of programs - --disable-native-compiler - do not build the native compiler - --enable-flambda enable the Flambda 1 middle end - --enable-flambda-invariants - enable invariants checks in flambda - --enable-flambda2 enable the Flambda 2 middle end - --enable-cmm-invariants enable invariants checks in Cmm - --disable-stdlib-manpages - do not build or install the library man pages - --disable-warn-error do not treat C compiler warnings as errors - --disable-flat-float-array - do not use flat float arrays - --disable-function-sections - do not emit each function in a separate section - --enable-mmap-map-stack use mmap to allocate stacks instead of malloc - --enable-stack-allocation - enable stack allocation of local values - --enable-poll-insertion enable insertion of poll points - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-dune Path to dune executable (otherwise PATH is searched) - --with-odoc build documentation with odoc - --with-target-bindir location of the runtime binaries on the target - system - --with-target-sh location of Posix sh on the target system - --with-afl use the AFL fuzzer - --with-flexdll bootstrap FlexDLL from the given sources - --without-zstd disable compression of compilation artefacts - --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use - both] - --with-aix-soname=aix|svr4|both - shared library versioning (aka "SONAME") variant to - provide on AIX, [default=aix]. - --with-gnu-ld assume the C compiler uses GNU ld [default=no] - --with-sysroot[=DIR] Search for dependent libraries within DIR (or the - compiler's sysroot if not specified). - --with-odoc - -Some influential environment variables: - AS which assembler to use - ASPP which assembler (with preprocessor) to use - PARTIALLD how to build partial (relocatable) object files - DLLIBS which libraries to use (in addition to -ldl) to load dynamic - libs - LIBUNWIND_CPPFLAGS - C preprocessor flags for libunwind (e.g. -I) - LIBUNWIND_LDFLAGS - linker flags for libunwind (e.g. -L - WINDOWS_UNICODE_MODE - how to handle Unicode under Windows: ansi, compatible - DEFAULT_STRING - - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - LT_SYS_LIBRARY_PATH - User-defined run-time library search path. - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -OCaml home page: . -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for configure.gnu first; this name is used for a wrapper for - # Metaconfig's "Configure" on case-insensitive file systems. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -OCaml configure 5.2.0+jst -generated by GNU Autoconf 2.71 - -Copyright (C) 2021 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest.beam - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext -then : - ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - } -then : - ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -printf %s "checking for $2... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$3=yes" -else $as_nop - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_check_func LINENO FUNC VAR -# ---------------------------------- -# Tests whether FUNC exists, setting the cache variable VAR accordingly -ac_fn_c_check_func () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -printf %s "checking for $2... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Define $2 to an innocuous variant, in case declares $2. - For example, HP-UX 11i declares gettimeofday. */ -#define $2 innocuous_$2 - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. */ - -#include -#undef $2 - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char $2 (); -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined __stub_$2 || defined __stub___$2 -choke me -#endif - -int -main (void) -{ -return $2 (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - eval "$3=yes" -else $as_nop - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_func - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - } -then : - ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that -# executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } -then : - ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: program exited with status $ac_status" >&5 - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES -# ------------------------------------------- -# Tests whether TYPE exists after having included INCLUDES, setting cache -# variable VAR accordingly. -ac_fn_c_check_type () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -printf %s "checking for $2... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - -else $as_nop - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type - -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_hi=$ac_mid; break -else $as_nop - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - done -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_lo=$ac_mid; break -else $as_nop - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - done -else $as_nop - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_hi=$ac_mid -else $as_nop - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval (void) { return $2; } -static unsigned long int ulongval (void) { return $2; } -#include -#include -int -main (void) -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - echo >>conftest.val; read $3 &5 -printf %s "checking whether $as_decl_name is declared... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - eval ac_save_FLAGS=\$$6 - as_fn_append $6 " $5" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main (void) -{ -#ifndef $as_decl_name -#ifdef __cplusplus - (void) $as_decl_use; -#else - (void) $as_decl_name; -#endif -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$3=yes" -else $as_nop - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - eval $6=\$ac_save_FLAGS - -fi -eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_check_decl - -# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES -# ---------------------------------------------------- -# Tries to find if the field MEMBER exists in type AGGR, after including -# INCLUDES, setting cache variable VAR accordingly. -ac_fn_c_check_member () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 -printf %s "checking for $2.$3... " >&6; } -if eval test \${$4+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main (void) -{ -static $2 ac_aggr; -if (ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$4=yes" -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$5 -int -main (void) -{ -static $2 ac_aggr; -if (sizeof ac_aggr.$3) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$4=yes" -else $as_nop - eval "$4=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -eval ac_res=\$$4 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_member -ac_configure_args_raw= -for ac_arg -do - case $ac_arg in - *\'*) - ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append ac_configure_args_raw " '$ac_arg'" -done - -case $ac_configure_args_raw in - *$as_nl*) - ac_safe_unquote= ;; - *) - ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. - ac_unsafe_a="$ac_unsafe_z#~" - ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" - ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; -esac - -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by OCaml $as_me 5.2.0+jst, which was -generated by GNU Autoconf 2.71. Invocation command line was - - $ $0$ac_configure_args_raw - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - printf "%s\n" "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Sanitize IFS. - IFS=" "" $as_nl" - # Save into config.log some information that might help in debugging. - { - echo - - printf "%s\n" "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - printf "%s\n" "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - printf "%s\n" "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - printf "%s\n" "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - printf "%s\n" "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - printf "%s\n" "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - printf "%s\n" "$as_me: caught signal $ac_signal" - printf "%s\n" "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -printf "%s\n" "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h - -printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -if test -n "$CONFIG_SITE"; then - ac_site_files="$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - ac_site_files="$prefix/share/config.site $prefix/etc/config.site" -else - ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" -fi - -for ac_site_file in $ac_site_files -do - case $ac_site_file in #( - */*) : - ;; #( - *) : - ac_site_file=./$ac_site_file ;; -esac - if test -f "$ac_site_file" && test -r "$ac_site_file"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -printf "%s\n" "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -printf "%s\n" "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Test code for whether the C compiler supports C89 (global declarations) -ac_c_conftest_c89_globals=' -/* Does the compiler advertise C89 conformance? - Do not test the value of __STDC__, because some compilers set it to 0 - while being otherwise adequately conformant. */ -#if !defined __STDC__ -# error "Compiler does not advertise C89 conformance" -#endif - -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ -struct buf { int x; }; -struct buf * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not \xHH hex character constants. - These do not provoke an error unfortunately, instead are silently treated - as an "x". The following induces an error, until -std is added to get - proper ANSI mode. Curiously \x00 != x always comes out true, for an - array size at least. It is necessary to write \x00 == 0 to get something - that is true only with -std. */ -int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) '\''x'\'' -int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), - int, int);' - -# Test code for whether the C compiler supports C89 (body of main). -ac_c_conftest_c89_main=' -ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); -' - -# Test code for whether the C compiler supports C99 (global declarations) -ac_c_conftest_c99_globals=' -// Does the compiler advertise C99 conformance? -#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L -# error "Compiler does not advertise C99 conformance" -#endif - -#include -extern int puts (const char *); -extern int printf (const char *, ...); -extern int dprintf (int, const char *, ...); -extern void *malloc (size_t); - -// Check varargs macros. These examples are taken from C99 6.10.3.5. -// dprintf is used instead of fprintf to avoid needing to declare -// FILE and stderr. -#define debug(...) dprintf (2, __VA_ARGS__) -#define showlist(...) puts (#__VA_ARGS__) -#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) -static void -test_varargs_macros (void) -{ - int x = 1234; - int y = 5678; - debug ("Flag"); - debug ("X = %d\n", x); - showlist (The first, second, and third items.); - report (x>y, "x is %d but y is %d", x, y); -} - -// Check long long types. -#define BIG64 18446744073709551615ull -#define BIG32 4294967295ul -#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) -#if !BIG_OK - #error "your preprocessor is broken" -#endif -#if BIG_OK -#else - #error "your preprocessor is broken" -#endif -static long long int bignum = -9223372036854775807LL; -static unsigned long long int ubignum = BIG64; - -struct incomplete_array -{ - int datasize; - double data[]; -}; - -struct named_init { - int number; - const wchar_t *name; - double average; -}; - -typedef const char *ccp; - -static inline int -test_restrict (ccp restrict text) -{ - // See if C++-style comments work. - // Iterate through items via the restricted pointer. - // Also check for declarations in for loops. - for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) - continue; - return 0; -} - -// Check varargs and va_copy. -static bool -test_varargs (const char *format, ...) -{ - va_list args; - va_start (args, format); - va_list args_copy; - va_copy (args_copy, args); - - const char *str = ""; - int number = 0; - float fnumber = 0; - - while (*format) - { - switch (*format++) - { - case '\''s'\'': // string - str = va_arg (args_copy, const char *); - break; - case '\''d'\'': // int - number = va_arg (args_copy, int); - break; - case '\''f'\'': // float - fnumber = va_arg (args_copy, double); - break; - default: - break; - } - } - va_end (args_copy); - va_end (args); - - return *str && number && fnumber; -} -' - -# Test code for whether the C compiler supports C99 (body of main). -ac_c_conftest_c99_main=' - // Check bool. - _Bool success = false; - success |= (argc != 0); - - // Check restrict. - if (test_restrict ("String literal") == 0) - success = true; - char *restrict newvar = "Another string"; - - // Check varargs. - success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); - test_varargs_macros (); - - // Check flexible array members. - struct incomplete_array *ia = - malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); - ia->datasize = 10; - for (int i = 0; i < ia->datasize; ++i) - ia->data[i] = i * 1.234; - - // Check named initializers. - struct named_init ni = { - .number = 34, - .name = L"Test wide string", - .average = 543.34343, - }; - - ni.number = 58; - - int dynamic_array[ni.number]; - dynamic_array[0] = argv[0][0]; - dynamic_array[ni.number - 1] = 543; - - // work around unused variable warnings - ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' - || dynamic_array[ni.number - 1] != 543); -' - -# Test code for whether the C compiler supports C11 (global declarations) -ac_c_conftest_c11_globals=' -// Does the compiler advertise C11 conformance? -#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L -# error "Compiler does not advertise C11 conformance" -#endif - -// Check _Alignas. -char _Alignas (double) aligned_as_double; -char _Alignas (0) no_special_alignment; -extern char aligned_as_int; -char _Alignas (0) _Alignas (int) aligned_as_int; - -// Check _Alignof. -enum -{ - int_alignment = _Alignof (int), - int_array_alignment = _Alignof (int[100]), - char_alignment = _Alignof (char) -}; -_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); - -// Check _Noreturn. -int _Noreturn does_not_return (void) { for (;;) continue; } - -// Check _Static_assert. -struct test_static_assert -{ - int x; - _Static_assert (sizeof (int) <= sizeof (long int), - "_Static_assert does not work in struct"); - long int y; -}; - -// Check UTF-8 literals. -#define u8 syntax error! -char const utf8_literal[] = u8"happens to be ASCII" "another string"; - -// Check duplicate typedefs. -typedef long *long_ptr; -typedef long int *long_ptr; -typedef long_ptr long_ptr; - -// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. -struct anonymous -{ - union { - struct { int i; int j; }; - struct { int k; long int l; } w; - }; - int m; -} v1; -' - -# Test code for whether the C compiler supports C11 (body of main). -ac_c_conftest_c11_main=' - _Static_assert ((offsetof (struct anonymous, i) - == offsetof (struct anonymous, w.k)), - "Anonymous union alignment botch"); - v1.i = 2; - v1.w.k = 5; - ok |= v1.i != 5; -' - -# Test code for whether the C compiler supports C11 (complete). -ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} -${ac_c_conftest_c99_globals} -${ac_c_conftest_c11_globals} - -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_c_conftest_c89_main} - ${ac_c_conftest_c99_main} - ${ac_c_conftest_c11_main} - return ok; -} -" - -# Test code for whether the C compiler supports C99 (complete). -ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} -${ac_c_conftest_c99_globals} - -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_c_conftest_c89_main} - ${ac_c_conftest_c99_main} - return ok; -} -" - -# Test code for whether the C compiler supports C89 (complete). -ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} - -int -main (int argc, char **argv) -{ - int ok = 0; - ${ac_c_conftest_c89_main} - return ok; -} -" - -as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" -as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" -as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" -as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" -as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" -as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" -as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" -as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" -as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" - -# Auxiliary files required by this configure script. -ac_aux_files="install-sh ltmain.sh config.guess config.sub" - -# Locations in which to look for auxiliary files. -ac_aux_dir_candidates="${srcdir}/build-aux" - -# Search for a directory containing all of the required auxiliary files, -# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. -# If we don't find one directory that contains all the files we need, -# we report the set of missing files from the *first* directory in -# $ac_aux_dir_candidates and give up. -ac_missing_aux_files="" -ac_first_candidate=: -printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in $ac_aux_dir_candidates -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - as_found=: - - printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 - ac_aux_dir_found=yes - ac_install_sh= - for ac_aux in $ac_aux_files - do - # As a special case, if "install-sh" is required, that requirement - # can be satisfied by any of "install-sh", "install.sh", or "shtool", - # and $ac_install_sh is set appropriately for whichever one is found. - if test x"$ac_aux" = x"install-sh" - then - if test -f "${as_dir}install-sh"; then - printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 - ac_install_sh="${as_dir}install-sh -c" - elif test -f "${as_dir}install.sh"; then - printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 - ac_install_sh="${as_dir}install.sh -c" - elif test -f "${as_dir}shtool"; then - printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 - ac_install_sh="${as_dir}shtool install -c" - else - ac_aux_dir_found=no - if $ac_first_candidate; then - ac_missing_aux_files="${ac_missing_aux_files} install-sh" - else - break - fi - fi - else - if test -f "${as_dir}${ac_aux}"; then - printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 - else - ac_aux_dir_found=no - if $ac_first_candidate; then - ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" - else - break - fi - fi - fi - done - if test "$ac_aux_dir_found" = yes; then - ac_aux_dir="$as_dir" - break - fi - ac_first_candidate=false - - as_found=false -done -IFS=$as_save_IFS -if $as_found -then : - -else $as_nop - as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 -fi - - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -if test -f "${ac_aux_dir}config.guess"; then - ac_config_guess="$SHELL ${ac_aux_dir}config.guess" -fi -if test -f "${ac_aux_dir}config.sub"; then - ac_config_sub="$SHELL ${ac_aux_dir}config.sub" -fi -if test -f "$ac_aux_dir/configure"; then - ac_configure="$SHELL ${ac_aux_dir}configure" -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' - and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Configuring OCaml version 5.2.0+jst" >&5 -printf "%s\n" "$as_me: Configuring OCaml version 5.2.0+jst" >&6;} - -# Configuration variables - -## Command-line arguments passed to configure -CONFIGURE_ARGS="$*" - -# Command to build executables -# Ultimately, MKEXE may build an executable using the C compiler or it may use -# a wrapper for a linker (i.e. flexlink). The build system must therefore not -# rely on $CFLAGS because these cannot be processed by flexlink (and are not -# passed) -mkexe_cmd='$(CC)' -mkexe_cflags='$(OC_CFLAGS) $(CFLAGS)' -mkexe_extra_flags='' -mkexe_via_cc_extra_cmd='' -mkexe_ldflags_prefix='' -mkexe_via_cc_ldflags_prefix='' - -# Flags for building executable files with debugging symbols -mkexedebugflag="-g" -common_cflags="" -common_cppflags="" -internal_cflags="" -internal_cppflags="" -ocamlc_cflags="" -ocamlc_cppflags="" -oc_ldflags="" -oc_dll_ldflags="" -oc_exe_ldflags="" - -tsan=false -# Passed to the linker by ocamlopt when tsan is enabled -oc_tsan_cflags="-fsanitize=thread" -oc_tsan_cppflags="-DWITH_THREAD_SANITIZER" -tsan_distinguish_volatile_cflags="" - -# The C# compiler and its flags -CSC="" -CSCFLAGS="" - -ostype="Unix" -SO="so" -toolchain="cc" -reserved_header_bits=8 -profinfo=true -profinfo_width=8 -custom_ops_struct_size=64 -instrumented_runtime=false -instrumented_runtime_libs="" -bootstrapping_flexdll=false -flexdll_dir= -lib_dynlink=false -lib_str=false -lib_systhreads=false -lib_systhreads_path="" -lib_unix=false -optional_libraries='' -optional_bytecode_tools='' -optional_native_tools='' -ocamltest_libunix=None -ocamltest_unix_impl="dummy" -unix_library="" -unix_directory="" - -# Information about the package - -## Source directory - - -## Directory containing auxiliary scripts used during build - - -# Runtime selection - -# Check whether --enable-runtime5 was given. -if test ${enable_runtime5+y} -then : - enableval=$enable_runtime5; -fi - -if test x"$enable_runtime5" = xyes -then : - runtime_suffix= -else $as_nop - runtime_suffix=4 -fi - -# Check whether --enable-stack_checks was given. -if test ${enable_stack_checks+y} -then : - enableval=$enable_stack_checks; -fi - - -## Output variables - - - - - - - -VERSION=5.2.0+jst - -OCAML_DEVELOPMENT_VERSION=false - -OCAML_RELEASE_EXTRA='Some (Plus, "jst")' - -OCAML_VERSION_MAJOR=5 - -OCAML_VERSION_MINOR=2 - -OCAML_VERSION_PATCHLEVEL=0 - -OCAML_VERSION_EXTRA=jst - -OCAML_VERSION_SHORT=5.2 - -printf "%s\n" "#define MAGIC_NUMBER_PREFIX \"Caml1999\"" >>confdefs.h - -printf "%s\n" "#define MAGIC_NUMBER_VERSION \"552\"" >>confdefs.h - -MAGIC_NUMBER_LENGTH=12 - -printf "%s\n" "#define EXEC_MAGIC_LENGTH 12" >>confdefs.h - -printf "%s\n" "#define EXEC_FORMAT \"X\"" >>confdefs.h - -EXEC_MAGIC_NUMBER=Caml1999X552 - -CMI_MAGIC_NUMBER=Caml1999I552 - -CMO_MAGIC_NUMBER=Caml1999O552 - -CMA_MAGIC_NUMBER=Caml1999A552 - -CMX_MAGIC_NUMBER=Caml1999Y552 - -CMXA_MAGIC_NUMBER=Caml1999Z552 - -AST_IMPL_MAGIC_NUMBER=Caml1999M552 - -AST_INTF_MAGIC_NUMBER=Caml1999N552 - -CMXS_MAGIC_NUMBER=Caml1999D552 - -CMT_MAGIC_NUMBER=Caml1999T552 - -CMS_MAGIC_NUMBER=Caml1999S552 - -CFG_MAGIC_NUMBER=Caml1999G552 - -LINEAR_MAGIC_NUMBER=Caml1999L552 - - - - - -# Note: This is present for the flexdll bootstrap where it exposed as the old -# TOOLPREF variable. It would be better if flexdll where updated to require -# WINDRES instead. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # TODO: rename this variable - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Generated files - -ac_config_files="$ac_config_files Makefile.build_config" - -ac_config_files="$ac_config_files Makefile.config" - -ac_config_files="$ac_config_files stdlib/sys.ml" - -ac_config_files="$ac_config_files manual/src/version.tex" - -ac_config_files="$ac_config_files manual/src/html_processing/src/common.ml" - -ac_config_files="$ac_config_files ocamltest/ocamltest_config.ml" - -ac_config_files="$ac_config_files utils/config.common.ml" - -ac_config_files="$ac_config_files utils/config.generated.ml" - -ac_config_files="$ac_config_files tools/eventlog_metadata" - -if test "x$enable_runtime5" = "xyes" -then : - ac_config_headers="$ac_config_headers runtime/caml/m.h" - - ac_config_headers="$ac_config_headers runtime/caml/s.h" - - ac_config_headers="$ac_config_headers runtime/caml/exec.h" - - ac_config_headers="$ac_config_headers runtime/caml/version.h" - - -else $as_nop - ac_config_headers="$ac_config_headers runtime4/caml/m.h" - - ac_config_headers="$ac_config_headers runtime4/caml/s.h" - - ac_config_headers="$ac_config_headers runtime4/caml/exec.h" - - ac_config_headers="$ac_config_headers runtime4/caml/version.h" - - - -fi -ac_config_files="$ac_config_files compilerlibs/META" - -ac_config_files="$ac_config_files otherlibs/dynlink/META" - -ac_config_files="$ac_config_files otherlibs/runtime_events/META" - -ac_config_files="$ac_config_files stdlib/META" - - -# Definitions related to the version of OCaml -printf "%s\n" "#define OCAML_VERSION_MAJOR 5" >>confdefs.h - -printf "%s\n" "#define OCAML_VERSION_MINOR 2" >>confdefs.h - -printf "%s\n" "#define OCAML_VERSION_PATCHLEVEL 0" >>confdefs.h - -printf "%s\n" "#define OCAML_VERSION_ADDITIONAL \"jst\"" >>confdefs.h - - printf "%s\n" "#define OCAML_VERSION_EXTRA \"jst\"" >>confdefs.h - -printf "%s\n" "#define OCAML_VERSION 50200" >>confdefs.h - -printf "%s\n" "#define OCAML_VERSION_STRING \"5.2.0+jst\"" >>confdefs.h - - -# Works out how many "o"s are needed in quoted strings - - -# Checks for system types - - - - - # Make sure we can run config.sub. -$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -printf %s "checking build system type... " >&6; } -if test ${ac_cv_build+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -printf "%s\n" "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -printf %s "checking host system type... " >&6; } -if test ${ac_cv_host+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || - as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -printf "%s\n" "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 -printf %s "checking target system type... " >&6; } -if test ${ac_cv_target+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test "x$target_alias" = x; then - ac_cv_target=$ac_cv_host -else - ac_cv_target=`$SHELL "${ac_aux_dir}config.sub" $target_alias` || - as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $target_alias failed" "$LINENO" 5 -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 -printf "%s\n" "$ac_cv_target" >&6; } -case $ac_cv_target in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; -esac -target=$ac_cv_target -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_target -shift -target_cpu=$1 -target_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -target_os=$* -IFS=$ac_save_IFS -case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac - - -# The aliases save the names the user supplied, while $host etc. -# will get canonicalized. -test -n "$target_alias" && - test "$program_prefix$program_suffix$program_transform_name" = \ - NONENONEs,x,x, && - program_prefix=${target_alias}- - -# Ensure that AC_CONFIG_LINKS will either create symlinks which are compatible -# with native Windows (i.e. NTFS symlinks, not WSL or Cygwin-emulated ones) or -# use its fallback mechanisms. Native Windows versions of ocamlc/ocamlopt cannot -# interpret either WSL or Cygwin-emulated symlinks. -case $host in #( - *-pc-windows|*-w64-mingw32*) : - ac_config_commands="$ac_config_commands native-symlinks" - ;; #( - *) : - ;; -esac - -# Systems that are known not to work, even in bytecode only. - -case $host in #( - *-pc-windows) : - as_fn_error 69 "the MSVC compiler is not supported currently" "$LINENO" 5 ;; #( - i386-*-solaris*) : - as_fn_error $? "Building for 32 bits target is not supported. \ -If your host is 64 bits, you can try with './configure CC=\"gcc -m64\"' \ -(or \"cc -m64\" if you don't have GCC)." "$LINENO" 5 ;; #( - *) : - ;; -esac - -# MSVC special case - -case $host in #( - *-pc-windows) : - CC=cl - ccomptype=msvc - S=asm - SO=dll - outputexe=-Fe - syslib='$(1).lib' ;; #( - *) : - ccomptype=cc - S=s - SO=so - outputexe='-o ' - syslib='-l$(1)' ;; -esac - -# Extract the first word of "csc", so it can be a program name with args. -set dummy csc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_csc+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$csc"; then - ac_cv_prog_csc="$csc" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_csc="csc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -csc=$ac_cv_prog_csc -if test -n "$csc"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $csc" >&5 -printf "%s\n" "$csc" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -if test -n "$csc" -then : - case $host in #( - *-*-mingw32*|*-pc-windows) : - CSC=csc - CSCFLAGS="/nologo /nowarn:1668" - case $host_cpu in #( - i*86) : - CSCFLAGS="$CSCFLAGS /platform:x86" ;; #( - *) : - ;; -esac ;; #( - *) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Mono is not yet supported - C sharp tests disabled" >&5 -printf "%s\n" "$as_me: WARNING: Mono is not yet supported - C sharp tests disabled" >&2;} ;; -esac -fi - -# Environment variables that are taken into account - - - - - -# Command-line arguments to configure - -# Extract the first word of "dune", so it can be a program name with args. -set dummy dune; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_dune+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $dune in - [\\/]* | ?:[\\/]*) - ac_cv_path_dune="$dune" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_dune="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -dune=$ac_cv_path_dune -if test -n "$dune"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dune" >&5 -printf "%s\n" "$dune" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - -# Check whether --with-dune was given. -if test ${with_dune+y} -then : - withval=$with_dune; dune=$with_dune -fi - - -# Check whether --enable-debug-runtime was given. -if test ${enable_debug_runtime+y} -then : - enableval=$enable_debug_runtime; -fi - - -# Check whether --enable-ocamldebug was given. -if test ${enable_ocamldebug+y} -then : - enableval=$enable_ocamldebug; -else $as_nop - enable_ocamldebug=auto -fi - - -# Check whether --enable-debugger was given. -if test ${enable_debugger+y} -then : - enableval=$enable_debugger; enable_ocamldebug=$enableval -fi - - -# Check whether --enable-dependency-generation was given. -if test ${enable_dependency_generation+y} -then : - enableval=$enable_dependency_generation; -else $as_nop - enable_dependency_generation=auto -fi - - - - -# Check whether --enable-instrumented-runtime was given. -if test ${enable_instrumented_runtime+y} -then : - enableval=$enable_instrumented_runtime; -else $as_nop - enable_instrumented_runtime=auto -fi - - -# Check whether --enable-vmthreads was given. -if test ${enable_vmthreads+y} -then : - enableval=$enable_vmthreads; if test "x$enableval" != 'xno' -then : - as_fn_error $? "The vmthreads library is no longer available. It was deleted in OCaml 4.09." "$LINENO" 5 -fi -fi - - -# Check whether --enable-systhreads was given. -if test ${enable_systhreads+y} -then : - enableval=$enable_systhreads; -fi - - -# Check whether --enable-tsan was given. -if test ${enable_tsan+y} -then : - enableval=$enable_tsan; -else $as_nop - enable_tsan=no -fi - - -# Preprocessor and linker flags for libunwind (currently only used when TSan is -# enabled) - - - - - -# Check whether --enable-graph-lib was given. -if test ${enable_graph_lib+y} -then : - enableval=$enable_graph_lib; if test "x$enableval" != 'xno' -then : - as_fn_error $? "The graphics library is no longer distributed with OCaml since version 4.09. It is now distributed as a separate \"graphics\" package: https://github.com/ocaml/graphics" "$LINENO" 5 -fi -fi - - -# Check whether --enable-str-lib was given. -if test ${enable_str_lib+y} -then : - enableval=$enable_str_lib; -fi - - -# Check whether --enable-unix-lib was given. -if test ${enable_unix_lib+y} -then : - enableval=$enable_unix_lib; -fi - - -# Check whether --enable-bigarray-lib was given. -if test ${enable_bigarray_lib+y} -then : - enableval=$enable_bigarray_lib; if test "x$enableval" != 'xno' -then : - as_fn_error $? "The bigarray-lib option was deleted in OCaml 5.0, as the Bigarray module is now part of the standard library." "$LINENO" 5 -fi -fi - - -# Check whether --enable-ocamldoc was given. -if test ${enable_ocamldoc+y} -then : - enableval=$enable_ocamldoc; -else $as_nop - enable_ocamldoc='auto' -fi - - - -# Check whether --with-odoc was given. -if test ${with_odoc+y} -then : - withval=$with_odoc; -fi - - - -# Check whether --enable-ocamltest was given. -if test ${enable_ocamltest+y} -then : - enableval=$enable_ocamltest; -fi - - -# Check whether --enable-native-toplevel was given. -if test ${enable_native_toplevel+y} -then : - enableval=$enable_native_toplevel; -fi - - -# Check whether --enable-frame-pointers was given. -if test ${enable_frame_pointers+y} -then : - enableval=$enable_frame_pointers; -fi - - -# Check whether --enable-cpp-mangling was given. -if test ${enable_cpp_mangling+y} -then : - enableval=$enable_cpp_mangling; -fi - - -# Check whether --enable-naked-pointers was given. -if test ${enable_naked_pointers+y} -then : - enableval=$enable_naked_pointers; -fi - - -# Check whether --enable-naked-pointers-checker was given. -if test ${enable_naked_pointers_checker+y} -then : - enableval=$enable_naked_pointers_checker; if test "x$enableval" != 'xno' -then : - as_fn_error $? "The naked pointers checker was removed in OCaml 5.0." "$LINENO" 5 -fi -fi - - -# Check whether --enable-spacetime was given. -if test ${enable_spacetime+y} -then : - enableval=$enable_spacetime; if test "x$enableval" != 'xno' -then : - as_fn_error $? "spacetime profiling was deleted in OCaml 4.12." "$LINENO" 5 -fi -fi - - -# Check whether --enable-cfi was given. -if test ${enable_cfi+y} -then : - enableval=$enable_cfi; -fi - - -# Check whether --enable-imprecise-c99-float-ops was given. -if test ${enable_imprecise_c99_float_ops+y} -then : - enableval=$enable_imprecise_c99_float_ops; -fi - - -# Check whether --enable-installing-source-artifacts was given. -if test ${enable_installing_source_artifacts+y} -then : - enableval=$enable_installing_source_artifacts; -fi - -# Check whether --enable-installing-bytecode-programs was given. -if test ${enable_installing_bytecode_programs+y} -then : - enableval=$enable_installing_bytecode_programs; -fi - - -# Check whether --enable-native-compiler was given. -if test ${enable_native_compiler+y} -then : - enableval=$enable_native_compiler; -fi - - -# Check whether --enable-flambda was given. -if test ${enable_flambda+y} -then : - enableval=$enable_flambda; -fi - - -# Check whether --enable-flambda-invariants was given. -if test ${enable_flambda_invariants+y} -then : - enableval=$enable_flambda_invariants; -fi - - -# Check whether --enable-flambda2 was given. -if test ${enable_flambda2+y} -then : - enableval=$enable_flambda2; -fi - - -# Check whether --enable-cmm-invariants was given. -if test ${enable_cmm_invariants+y} -then : - enableval=$enable_cmm_invariants; -fi - - - -# Check whether --with-target-bindir was given. -if test ${with_target_bindir+y} -then : - withval=$with_target_bindir; target_bindir=$withval -else $as_nop - target_bindir='' -fi - - - -# Check whether --with-target-sh was given. -if test ${with_target_sh+y} -then : - withval=$with_target_sh; if test x"$withval" = 'xno' -then : - target_launch_method='exe' -else $as_nop - target_launch_method="$withval" -fi -else $as_nop - target_launch_method='' -fi - - -# Check whether --enable-stdlib-manpages was given. -if test ${enable_stdlib_manpages+y} -then : - enableval=$enable_stdlib_manpages; -else $as_nop - enable_stdlib_manpages='auto' -fi - - -# Check whether --enable-warn-error was given. -if test ${enable_warn_error+y} -then : - enableval=$enable_warn_error; -fi - - - - -# Check whether --enable-force-safe-string was given. -if test ${enable_force_safe_string+y} -then : - enableval=$enable_force_safe_string; if test "x$enableval" = 'xno' -then : - as_fn_error $? "Support for mutable strings was removed in OCaml 5.0." "$LINENO" 5 -fi -fi - - - -if test x"$DEFAULT_STRING" = "xunsafe" -then : - as_fn_error $? "Support for mutable strings was removed in OCaml 5.0." "$LINENO" 5 -fi - -# Check whether --enable-flat-float-array was given. -if test ${enable_flat_float_array+y} -then : - enableval=$enable_flat_float_array; -fi - - -# Check whether --enable-function-sections was given. -if test ${enable_function_sections+y} -then : - enableval=$enable_function_sections; -else $as_nop - enable_function_sections=auto -fi - - -# Check whether --enable-mmap-map-stack was given. -if test ${enable_mmap_map_stack+y} -then : - enableval=$enable_mmap_map_stack; -fi - - - -# Check whether --with-afl was given. -if test ${with_afl+y} -then : - withval=$with_afl; -fi - - -# Check whether --enable-stack-allocation was given. -if test ${enable_stack_allocation+y} -then : - enableval=$enable_stack_allocation; -fi - - -# Check whether --enable-poll-insertion was given. -if test ${enable_poll_insertion+y} -then : - enableval=$enable_poll_insertion; -fi - - - -# Check whether --with-flexdll was given. -if test ${with_flexdll+y} -then : - withval=$with_flexdll; if test x"$withval" = 'xyes' -then : - with_flexdll=flexdll -fi -fi - - - -# Check whether --with-zstd was given. -if test ${with_zstd+y} -then : - withval=$with_zstd; -fi - - -if test x"$enable_unix_lib" = "xno" -then : - if test x"$enable_ocamldebug" = "xyes" -then : - as_fn_error $? "ocamldebug requires the unix library" "$LINENO" 5 -else $as_nop - enable_ocamldebug="no" -fi -fi - -if test x"$enable_unix_lib" = "xno" || test x"$enable_str_lib" = "xno" -then : - if test x"$enable_ocamldoc" = "xyes" -then : - as_fn_error $? "ocamldoc requires the unix and str libraries" "$LINENO" 5 -else $as_nop - enable_ocamldoc="no" - build_ocamltex=false -fi -else $as_nop - build_ocamltex=true -fi - -if test x"$enable_ocamldoc" = "xno" -then : - if test x"$enable_stdlib_manpages" = "xyes" -then : - as_fn_error $? "--enable-stdlib-manpages requires ocamldoc" "$LINENO" 5 -fi - ocamldoc_target="" - ocamldoc_opt_target="" - with_ocamldoc="" - enable_stdlib_manpages=no - build_ocamldoc=false -else $as_nop - ocamldoc_target=ocamldoc - ocamldoc_opt_target=ocamldoc.opt - with_ocamldoc=ocamldoc - build_ocamldoc=true - optional_libraries="$optional_libraries ocamldoc/odoc_info" - ac_config_files="$ac_config_files ocamldoc/META" - -fi - -# Initialization of libtool -# Allow the MSVC linker to be found even if ld isn't installed. -# User-specified LD still takes precedence. -if test -n "$ac_tool_prefix"; then - for ac_prog in ld link - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_LD+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$LD"; then - ac_cv_prog_LD="$LD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_LD="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LD=$ac_cv_prog_LD -if test -n "$LD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 -printf "%s\n" "$LD" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$LD" && break - done -fi -if test -z "$LD"; then - ac_ct_LD=$LD - for ac_prog in ld link -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_LD+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_LD"; then - ac_cv_prog_ac_ct_LD="$ac_ct_LD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_LD="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LD=$ac_cv_prog_ac_ct_LD -if test -n "$ac_ct_LD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LD" >&5 -printf "%s\n" "$ac_ct_LD" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$ac_ct_LD" && break -done - - if test "x$ac_ct_LD" = x; then - LD="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LD=$ac_ct_LD - fi -fi - -# libtool expects host_os=mingw for native Windows -# Also, it has been observed that, on some platforms (e.g. msvc) LT_INIT -# alters the CFLAGS variable, so we save its value before calling the macro -# and restore it after the call -old_host_os=$host_os -if test x"$host_os" = "xwindows" -then : - host_os=mingw -fi -saved_CFLAGS="$CFLAGS" - -case `pwd` in - *\ * | *\ *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 -printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; -esac - - - -macro_version='2.4.6' -macro_revision='2.4.6' - - - - - - - - - - - - - - -ltmain=$ac_aux_dir/ltmain.sh - -# Backslashify metacharacters that are still active within -# double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - -ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO -ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 -printf %s "checking how to print strings... " >&6; } -# Test print first, because it will be a builtin if present. -if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ - test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='print -r --' -elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then - ECHO='printf %s\n' -else - # Use this function as a fallback that always works. - func_fallback_echo () - { - eval 'cat <<_LTECHO_EOF -$1 -_LTECHO_EOF' - } - ECHO='func_fallback_echo' -fi - -# func_echo_all arg... -# Invoke $ECHO with all args, space-separated. -func_echo_all () -{ - $ECHO "" -} - -case $ECHO in - printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 -printf "%s\n" "printf" >&6; } ;; - print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 -printf "%s\n" "print -r" >&6; } ;; - *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 -printf "%s\n" "cat" >&6; } ;; -esac - - - - - - - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. -set dummy ${ac_tool_prefix}clang; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}clang" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "clang", so it can be a program name with args. -set dummy clang; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="clang" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -printf "%s\n" "$ac_ct_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -fi - - -test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion -version; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -printf %s "checking whether the C compiler works... " >&6; } -ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else $as_nop - ac_file='' -fi -if test -z "$ac_file" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -printf %s "checking for C compiler default output file name... " >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -printf "%s\n" "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -printf %s "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -printf "%s\n" "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -printf %s "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -printf "%s\n" "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -printf %s "checking for suffix of object files... " >&6; } -if test ${ac_cv_objext+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -printf "%s\n" "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 -printf %s "checking whether the compiler supports GNU C... " >&6; } -if test ${ac_cv_c_compiler_gnu+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+y} -ac_save_CFLAGS=$CFLAGS -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -printf %s "checking whether $CC accepts -g... " >&6; } -if test ${ac_cv_prog_cc_g+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_g=yes -else $as_nop - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - -else $as_nop - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -printf "%s\n" "$ac_cv_prog_cc_g" >&6; } -if test $ac_test_CFLAGS; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -ac_prog_cc_stdc=no -if test x$ac_prog_cc_stdc = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 -printf %s "checking for $CC option to enable C11 features... " >&6; } -if test ${ac_cv_prog_cc_c11+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c11=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_c_conftest_c11_program -_ACEOF -for ac_arg in '' -std=gnu11 -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_c11=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cc_c11" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC -fi - -if test "x$ac_cv_prog_cc_c11" = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c11" = x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 -printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } - CC="$CC $ac_cv_prog_cc_c11" -fi - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 - ac_prog_cc_stdc=c11 -fi -fi -if test x$ac_prog_cc_stdc = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 -printf %s "checking for $CC option to enable C99 features... " >&6; } -if test ${ac_cv_prog_cc_c99+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c99=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_c_conftest_c99_program -_ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_c99=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cc_c99" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC -fi - -if test "x$ac_cv_prog_cc_c99" = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c99" = x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 -printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } - CC="$CC $ac_cv_prog_cc_c99" -fi - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 - ac_prog_cc_stdc=c99 -fi -fi -if test x$ac_prog_cc_stdc = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 -printf %s "checking for $CC option to enable C89 features... " >&6; } -if test ${ac_cv_prog_cc_c89+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_c_conftest_c89_program -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC -fi - -if test "x$ac_cv_prog_cc_c89" = xno -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c89" = x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } - CC="$CC $ac_cv_prog_cc_c89" -fi - ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 - ac_prog_cc_stdc=c89 -fi -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -printf %s "checking for a sed that does not truncate output... " >&6; } -if test ${ac_cv_path_SED+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - { ac_script=; unset ac_script;} - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_prog in sed gsed - do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_SED" || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - printf %s 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - printf "%s\n" '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -printf "%s\n" "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - -test -z "$SED" && SED=sed -Xsed="$SED -e 1s/^X//" - - - - - - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -printf %s "checking for grep that handles long lines and -e... " >&6; } -if test ${ac_cv_path_GREP+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_prog in grep ggrep - do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - printf %s 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - printf "%s\n" 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -printf "%s\n" "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -printf %s "checking for egrep... " >&6; } -if test ${ac_cv_path_EGREP+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_prog in egrep - do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - printf %s 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - printf "%s\n" 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -printf "%s\n" "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -printf %s "checking for fgrep... " >&6; } -if test ${ac_cv_path_FGREP+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_prog in fgrep - do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_FGREP" || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - printf %s 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - printf "%s\n" 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -printf "%s\n" "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - -test -z "$GREP" && GREP=grep - - - - - - - - - - - - - - - - - - - -# Check whether --with-gnu-ld was given. -if test ${with_gnu_ld+y} -then : - withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes -else $as_nop - with_gnu_ld=no -fi - -ac_prog=ld -if test yes = "$GCC"; then - # Check if gcc -print-prog-name=ld gives a path. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 -printf %s "checking for ld used by $CC... " >&6; } - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return, which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | ?:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the pathname of ld - ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` - while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do - ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` - done - test -z "$LD" && LD=$ac_prog - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test yes = "$with_gnu_ld"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -printf %s "checking for GNU ld... " >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 -printf %s "checking for non-GNU ld... " >&6; } -fi -if test ${lt_cv_path_LD+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -z "$LD"; then - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD=$ac_dir/$ac_prog - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -printf "%s\n" "$LD" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 -printf %s "checking if the linker ($LD) is GNU ld... " >&6; } -if test ${lt_cv_prog_gnu_ld+y} -then : - printf %s "(cached) " >&6 -else $as_nop - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - - - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 -printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } -if test ${lt_cv_path_NM+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM=$NM -else - lt_nm_to_check=${ac_tool_prefix}nm - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - tmp_nm=$ac_dir/$lt_tmp_nm - if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the 'sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - # Tru64's nm complains that /dev/null is an invalid object file - # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty - case $build_os in - mingw*) lt_bad_file=conftest.nm/nofile ;; - *) lt_bad_file=/dev/null ;; - esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in - *$lt_bad_file* | *'Invalid file or object type'*) - lt_cv_path_NM="$tmp_nm -B" - break 2 - ;; - *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in - */dev/null*) - lt_cv_path_NM="$tmp_nm -p" - break 2 - ;; - *) - lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - ;; - esac - ;; - esac - fi - done - IFS=$lt_save_ifs - done - : ${lt_cv_path_NM=no} -fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 -printf "%s\n" "$lt_cv_path_NM" >&6; } -if test no != "$lt_cv_path_NM"; then - NM=$lt_cv_path_NM -else - # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$DUMPBIN"; then : - # Let the user override the test. - else - if test -n "$ac_tool_prefix"; then - for ac_prog in dumpbin "link -dump" - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_DUMPBIN+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$DUMPBIN"; then - ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DUMPBIN=$ac_cv_prog_DUMPBIN -if test -n "$DUMPBIN"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 -printf "%s\n" "$DUMPBIN" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$DUMPBIN" && break - done -fi -if test -z "$DUMPBIN"; then - ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in dumpbin "link -dump" -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_DUMPBIN+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DUMPBIN"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN -if test -n "$ac_ct_DUMPBIN"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 -printf "%s\n" "$ac_ct_DUMPBIN" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$ac_ct_DUMPBIN" && break -done - - if test "x$ac_ct_DUMPBIN" = x; then - DUMPBIN=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DUMPBIN=$ac_ct_DUMPBIN - fi -fi - - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in - *COFF*) - DUMPBIN="$DUMPBIN -symbols -headers" - ;; - *) - DUMPBIN=: - ;; - esac - fi - - if test : != "$DUMPBIN"; then - NM=$DUMPBIN - fi -fi -test -z "$NM" && NM=nm - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 -printf %s "checking the name lister ($NM) interface... " >&6; } -if test ${lt_cv_nm_interface+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_nm_interface="BSD nm" - echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) - (eval "$ac_compile" 2>conftest.err) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) - (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) - cat conftest.err >&5 - (eval echo "\"\$as_me:$LINENO: output\"" >&5) - cat conftest.out >&5 - if $GREP 'External.*some_variable' conftest.out > /dev/null; then - lt_cv_nm_interface="MS dumpbin" - fi - rm -f conftest* -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 -printf "%s\n" "$lt_cv_nm_interface" >&6; } - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 -printf %s "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 -printf "%s\n" "no, using $LN_S" >&6; } -fi - -# find the maximum length of command line arguments -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 -printf %s "checking the maximum length of command line arguments... " >&6; } -if test ${lt_cv_sys_max_cmd_len+y} -then : - printf %s "(cached) " >&6 -else $as_nop - i=0 - teststring=ABCD - - case $build_os in - msdosdjgpp*) - # On DJGPP, this test can blow up pretty badly due to problems in libc - # (any single argument exceeding 2000 bytes causes a buffer overrun - # during glob expansion). Even if it were fixed, the result of this - # check would be larger than it should be. - lt_cv_sys_max_cmd_len=12288; # 12K is about right - ;; - - gnu*) - # Under GNU Hurd, this test is not required because there is - # no limit to the length of command line arguments. - # Libtool will interpret -1 as no limit whatsoever - lt_cv_sys_max_cmd_len=-1; - ;; - - cygwin* | mingw* | cegcc*) - # On Win9x/ME, this test blows up -- it succeeds, but takes - # about 5 minutes as the teststring grows exponentially. - # Worse, since 9x/ME are not pre-emptively multitasking, - # you end up with a "frozen" computer, even though with patience - # the test eventually succeeds (with a max line length of 256k). - # Instead, let's just punt: use the minimum linelength reported by - # all of the supported platforms: 8192 (on NT/2K/XP). - lt_cv_sys_max_cmd_len=8192; - ;; - - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - - amigaos*) - # On AmigaOS with pdksh, this test takes hours, literally. - # So we just punt and use a minimum line length of 8192. - lt_cv_sys_max_cmd_len=8192; - ;; - - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - os2*) - # The test takes a long time on OS/2. - lt_cv_sys_max_cmd_len=8192 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len" && \ - test undefined != "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - # Make teststring a little bigger before we do anything with it. - # a 1K string should be a reasonable start. - for i in 1 2 3 4 5 6 7 8; do - teststring=$teststring$teststring - done - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - # If test is not a shell built-in, we'll probably end up computing a - # maximum length that is only half of the actual maximum length, but - # we can't tell. - while { test X`env echo "$teststring$teststring" 2>/dev/null` \ - = "X$teststring$teststring"; } >/dev/null 2>&1 && - test 17 != "$i" # 1/2 MB should be enough - do - i=`expr $i + 1` - teststring=$teststring$teststring - done - # Only check the string length outside the loop. - lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` - teststring= - # Add a significant safety factor because C++ compilers can tack on - # massive amounts of additional arguments before passing them to the - # linker. It appears as though 1/2 is a usable value. - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` - fi - ;; - esac - -fi - -if test -n "$lt_cv_sys_max_cmd_len"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 -printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 -printf "%s\n" "none" >&6; } -fi -max_cmd_len=$lt_cv_sys_max_cmd_len - - - - - - -: ${CP="cp -f"} -: ${MV="mv -f"} -: ${RM="rm -f"} - -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - lt_unset=unset -else - lt_unset=false -fi - - - - - -# test EBCDIC or ASCII -case `echo X|tr X '\101'` in - A) # ASCII based system - # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr - lt_SP2NL='tr \040 \012' - lt_NL2SP='tr \015\012 \040\040' - ;; - *) # EBCDIC based system - lt_SP2NL='tr \100 \n' - lt_NL2SP='tr \r\n \100\100' - ;; -esac - - - - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 -printf %s "checking how to convert $build file names to $host format... " >&6; } -if test ${lt_cv_to_host_file_cmd+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 - ;; - esac - ;; - *-*-cygwin* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin - ;; - *-*-cygwin* ) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; - * ) # otherwise, assume *nix - lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin - ;; - esac - ;; - * ) # unhandled hosts (and "normal" native builds) - lt_cv_to_host_file_cmd=func_convert_file_noop - ;; -esac - -fi - -to_host_file_cmd=$lt_cv_to_host_file_cmd -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 -printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; } - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 -printf %s "checking how to convert $build file names to toolchain format... " >&6; } -if test ${lt_cv_to_tool_file_cmd+y} -then : - printf %s "(cached) " >&6 -else $as_nop - #assume ordinary cross tools, or native build. -lt_cv_to_tool_file_cmd=func_convert_file_noop -case $host in - *-*-mingw* ) - case $build in - *-*-mingw* ) # actually msys - lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 - ;; - esac - ;; -esac - -fi - -to_tool_file_cmd=$lt_cv_to_tool_file_cmd -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 -printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; } - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 -printf %s "checking for $LD option to reload object files... " >&6; } -if test ${lt_cv_ld_reload_flag+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_reload_flag='-r' -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 -printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } -reload_flag=$lt_cv_ld_reload_flag -case $reload_flag in -"" | " "*) ;; -*) reload_flag=" $reload_flag" ;; -esac -reload_cmds='$LD$reload_flag -o $output$reload_objs' -case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - if test yes != "$GCC"; then - reload_cmds=false - fi - ;; - darwin*) - if test yes = "$GCC"; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_OBJDUMP+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 -printf "%s\n" "$OBJDUMP" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_OBJDUMP+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 -printf "%s\n" "$ac_ct_OBJDUMP" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - -test -z "$OBJDUMP" && OBJDUMP=objdump - - - - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 -printf %s "checking how to recognize dependent libraries... " >&6; } -if test ${lt_cv_deplibs_check_method+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_file_magic_cmd='$MAGIC_CMD' -lt_cv_file_magic_test_file= -lt_cv_deplibs_check_method='unknown' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# 'unknown' -- same as none, but documents that we really don't know. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_magic [[regex]]' -- check by looking for files in library path -# that responds to the $file_magic_cmd with a given extended regex. -# If you have 'file' or equivalent on your system and you're not sure -# whether 'pass_all' will *always* work, you probably want this one. - -case $host_os in -aix[4-9]*) - lt_cv_deplibs_check_method=pass_all - ;; - -beos*) - lt_cv_deplibs_check_method=pass_all - ;; - -bsdi[45]*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' - lt_cv_file_magic_test_file=/shlib/libc.so - ;; - -cygwin*) - # func_win32_libid is a shell function defined in ltmain.sh - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - ;; - -mingw* | pw32*) - # Base MSYS/MinGW do not provide the 'file' command needed by - # func_win32_libid shell function, so use a weaker test based on 'objdump', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - # Keep this pattern in sync with the one in func_win32_libid. - lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -cegcc*) - # use the weaker test based on 'objdump'. See mingw*. - lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - case $host_cpu in - i*86 ) - # Not sure whether the presence of OpenBSD here was a mistake. - # Let's accept both of them until this is cleared up. - lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` - ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; - -haiku*) - lt_cv_deplibs_check_method=pass_all - ;; - -hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file - case $host_cpu in - ia64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' - lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so - ;; - hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' - lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl - ;; - *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' - lt_cv_file_magic_test_file=/usr/lib/libc.sl - ;; - esac - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -irix5* | irix6* | nonstopux*) - case $LD in - *-32|*"-32 ") libmagic=32-bit;; - *-n32|*"-n32 ") libmagic=N32;; - *-64|*"-64 ") libmagic=64-bit;; - *) libmagic=never-match;; - esac - lt_cv_deplibs_check_method=pass_all - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - -netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' - fi - ;; - -newos6*) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=/usr/lib/libnls.so - ;; - -*nto* | *qnx*) - lt_cv_deplibs_check_method=pass_all - ;; - -openbsd* | bitrig*) - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - case $host_vendor in - motorola) - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - ncr) - lt_cv_deplibs_check_method=pass_all - ;; - sequent) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - ;; - sni) - lt_cv_file_magic_cmd='/bin/file' - lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" - lt_cv_file_magic_test_file=/lib/libc.so - ;; - siemens) - lt_cv_deplibs_check_method=pass_all - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -tpf*) - lt_cv_deplibs_check_method=pass_all - ;; -os2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } - -file_magic_glob= -want_nocaseglob=no -if test "$build" = "$host"; then - case $host_os in - mingw* | pw32*) - if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then - want_nocaseglob=yes - else - file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` - fi - ;; - esac -fi - -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - - - - - - - - - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_DLLTOOL+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 -printf "%s\n" "$DLLTOOL" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_DLLTOOL+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 -printf "%s\n" "$ac_ct_DLLTOOL" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - -test -z "$DLLTOOL" && DLLTOOL=dlltool - - - - - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 -printf %s "checking how to associate runtime and link libraries... " >&6; } -if test ${lt_cv_sharedlib_from_linklib_cmd+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_sharedlib_from_linklib_cmd='unknown' - -case $host_os in -cygwin* | mingw* | pw32* | cegcc*) - # two different shell functions defined in ltmain.sh; - # decide which one to use based on capabilities of $DLLTOOL - case `$DLLTOOL --help 2>&1` in - *--identify-strict*) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib - ;; - *) - lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback - ;; - esac - ;; -*) - # fallback: assume linklib IS sharedlib - lt_cv_sharedlib_from_linklib_cmd=$ECHO - ;; -esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 -printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } -sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd -test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO - - - - - - - - -if test -n "$ac_tool_prefix"; then - for ac_prog in ar - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_AR+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -printf "%s\n" "$AR" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$AR" && break - done -fi -if test -z "$AR"; then - ac_ct_AR=$AR - for ac_prog in ar -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_AR+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -printf "%s\n" "$ac_ct_AR" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$ac_ct_AR" && break -done - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -fi - -: ${AR=ar} -: ${AR_FLAGS=cru} - - - - - - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 -printf %s "checking for archiver @FILE support... " >&6; } -if test ${lt_cv_ar_at_file+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_ar_at_file=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - echo conftest.$ac_objext > conftest.lst - lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test 0 -eq "$ac_status"; then - # Ensure the archiver fails upon bogus file names. - rm -f conftest.$ac_objext libconftest.a - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 - (eval $lt_ar_try) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if test 0 -ne "$ac_status"; then - lt_cv_ar_at_file=@ - fi - fi - rm -f conftest.* libconftest.a - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 -printf "%s\n" "$lt_cv_ar_at_file" >&6; } - -if test no = "$lt_cv_ar_at_file"; then - archiver_list_spec= -else - archiver_list_spec=$lt_cv_ar_at_file -fi - - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_STRIP+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -printf "%s\n" "$STRIP" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_STRIP+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -printf "%s\n" "$ac_ct_STRIP" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -test -z "$STRIP" && STRIP=: - - - - - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_RANLIB+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -printf "%s\n" "$RANLIB" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_RANLIB+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -printf "%s\n" "$ac_ct_RANLIB" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -test -z "$RANLIB" && RANLIB=: - - - - - - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - bitrig* | openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" -fi - -case $host_os in - darwin*) - lock_old_archive_extraction=yes ;; - *) - lock_old_archive_extraction=no ;; -esac - - - - - - - - - - - - - - - - - - - - - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_AWK+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -printf "%s\n" "$AWK" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$AWK" && break -done - - - - - - - - - - - - - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 -printf %s "checking command to parse $NM output from $compiler object... " >&6; } -if test ${lt_cv_sys_global_symbol_pipe+y} -then : - printf %s "(cached) " >&6 -else $as_nop - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRST]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Define system-specific variables. -case $host_os in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw* | pw32* | cegcc*) - symcode='[ABCDGISTW]' - ;; -hpux*) - if test ia64 = "$host_cpu"; then - symcode='[ABCDEGRST]' - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -case `$NM -V 2>&1` in -*GNU* | *'with BFD'*) - symcode='[ABCDGIRSTW]' ;; -esac - -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" - # Adjust the below global symbol transforms to fixup imported variables. - lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" - lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" - lt_c_name_lib_hook="\ - -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ - -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" -else - # Disable hooks by default. - lt_cv_sys_global_symbol_to_import= - lt_cdecl_hook= - lt_c_name_hook= - lt_c_name_lib_hook= -fi - -# Transform an extracted symbol line into a proper C declaration. -# Some systems (esp. on ia64) link data and code symbols differently, -# so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ -$lt_cdecl_hook\ -" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" - -# Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ -$lt_c_name_hook\ -" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" - -# Transform an extracted symbol line into symbol name with lib prefix and -# symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ -$lt_c_name_lib_hook\ -" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ -" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ -" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" - -# Handle CRLF in mingw tool chain -opt_cr= -case $build_os in -mingw*) - opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp - ;; -esac - -# Try without a prefix underscore, then with it. -for ac_symprfx in "" "_"; do - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # Write the raw and C identifiers. - if test "$lt_cv_nm_interface" = "MS dumpbin"; then - # Fake it for dumpbin and say T for any non-static function, - # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, - # which start with @ or ?. - lt_cv_sys_global_symbol_pipe="$AWK '"\ -" {last_section=section; section=\$ 3};"\ -" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ -" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ -" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ -" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ -" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ -" \$ 0!~/External *\|/{next};"\ -" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ -" {if(hide[section]) next};"\ -" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ -" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ -" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ -" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ -" ' prfx=^$ac_symprfx" - else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" - fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" - - # Check to see that the pipe works correctly. - pipe_works=no - - rm -f conftest* - cat > conftest.$ac_ext <<_LT_EOF -#ifdef __cplusplus -extern "C" { -#endif -char nm_test_var; -void nm_test_func(void); -void nm_test_func(void){} -#ifdef __cplusplus -} -#endif -int main(){nm_test_var='a';nm_test_func();return(0);} -_LT_EOF - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - # Now try to grab the symbols. - nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "$nlist"; then - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - rm -f "$nlist"T - fi - - # Make sure that we snagged all the symbols we need. - if $GREP ' nm_test_var$' "$nlist" >/dev/null; then - if $GREP ' nm_test_func$' "$nlist" >/dev/null; then - cat <<_LT_EOF > conftest.$ac_ext -/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ -#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE -/* DATA imports from DLLs on WIN32 can't be const, because runtime - relocations are performed -- see ld's documentation on pseudo-relocs. */ -# define LT_DLSYM_CONST -#elif defined __osf__ -/* This system does not cope well with relocations in const data. */ -# define LT_DLSYM_CONST -#else -# define LT_DLSYM_CONST const -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -_LT_EOF - # Now generate the symbol file. - eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' - - cat <<_LT_EOF >> conftest.$ac_ext - -/* The mapping between symbol names and symbols. */ -LT_DLSYM_CONST struct { - const char *name; - void *address; -} -lt__PROGRAM__LTX_preloaded_symbols[] = -{ - { "@PROGRAM@", (void *) 0 }, -_LT_EOF - $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext - cat <<\_LT_EOF >> conftest.$ac_ext - {0, (void *) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt__PROGRAM__LTX_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif -_LT_EOF - # Now try linking the two files. - mv conftest.$ac_objext conftstm.$ac_objext - lt_globsym_save_LIBS=$LIBS - lt_globsym_save_CFLAGS=$CFLAGS - LIBS=conftstm.$ac_objext - CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s conftest$ac_exeext; then - pipe_works=yes - fi - LIBS=$lt_globsym_save_LIBS - CFLAGS=$lt_globsym_save_CFLAGS - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - fi - rm -rf conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test yes = "$pipe_works"; then - break - else - lt_cv_sys_global_symbol_pipe= - fi -done - -fi - -if test -z "$lt_cv_sys_global_symbol_pipe"; then - lt_cv_sys_global_symbol_to_cdecl= -fi -if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 -printf "%s\n" "failed" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 -printf "%s\n" "ok" >&6; } -fi - -# Response file support. -if test "$lt_cv_nm_interface" = "MS dumpbin"; then - nm_file_list_spec='@' -elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then - nm_file_list_spec='@' -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 -printf %s "checking for sysroot... " >&6; } - -# Check whether --with-sysroot was given. -if test ${with_sysroot+y} -then : - withval=$with_sysroot; -else $as_nop - with_sysroot=no -fi - - -lt_sysroot= -case $with_sysroot in #( - yes) - if test yes = "$GCC"; then - lt_sysroot=`$CC --print-sysroot 2>/dev/null` - fi - ;; #( - /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` - ;; #( - no|'') - ;; #( - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 -printf "%s\n" "$with_sysroot" >&6; } - as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 - ;; -esac - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 -printf "%s\n" "${lt_sysroot:-no}" >&6; } - - - - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 -printf %s "checking for a working dd... " >&6; } -if test ${ac_cv_path_lt_DD+y} -then : - printf %s "(cached) " >&6 -else $as_nop - printf 0123456789abcdef0123456789abcdef >conftest.i -cat conftest.i conftest.i >conftest2.i -: ${lt_DD:=$DD} -if test -z "$lt_DD"; then - ac_path_lt_DD_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_prog in dd - do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_lt_DD" || continue -if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then - cmp -s conftest.i conftest.out \ - && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: -fi - $ac_path_lt_DD_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_lt_DD"; then - : - fi -else - ac_cv_path_lt_DD=$lt_DD -fi - -rm -f conftest.i conftest2.i conftest.out -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 -printf "%s\n" "$ac_cv_path_lt_DD" >&6; } - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 -printf %s "checking how to truncate binary pipes... " >&6; } -if test ${lt_cv_truncate_bin+y} -then : - printf %s "(cached) " >&6 -else $as_nop - printf 0123456789abcdef0123456789abcdef >conftest.i -cat conftest.i conftest.i >conftest2.i -lt_cv_truncate_bin= -if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then - cmp -s conftest.i conftest.out \ - && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" -fi -rm -f conftest.i conftest2.i conftest.out -test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 -printf "%s\n" "$lt_cv_truncate_bin" >&6; } - - - - - - - -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -func_cc_basename () -{ - for cc_temp in $*""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac - done - func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -} - -# Check whether --enable-libtool-lock was given. -if test ${enable_libtool_lock+y} -then : - enableval=$enable_libtool_lock; -fi - -test no = "$enable_libtool_lock" || enable_libtool_lock=yes - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case $host in -ia64-*-hpux*) - # Find out what ABI is being produced by ac_compile, and set mode - # options accordingly. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in - *ELF-32*) - HPUX_IA64_MODE=32 - ;; - *ELF-64*) - HPUX_IA64_MODE=64 - ;; - esac - fi - rm -rf conftest* - ;; -*-*-irix6*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -melf32bsmip" - ;; - *N32*) - LD="${LD-ld} -melf32bmipn32" - ;; - *64-bit*) - LD="${LD-ld} -melf64bmip" - ;; - esac - else - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - fi - rm -rf conftest* - ;; - -mips64*-*linux*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo '#line '$LINENO' "configure"' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - emul=elf - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - emul="${emul}32" - ;; - *64-bit*) - emul="${emul}64" - ;; - esac - case `/usr/bin/file conftest.$ac_objext` in - *MSB*) - emul="${emul}btsmip" - ;; - *LSB*) - emul="${emul}ltsmip" - ;; - esac - case `/usr/bin/file conftest.$ac_objext` in - *N32*) - emul="${emul}n32" - ;; - esac - LD="${LD-ld} -m $emul" - fi - rm -rf conftest* - ;; - -x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ -s390*-*linux*|s390*-*tpf*|sparc*-*linux*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. Note that the listed cases only cover the - # situations where additional linker options are needed (such as when - # doing 32-bit compilation for a host where ld defaults to 64-bit, or - # vice versa); the common cases where no linker options are needed do - # not appear in the list. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *32-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - x86_64-*linux*) - case `/usr/bin/file conftest.o` in - *x86-64*) - LD="${LD-ld} -m elf32_x86_64" - ;; - *) - LD="${LD-ld} -m elf_i386" - ;; - esac - ;; - powerpc64le-*linux*) - LD="${LD-ld} -m elf32lppclinux" - ;; - powerpc64-*linux*) - LD="${LD-ld} -m elf32ppclinux" - ;; - s390x-*linux*) - LD="${LD-ld} -m elf_s390" - ;; - sparc64-*linux*) - LD="${LD-ld} -m elf32_sparc" - ;; - esac - ;; - *64-bit*) - case $host in - x86_64-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - x86_64-*linux*) - LD="${LD-ld} -m elf_x86_64" - ;; - powerpcle-*linux*) - LD="${LD-ld} -m elf64lppc" - ;; - powerpc-*linux*) - LD="${LD-ld} -m elf64ppc" - ;; - s390*-*linux*|s390*-*tpf*) - LD="${LD-ld} -m elf64_s390" - ;; - sparc*-*linux*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS -belf" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 -printf %s "checking whether the C compiler needs -belf... " >&6; } -if test ${lt_cv_cc_needs_belf+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - lt_cv_cc_needs_belf=yes -else $as_nop - lt_cv_cc_needs_belf=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 -printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } - if test yes != "$lt_cv_cc_needs_belf"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS=$SAVE_CFLAGS - fi - ;; -*-*solaris*) - # Find out what ABI is being produced by ac_compile, and set linker - # options accordingly. - echo 'int i;' > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) - case $host in - i?86-*-solaris*|x86_64-*-solaris*) - LD="${LD-ld} -m elf_x86_64" - ;; - sparc*-*-solaris*) - LD="${LD-ld} -m elf64_sparc" - ;; - esac - # GNU ld 2.21 introduced _sol2 emulations. Use them if available. - if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then - LD=${LD-ld}_sol2 - fi - ;; - *) - if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then - LD="${LD-ld} -64" - fi - ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; -esac - -need_locks=$enable_libtool_lock - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. -set dummy ${ac_tool_prefix}mt; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_MANIFEST_TOOL+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$MANIFEST_TOOL"; then - ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL -if test -n "$MANIFEST_TOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 -printf "%s\n" "$MANIFEST_TOOL" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_MANIFEST_TOOL"; then - ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL - # Extract the first word of "mt", so it can be a program name with args. -set dummy mt; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_MANIFEST_TOOL"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL -if test -n "$ac_ct_MANIFEST_TOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 -printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_MANIFEST_TOOL" = x; then - MANIFEST_TOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL - fi -else - MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" -fi - -test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 -printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } -if test ${lt_cv_path_mainfest_tool+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_path_mainfest_tool=no - echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 - $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out - cat conftest.err >&5 - if $GREP 'Manifest Tool' conftest.out > /dev/null; then - lt_cv_path_mainfest_tool=yes - fi - rm -f conftest* -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 -printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } -if test yes != "$lt_cv_path_mainfest_tool"; then - MANIFEST_TOOL=: -fi - - - - - - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_DSYMUTIL+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -printf "%s\n" "$DSYMUTIL" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DSYMUTIL=$ac_ct_DSYMUTIL - fi -else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_NMEDIT+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -printf "%s\n" "$NMEDIT" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_NMEDIT+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_NMEDIT"; then - ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_NMEDIT="nmedit" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT -if test -n "$ac_ct_NMEDIT"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 -printf "%s\n" "$ac_ct_NMEDIT" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_NMEDIT" = x; then - NMEDIT=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - NMEDIT=$ac_ct_NMEDIT - fi -else - NMEDIT="$ac_cv_prog_NMEDIT" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. -set dummy ${ac_tool_prefix}lipo; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_LIPO+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$LIPO"; then - ac_cv_prog_LIPO="$LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_LIPO="${ac_tool_prefix}lipo" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -LIPO=$ac_cv_prog_LIPO -if test -n "$LIPO"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 -printf "%s\n" "$LIPO" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_LIPO"; then - ac_ct_LIPO=$LIPO - # Extract the first word of "lipo", so it can be a program name with args. -set dummy lipo; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_LIPO+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_LIPO"; then - ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_LIPO="lipo" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO -if test -n "$ac_ct_LIPO"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 -printf "%s\n" "$ac_ct_LIPO" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_LIPO" = x; then - LIPO=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - LIPO=$ac_ct_LIPO - fi -else - LIPO="$ac_cv_prog_LIPO" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_OTOOL+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$OTOOL"; then - ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL="${ac_tool_prefix}otool" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL=$ac_cv_prog_OTOOL -if test -n "$OTOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 -printf "%s\n" "$OTOOL" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL"; then - ac_ct_OTOOL=$OTOOL - # Extract the first word of "otool", so it can be a program name with args. -set dummy otool; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_OTOOL+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OTOOL"; then - ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL="otool" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL -if test -n "$ac_ct_OTOOL"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 -printf "%s\n" "$ac_ct_OTOOL" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_OTOOL" = x; then - OTOOL=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL=$ac_ct_OTOOL - fi -else - OTOOL="$ac_cv_prog_OTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. -set dummy ${ac_tool_prefix}otool64; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_OTOOL64+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$OTOOL64"; then - ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -OTOOL64=$ac_cv_prog_OTOOL64 -if test -n "$OTOOL64"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 -printf "%s\n" "$OTOOL64" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OTOOL64"; then - ac_ct_OTOOL64=$OTOOL64 - # Extract the first word of "otool64", so it can be a program name with args. -set dummy otool64; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_OTOOL64+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OTOOL64"; then - ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_OTOOL64="otool64" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 -if test -n "$ac_ct_OTOOL64"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 -printf "%s\n" "$ac_ct_OTOOL64" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_OTOOL64" = x; then - OTOOL64=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - OTOOL64=$ac_ct_OTOOL64 - fi -else - OTOOL64="$ac_cv_prog_OTOOL64" -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 -printf %s "checking for -single_module linker flag... " >&6; } -if test ${lt_cv_apple_cc_single_mod+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_apple_cc_single_mod=no - if test -z "$LT_MULTI_MODULE"; then - # By default we will add the -single_module flag. You can override - # by either setting the environment variable LT_MULTI_MODULE - # non-empty at configure time, or by adding -multi_module to the - # link flags. - rm -rf libconftest.dylib* - echo "int foo(void){return 1;}" > conftest.c - echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ --dynamiclib -Wl,-single_module conftest.c" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ - -dynamiclib -Wl,-single_module conftest.c 2>conftest.err - _lt_result=$? - # If there is a non-empty error log, and "single_module" - # appears in it, assume the flag caused a linker warning - if test -s conftest.err && $GREP single_module conftest.err; then - cat conftest.err >&5 - # Otherwise, if the output was created with a 0 exit code from - # the compiler, it worked. - elif test -f libconftest.dylib && test 0 = "$_lt_result"; then - lt_cv_apple_cc_single_mod=yes - else - cat conftest.err >&5 - fi - rm -rf libconftest.dylib* - rm -f conftest.* - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 -printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 -printf %s "checking for -exported_symbols_list linker flag... " >&6; } -if test ${lt_cv_ld_exported_symbols_list+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_exported_symbols_list=no - save_LDFLAGS=$LDFLAGS - echo "_main" > conftest.sym - LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - lt_cv_ld_exported_symbols_list=yes -else $as_nop - lt_cv_ld_exported_symbols_list=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 -printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 -printf %s "checking for -force_load linker flag... " >&6; } -if test ${lt_cv_ld_force_load+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_force_load=no - cat > conftest.c << _LT_EOF -int forced_loaded() { return 2;} -_LT_EOF - echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 - $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 - echo "$RANLIB libconftest.a" >&5 - $RANLIB libconftest.a 2>&5 - cat > conftest.c << _LT_EOF -int main() { return 0;} -_LT_EOF - echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 - $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err - _lt_result=$? - if test -s conftest.err && $GREP force_load conftest.err; then - cat conftest.err >&5 - elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then - lt_cv_ld_force_load=yes - else - cat conftest.err >&5 - fi - rm -f conftest.err libconftest.a conftest conftest.c - rm -rf conftest.dSYM - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 -printf "%s\n" "$lt_cv_ld_force_load" >&6; } - case $host_os in - rhapsody* | darwin1.[012]) - _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; - darwin1.*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - esac - ;; - esac - if test yes = "$lt_cv_apple_cc_single_mod"; then - _lt_dar_single_mod='$single_module' - fi - if test yes = "$lt_cv_ld_exported_symbols_list"; then - _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' - else - _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' - fi - if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then - _lt_dsymutil='~$DSYMUTIL $lib || :' - else - _lt_dsymutil= - fi - ;; - esac - -# func_munge_path_list VARIABLE PATH -# ----------------------------------- -# VARIABLE is name of variable containing _space_ separated list of -# directories to be munged by the contents of PATH, which is string -# having a format: -# "DIR[:DIR]:" -# string "DIR[ DIR]" will be prepended to VARIABLE -# ":DIR[:DIR]" -# string "DIR[ DIR]" will be appended to VARIABLE -# "DIRP[:DIRP]::[DIRA:]DIRA" -# string "DIRP[ DIRP]" will be prepended to VARIABLE and string -# "DIRA[ DIRA]" will be appended to VARIABLE -# "DIR[:DIR]" -# VARIABLE will be replaced by "DIR[ DIR]" -func_munge_path_list () -{ - case x$2 in - x) - ;; - *:) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" - ;; - x:*) - eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" - ;; - *::*) - eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" - eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" - ;; - *) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" - ;; - esac -} - -ac_header= ac_cache= -for ac_item in $ac_header_c_list -do - if test $ac_cache; then - ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" - if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then - printf "%s\n" "#define $ac_item 1" >> confdefs.h - fi - ac_header= ac_cache= - elif test $ac_header; then - ac_cache=$ac_item - else - ac_header=$ac_item - fi -done - - - - - - - - -if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes -then : - -printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h - -fi -ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default -" -if test "x$ac_cv_header_dlfcn_h" = xyes -then : - printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h - -fi - - - - - -# Set options - - - - enable_dlopen=no - - - enable_win32_dll=no - - - # Check whether --enable-shared was given. -if test ${enable_shared+y} -then : - enableval=$enable_shared; p=${PACKAGE-default} - case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; - *) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else $as_nop - enable_shared=yes -fi - - - - - - - - - - # Check whether --enable-static was given. -if test ${enable_static+y} -then : - enableval=$enable_static; p=${PACKAGE-default} - case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; - *) - enable_static=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else $as_nop - enable_static=yes -fi - - - - - - - - - - -# Check whether --with-pic was given. -if test ${with_pic+y} -then : - withval=$with_pic; lt_p=${PACKAGE-default} - case $withval in - yes|no) pic_mode=$withval ;; - *) - pic_mode=default - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for lt_pkg in $withval; do - IFS=$lt_save_ifs - if test "X$lt_pkg" = "X$lt_p"; then - pic_mode=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else $as_nop - pic_mode=default -fi - - - - - - - - - # Check whether --enable-fast-install was given. -if test ${enable_fast_install+y} -then : - enableval=$enable_fast_install; p=${PACKAGE-default} - case $enableval in - yes) enable_fast_install=yes ;; - no) enable_fast_install=no ;; - *) - enable_fast_install=no - # Look at the argument we got. We use all the common list separators. - lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, - for pkg in $enableval; do - IFS=$lt_save_ifs - if test "X$pkg" = "X$p"; then - enable_fast_install=yes - fi - done - IFS=$lt_save_ifs - ;; - esac -else $as_nop - enable_fast_install=yes -fi - - - - - - - - - shared_archive_member_spec= -case $host,$enable_shared in -power*-*-aix[5-9]*,yes) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 -printf %s "checking which variant of shared library versioning to provide... " >&6; } - -# Check whether --with-aix-soname was given. -if test ${with_aix_soname+y} -then : - withval=$with_aix_soname; case $withval in - aix|svr4|both) - ;; - *) - as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 - ;; - esac - lt_cv_with_aix_soname=$with_aix_soname -else $as_nop - if test ${lt_cv_with_aix_soname+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_with_aix_soname=aix -fi - - with_aix_soname=$lt_cv_with_aix_soname -fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 -printf "%s\n" "$with_aix_soname" >&6; } - if test aix != "$with_aix_soname"; then - # For the AIX way of multilib, we name the shared archive member - # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', - # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. - # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, - # the AIX toolchain works better with OBJECT_MODE set (default 32). - if test 64 = "${OBJECT_MODE-32}"; then - shared_archive_member_spec=shr_64 - else - shared_archive_member_spec=shr - fi - fi - ;; -*) - with_aix_soname=aix - ;; -esac - - - - - - - - - - -# This can be used to rebuild libtool when needed -LIBTOOL_DEPS=$ltmain - -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -test -z "$LN_S" && LN_S="ln -s" - - - - - - - - - - - - - - -if test -n "${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST -fi - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 -printf %s "checking for objdir... " >&6; } -if test ${lt_cv_objdir+y} -then : - printf %s "(cached) " >&6 -else $as_nop - rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - lt_cv_objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - lt_cv_objdir=_libs -fi -rmdir .libs 2>/dev/null -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 -printf "%s\n" "$lt_cv_objdir" >&6; } -objdir=$lt_cv_objdir - - - - - -printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h - - - - -case $host_os in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test set != "${COLLECT_NAMES+set}"; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Global variables: -ofile=libtool -can_build_shared=yes - -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). -libext=a - -with_gnu_ld=$lt_cv_prog_gnu_ld - -old_CC=$CC -old_CFLAGS=$CFLAGS - -# Set sane defaults for various variables -test -z "$CC" && CC=cc -test -z "$LTCC" && LTCC=$CC -test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS -test -z "$LD" && LD=ld -test -z "$ac_objext" && ac_objext=o - -func_cc_basename $compiler -cc_basename=$func_cc_basename_result - - -# Only perform the check for file, if the check method requires it -test -z "$MAGIC_CMD" && MAGIC_CMD=file -case $deplibs_check_method in -file_magic*) - if test "$file_magic_cmd" = '$MAGIC_CMD'; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 -printf %s "checking for ${ac_tool_prefix}file... " >&6; } -if test ${lt_cv_path_MAGIC_CMD+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD=$MAGIC_CMD - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/${ac_tool_prefix}file"; then - lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD=$lt_cv_path_MAGIC_CMD - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS=$lt_save_ifs - MAGIC_CMD=$lt_save_MAGIC_CMD - ;; -esac -fi - -MAGIC_CMD=$lt_cv_path_MAGIC_CMD -if test -n "$MAGIC_CMD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -printf "%s\n" "$MAGIC_CMD" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - - - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 -printf %s "checking for file... " >&6; } -if test ${lt_cv_path_MAGIC_CMD+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $MAGIC_CMD in -[\\/*] | ?:[\\/]*) - lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. - ;; -*) - lt_save_MAGIC_CMD=$MAGIC_CMD - lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR - ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" - for ac_dir in $ac_dummy; do - IFS=$lt_save_ifs - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/file"; then - lt_cv_path_MAGIC_CMD=$ac_dir/"file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` - MAGIC_CMD=$lt_cv_path_MAGIC_CMD - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - $EGREP "$file_magic_regex" > /dev/null; then - : - else - cat <<_LT_EOF 1>&2 - -*** Warning: the command libtool uses to detect shared libraries, -*** $file_magic_cmd, produces output that libtool cannot recognize. -*** The result is that libtool may fail to recognize shared libraries -*** as such. This will affect the creation of libtool libraries that -*** depend on shared libraries, but programs linked with such libtool -*** libraries will work regardless of this problem. Nevertheless, you -*** may want to report the problem to your system manager and/or to -*** bug-libtool@gnu.org - -_LT_EOF - fi ;; - esac - fi - break - fi - done - IFS=$lt_save_ifs - MAGIC_CMD=$lt_save_MAGIC_CMD - ;; -esac -fi - -MAGIC_CMD=$lt_cv_path_MAGIC_CMD -if test -n "$MAGIC_CMD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 -printf "%s\n" "$MAGIC_CMD" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -# Use C for the default configuration in the libtool script - -lt_save_CC=$CC -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -# Source file extension for C test sources. -ac_ext=c - -# Object file extension for compiled C test sources. -objext=o -objext=$objext - -# Code to be used in simple compile tests -lt_simple_compile_test_code="int some_variable = 0;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - - - - - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - -# Save the default compiler, since it gets overwritten when the other -# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. -compiler_DEFAULT=$CC - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$RM conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$RM -r conftest* - - -## CAVEAT EMPTOR: -## There is no encapsulation within the following macros, do not change -## the running order or otherwise move them around unless you know exactly -## what you are doing... -if test -n "$compiler"; then - -lt_prog_compiler_no_builtin_flag= - -if test yes = "$GCC"; then - case $cc_basename in - nvcc*) - lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; - *) - lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; - esac - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test ${lt_cv_prog_compiler_rtti_exceptions+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $RM conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } - -if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then - lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" -else - : -fi - -fi - - - - - - - lt_prog_compiler_wl= -lt_prog_compiler_pic= -lt_prog_compiler_static= - - - if test yes = "$GCC"; then - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_static='-static' - - case $host_os in - aix*) - # All AIX code is PIC. - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - fi - lt_prog_compiler_pic='-fPIC' - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - lt_prog_compiler_pic='-fPIC' - ;; - m68k) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the '-m68020' flag to GCC prevents building anything better, - # like '-m68040'. - lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' - ;; - esac - ;; - - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - lt_prog_compiler_pic='-DDLL_EXPORT' - case $host_os in - os2*) - lt_prog_compiler_static='$wl-static' - ;; - esac - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - ;; - - haiku*) - # PIC is the default for Haiku. - # The "-static" flag exists, but is broken. - lt_prog_compiler_static= - ;; - - hpux*) - # PIC is the default for 64-bit PA HP-UX, but not for 32-bit - # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag - # sets the default TLS model and affects inlining. - case $host_cpu in - hppa*64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - msdosdjgpp*) - # Just because we use GCC doesn't mean we suddenly get shared libraries - # on systems that don't support them. - lt_prog_compiler_can_build_shared=no - enable_shared=no - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic=-Kconform_pic - fi - ;; - - *) - lt_prog_compiler_pic='-fPIC' - ;; - esac - - case $cc_basename in - nvcc*) # Cuda Compiler Driver 2.2 - lt_prog_compiler_wl='-Xlinker ' - if test -n "$lt_prog_compiler_pic"; then - lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" - fi - ;; - esac - else - # PORTME Check for flag to pass linker flags through the system compiler. - case $host_os in - aix*) - lt_prog_compiler_wl='-Wl,' - if test ia64 = "$host_cpu"; then - # AIX 5 now supports IA64 processor - lt_prog_compiler_static='-Bstatic' - else - lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' - fi - ;; - - darwin* | rhapsody*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - lt_prog_compiler_pic='-fno-common' - case $cc_basename in - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - - mingw* | cygwin* | pw32* | os2* | cegcc*) - # This hack is so that the source file can tell whether it is being - # built for inclusion in a dll (and should export symbols for example). - lt_prog_compiler_pic='-DDLL_EXPORT' - case $host_os in - os2*) - lt_prog_compiler_static='$wl-static' - ;; - esac - ;; - - hpux9* | hpux10* | hpux11*) - lt_prog_compiler_wl='-Wl,' - # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but - # not for PA HP-UX. - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic='+Z' - ;; - esac - # Is there a better lt_prog_compiler_static that works with the bundled CC? - lt_prog_compiler_static='$wl-a ${wl}archive' - ;; - - irix5* | irix6* | nonstopux*) - lt_prog_compiler_wl='-Wl,' - # PIC (with -KPIC) is the default. - lt_prog_compiler_static='-non_shared' - ;; - - linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - case $cc_basename in - # old Intel for x86_64, which still supported -KPIC. - ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - # icc used to be incompatible with GCC. - # ICC 10 doesn't accept -KPIC any more. - icc* | ifort*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - # Lahey Fortran 8.1. - lf95*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='--shared' - lt_prog_compiler_static='--static' - ;; - nagfor*) - # NAG Fortran compiler - lt_prog_compiler_wl='-Wl,-Wl,,' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - tcc*) - # Fabrice Bellard et al's Tiny C Compiler - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - xl* | bgxl* | bgf* | mpixl*) - # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-qpic' - lt_prog_compiler_static='-qstaticlink' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - *Sun\ F* | *Sun*Fortran*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Qoption ld ' - ;; - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Intel*\ [CF]*Compiler*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fPIC' - lt_prog_compiler_static='-static' - ;; - *Portland\ Group*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - esac - ;; - esac - ;; - - newsos6) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - *nto* | *qnx*) - # QNX uses GNU C++, but need to define -shared option too, otherwise - # it will coredump. - lt_prog_compiler_pic='-fPIC -shared' - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - lt_prog_compiler_pic='-Kconform_pic' - lt_prog_compiler_static='-Bstatic' - fi - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -case $host_os in - # For platforms that do not support PIC, -DPIC is meaningless: - *djgpp*) - lt_prog_compiler_pic= - ;; - *) - lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" - ;; -esac - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -printf %s "checking for $compiler option to produce PIC... " >&6; } -if test ${lt_cv_prog_compiler_pic+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 -printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } -lt_prog_compiler_pic=$lt_cv_prog_compiler_pic - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if test ${lt_cv_prog_compiler_pic_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - # The option is referenced via a variable to avoid confusing sed. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s "$ac_outfile"; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings other than the usual output. - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_pic_works=yes - fi - fi - $RM conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 -printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } - -if test yes = "$lt_cv_prog_compiler_pic_works"; then - case $lt_prog_compiler_pic in - "" | " "*) ;; - *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; - esac -else - lt_prog_compiler_pic= - lt_prog_compiler_can_build_shared=no -fi - -fi - - - - - - - - - - - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test ${lt_cv_prog_compiler_static_works+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_static_works=no - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_static_works=yes - fi - else - lt_cv_prog_compiler_static_works=yes - fi - fi - $RM -r conftest* - LDFLAGS=$save_LDFLAGS - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 -printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } - -if test yes = "$lt_cv_prog_compiler_static_works"; then - : -else - lt_prog_compiler_static= -fi - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test ${lt_cv_prog_compiler_c_o+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 -printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test ${lt_cv_prog_compiler_c_o+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o=no - $RM -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - lt_compiler_flag="-o out/conftest2.$ac_objext" - # Insert the option either (1) after the last *FLAGS variable, or - # (2) before a word containing "conftest.", or (3) at the end. - # Note that $ac_compile itself does not contain backslashes and begins - # with a dollar sign (not a hyphen), so the echo should work correctly. - lt_compile=`echo "$ac_compile" | $SED \ - -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - if (exit $ac_status) && test -s out/conftest2.$ac_objext - then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $RM conftest* - # SGI C++ compiler will create directory out/ii_files/ for - # template instantiation - test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files - $RM out/* && rmdir out - cd .. - $RM -r conftest - $RM conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 -printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } - - - - -hard_links=nottested -if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then - # do not overwrite the value of need_locks provided by the user - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 -printf %s "checking if we can lock with hard links... " >&6; } - hard_links=yes - $RM conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 -printf "%s\n" "$hard_links" >&6; } - if test no = "$hard_links"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 -printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} - need_locks=warn - fi -else - need_locks=no -fi - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } - - runpath_var= - allow_undefined_flag= - always_export_symbols=no - archive_cmds= - archive_expsym_cmds= - compiler_needs_object=no - enable_shared_with_static_runtimes=no - export_dynamic_flag_spec= - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - hardcode_automatic=no - hardcode_direct=no - hardcode_direct_absolute=no - hardcode_libdir_flag_spec= - hardcode_libdir_separator= - hardcode_minus_L=no - hardcode_shlibpath_var=unsupported - inherit_rpath=no - link_all_deplibs=unknown - module_cmds= - module_expsym_cmds= - old_archive_from_new_cmds= - old_archive_from_expsyms_cmds= - thread_safe_flag_spec= - whole_archive_flag_spec= - # include_expsyms should be a list of space-separated symbols to be *always* - # included in the symbol list - include_expsyms= - # exclude_expsyms can be an extended regexp of symbols to exclude - # it will be wrapped by ' (' and ')$', so one must not match beginning or - # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', - # as well as any symbol that contains 'd'. - exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' - # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out - # platforms (ab)use it in PIC code, but their linkers get confused if - # the symbol is explicitly referenced. Since portable code cannot - # rely on this symbol name, it's probably fine to never include it in - # preloaded symbol tables. - # Exclude shared library initialization/finalization symbols. - extract_expsyms_cmds= - - case $host_os in - cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test yes != "$GCC"; then - with_gnu_ld=no - fi - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - openbsd* | bitrig*) - with_gnu_ld=no - ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs=no - ;; - esac - - ld_shlibs=yes - - # On some targets, GNU ld is compatible enough with the native linker - # that we're better off using the native interface for both. - lt_use_gnu_ld_interface=no - if test yes = "$with_gnu_ld"; then - case $host_os in - aix*) - # The AIX port of GNU ld has always aspired to compatibility - # with the native linker. However, as the warning in the GNU ld - # block says, versions before 2.19.5* couldn't really create working - # shared libraries, regardless of the interface used. - case `$LD -v 2>&1` in - *\ \(GNU\ Binutils\)\ 2.19.5*) ;; - *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; - *\ \(GNU\ Binutils\)\ [3-9]*) ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - ;; - *) - lt_use_gnu_ld_interface=yes - ;; - esac - fi - - if test yes = "$lt_use_gnu_ld_interface"; then - # If archive_cmds runs LD, not CC, wlarc should be empty - wlarc='$wl' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - export_dynamic_flag_spec='$wl--export-dynamic' - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' - else - whole_archive_flag_spec= - fi - supports_anon_versioning=no - case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in - *GNU\ gold*) supports_anon_versioning=yes ;; - *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 - *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... - *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... - *\ 2.11.*) ;; # other 2.11 versions - *) supports_anon_versioning=yes ;; - esac - - # See if GNU ld supports shared libraries. - case $host_os in - aix[3-9]*) - # On AIX/PPC, the GNU linker is very broken - if test ia64 != "$host_cpu"; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: the GNU linker, at least up to release 2.19, is reported -*** to be unable to reliably create shared libraries on AIX. -*** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to install binutils -*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. -*** You will then need to restart the configuration process. - -_LT_EOF - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - beos*) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - export_dynamic_flag_spec='$wl--export-all-symbols' - allow_undefined_flag=unsupported - always_export_symbols=no - enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file, use it as - # is; otherwise, prepend EXPORTS... - archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - haiku*) - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - link_all_deplibs=yes - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - shrext_cmds=.dll - archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - enable_shared_with_static_runtimes=yes - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - export_dynamic_flag_spec='$wl-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) - tmp_diet=no - if test linux-dietlibc = "$host_os"; then - case $cc_basename in - diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) - esac - fi - if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ - && test no = "$tmp_diet" - then - tmp_addflag=' $pic_flag' - tmp_sharedflag='-shared' - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95* | pgfortran*) - # Portland Group f77 and f90 compilers - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - lf95*) # Lahey Fortran 8.1 - whole_archive_flag_spec= - tmp_sharedflag='--shared' ;; - nagfor*) # NAGFOR 5.3 - tmp_sharedflag='-Wl,-shared' ;; - xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) - tmp_sharedflag='-qmkshrobj' - tmp_addflag= ;; - nvcc*) # Cuda Compiler Driver 2.2 - whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - compiler_needs_object=yes - ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' - compiler_needs_object=yes - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - - if test yes = "$supports_anon_versioning"; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' - fi - - case $cc_basename in - tcc*) - export_dynamic_flag_spec='-rdynamic' - ;; - xlf* | bgf* | bgxlf* | mpixlf*) - # IBM XL Fortran 10.1 on PPC cannot create shared libs itself - whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' - if test yes = "$supports_anon_versioning"; then - archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ - echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' - fi - ;; - esac - else - ld_shlibs=no - fi - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' - wlarc= - else - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - fi - ;; - - solaris*) - if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: The releases 2.8.* of the GNU linker cannot reliably -*** create shared libraries on Solaris systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.9.1 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - - if test no = "$ld_shlibs"; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix[4-9]*) - if test ia64 = "$host_cpu"; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - exp_sym_flag='-Bexport' - no_entry_flag= - else - # If we're using GNU nm, then we don't want the "-C" option. - # -C means demangle to GNU nm, but means don't demangle to AIX nm. - # Without the "-l" option, or with the "-B" option, AIX nm treats - # weak defined symbols like other global defined symbols, whereas - # GNU nm marks them as "W". - # While the 'weak' keyword is ignored in the Export File, we need - # it in the Import File for the 'aix-soname' feature, so we have - # to replace the "-B" option with "-P" for AIX nm. - if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' - else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' - fi - aix_use_runtimelinking=no - - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # have runtime linking enabled, and use it for executables. - # For shared libraries, we enable/disable runtime linking - # depending on the kind of the shared library created - - # when "with_aix_soname,aix_use_runtimelinking" is: - # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables - # "aix,yes" lib.so shared, rtl:yes, for executables - # lib.a static archive - # "both,no" lib.so.V(shr.o) shared, rtl:yes - # lib.a(lib.so.V) shared, rtl:no, for executables - # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a(lib.so.V) shared, rtl:no - # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables - # lib.a static archive - case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) - for ld_flag in $LDFLAGS; do - if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then - aix_use_runtimelinking=yes - break - fi - done - if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then - # With aix-soname=svr4, we create the lib.so.V shared archives only, - # so we don't have lib.a shared libs to link our executables. - # We have to force runtime linking in this case. - aix_use_runtimelinking=yes - LDFLAGS="$LDFLAGS -Wl,-brtl" - fi - ;; - esac - - exp_sym_flag='-bexport' - no_entry_flag='-bnoentry' - fi - - # When large executables or shared objects are built, AIX ld can - # have problems creating the table of contents. If linking a library - # or program results in "error TOC overflow" add -mminimal-toc to - # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not - # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. - - archive_cmds='' - hardcode_direct=yes - hardcode_direct_absolute=yes - hardcode_libdir_separator=':' - link_all_deplibs=yes - file_list_spec='$wl-f,' - case $with_aix_soname,$aix_use_runtimelinking in - aix,*) ;; # traditional, no import file - svr4,* | *,yes) # use import file - # The Import File defines what to hardcode. - hardcode_direct=no - hardcode_direct_absolute=no - ;; - esac - - if test yes = "$GCC"; then - case $host_os in aix4.[012]|aix4.[012].*) - # We only want to do this on AIX 4.2 and lower, the check - # below for broken collect2 doesn't work under 4.3+ - collect2name=`$CC -print-prog-name=collect2` - if test -f "$collect2name" && - strings "$collect2name" | $GREP resolve_lib_name >/dev/null - then - # We have reworked collect2 - : - else - # We have old collect2 - hardcode_direct=unsupported - # It fails to find uninstalled libraries when the uninstalled - # path is not listed in the libpath. Setting hardcode_minus_L - # to unsupported forces relinking - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - ;; - esac - shared_flag='-shared' - if test yes = "$aix_use_runtimelinking"; then - shared_flag="$shared_flag "'$wl-G' - fi - # Need to ensure runtime linking is disabled for the traditional - # shared library, or the linker may eventually find shared libraries - # /with/ Import File - we do not want to mix them. - shared_flag_aix='-shared' - shared_flag_svr4='-shared $wl-G' - else - # not using gcc - if test ia64 = "$host_cpu"; then - # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release - # chokes on -Wl,-G. The following line is correct: - shared_flag='-G' - else - if test yes = "$aix_use_runtimelinking"; then - shared_flag='$wl-G' - else - shared_flag='$wl-bM:SRE' - fi - shared_flag_aix='$wl-bM:SRE' - shared_flag_svr4='$wl-G' - fi - fi - - export_dynamic_flag_spec='$wl-bexpall' - # It seems that -bexpall does not export symbols beginning with - # underscore (_), so it is better to generate a list of symbols to export. - always_export_symbols=yes - if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then - # Warning - without using the other runtime loading flags (-brtl), - # -berok will link without error, but may produce a broken library. - allow_undefined_flag='-berok' - # Determine the default libpath from the value encoded in an - # empty executable. - if test set = "${lt_cv_aix_libpath+set}"; then - aix_libpath=$lt_cv_aix_libpath -else - if test ${lt_cv_aix_libpath_+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=/usr/lib:/lib - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag - else - if test ia64 = "$host_cpu"; then - hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' - allow_undefined_flag="-z nodefs" - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" - else - # Determine the default libpath from the value encoded in an - # empty executable. - if test set = "${lt_cv_aix_libpath+set}"; then - aix_libpath=$lt_cv_aix_libpath -else - if test ${lt_cv_aix_libpath_+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - - lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\([^ ]*\) *$/\1/ - p - } - }' - lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - # Check for a 64-bit object if we didn't find anything. - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - if test -z "$lt_cv_aix_libpath_"; then - lt_cv_aix_libpath_=/usr/lib:/lib - fi - -fi - - aix_libpath=$lt_cv_aix_libpath_ -fi - - hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" - # Warning - without using the other run time loading flags, - # -berok will link without error, but may produce a broken library. - no_undefined_flag=' $wl-bernotok' - allow_undefined_flag=' $wl-berok' - if test yes = "$with_gnu_ld"; then - # We only use this code for GNU lds that support --whole-archive. - whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' - else - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - fi - archive_cmds_need_lc=yes - archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' - # -brtl affects multiple linker settings, -berok does not and is overridden later - compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' - if test svr4 != "$with_aix_soname"; then - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' - fi - if test aix != "$with_aix_soname"; then - archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' - else - # used by -dlpreopen to get the symbols - archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' - fi - archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' - fi - fi - ;; - - amigaos*) - case $host_cpu in - powerpc) - # see comment about AmigaOS4 .so support - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' - archive_expsym_cmds='' - ;; - m68k) - archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - esac - ;; - - bsdi[45]*) - export_dynamic_flag_spec=-rdynamic - ;; - - cygwin* | mingw* | pw32* | cegcc*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - case $cc_basename in - cl*) - # Native MSVC - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - always_export_symbols=yes - file_list_spec='@' - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' - archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then - cp "$export_symbols" "$output_objdir/$soname.def"; - echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; - else - $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; - fi~ - $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ - linknames=' - # The linker will not automatically build a static lib if we build a DLL. - # _LT_TAGVAR(old_archive_from_new_cmds, )='true' - enable_shared_with_static_runtimes=yes - exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - # Don't use ranlib - old_postinstall_cmds='chmod 644 $oldlib' - postlink_cmds='lt_outputfile="@OUTPUT@"~ - lt_tool_outputfile="@TOOL_OUTPUT@"~ - case $lt_outputfile in - *.exe|*.EXE) ;; - *) - lt_outputfile=$lt_outputfile.exe - lt_tool_outputfile=$lt_tool_outputfile.exe - ;; - esac~ - if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then - $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; - $RM "$lt_outputfile.manifest"; - fi' - ;; - *) - # Assume MSVC wrapper - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=.dll - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - enable_shared_with_static_runtimes=yes - ;; - esac - ;; - - darwin* | rhapsody*) - - - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - if test yes = "$lt_cv_ld_force_load"; then - whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' - - else - whole_archive_flag_spec='' - fi - link_all_deplibs=yes - allow_undefined_flag=$_lt_dar_allow_undefined - case $cc_basename in - ifort*|nagfor*) _lt_dar_can_shared=yes ;; - *) _lt_dar_can_shared=$GCC ;; - esac - if test yes = "$_lt_dar_can_shared"; then - output_verbose_link_cmd=func_echo_all - archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" - module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" - - else - ld_shlibs=no - fi - - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2.*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9*) - if test yes = "$GCC"; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - else - archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' - fi - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - export_dynamic_flag_spec='$wl-E' - ;; - - hpux10*) - if test yes,no = "$GCC,$with_gnu_ld"; then - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test no = "$with_gnu_ld"; then - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='$wl-E' - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - fi - ;; - - hpux11*) - if test yes,no = "$GCC,$with_gnu_ld"; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - else - case $host_cpu in - hppa*64*) - archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - - # Older versions of the 11.00 compiler do not understand -b yet - # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 -printf %s "checking if $CC understands -b... " >&6; } -if test ${lt_cv_prog_compiler__b+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler__b=no - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -b" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - # Append any errors to the config.log. - cat conftest.err 1>&5 - $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler__b=yes - fi - else - lt_cv_prog_compiler__b=yes - fi - fi - $RM -r conftest* - LDFLAGS=$save_LDFLAGS - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 -printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } - -if test yes = "$lt_cv_prog_compiler__b"; then - archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' -else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' -fi - - ;; - esac - fi - if test no = "$with_gnu_ld"; then - hardcode_libdir_flag_spec='$wl+b $wl$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - hardcode_direct=yes - hardcode_direct_absolute=yes - export_dynamic_flag_spec='$wl-E' - - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes - ;; - esac - fi - ;; - - irix5* | irix6* | nonstopux*) - if test yes = "$GCC"; then - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - # Try to use the -exported_symbol ld option, if it does not - # work, assume that -exports_file does not work either and - # implicitly export all symbols. - # This should be the same for all languages, so no per-tag cache variable. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 -printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } -if test ${lt_cv_irix_exported_symbol+y} -then : - printf %s "(cached) " >&6 -else $as_nop - save_LDFLAGS=$LDFLAGS - LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo (void) { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - lt_cv_irix_exported_symbol=yes -else $as_nop - lt_cv_irix_exported_symbol=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 -printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } - if test yes = "$lt_cv_irix_exported_symbol"; then - archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' - fi - link_all_deplibs=no - else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - inherit_rpath=yes - link_all_deplibs=yes - ;; - - linux*) - case $cc_basename in - tcc*) - # Fabrice Bellard et al's Tiny C Compiler - ld_shlibs=yes - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - - netbsd* | netbsdelf*-gnu) - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - *nto* | *qnx*) - ;; - - openbsd* | bitrig*) - if test -f /usr/libexec/ld.so; then - hardcode_direct=yes - hardcode_shlibpath_var=no - hardcode_direct_absolute=yes - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - export_dynamic_flag_spec='$wl-E' - else - archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='$wl-rpath,$libdir' - fi - else - ld_shlibs=no - fi - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - shrext_cmds=.dll - archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ - $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ - $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ - $ECHO EXPORTS >> $output_objdir/$libname.def~ - prefix_cmds="$SED"~ - if test EXPORTS = "`$SED 1q $export_symbols`"; then - prefix_cmds="$prefix_cmds -e 1d"; - fi~ - prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ - cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ - $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ - emximp -o $lib $output_objdir/$libname.def' - old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' - enable_shared_with_static_runtimes=yes - ;; - - osf3*) - if test yes = "$GCC"; then - allow_undefined_flag=' $wl-expect_unresolved $wl\*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - fi - archive_cmds_need_lc='no' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test yes = "$GCC"; then - allow_undefined_flag=' $wl-expect_unresolved $wl\*' - archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' - hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' - - # Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - archive_cmds_need_lc='no' - hardcode_libdir_separator=: - ;; - - solaris*) - no_undefined_flag=' -z defs' - if test yes = "$GCC"; then - wlarc='$wl' - archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - else - case `$CC -V 2>&1` in - *"Compilers 5.0"*) - wlarc='' - archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' - ;; - *) - wlarc='$wl' - archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' - ;; - esac - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands '-z linker_flag'. GCC discards it without '$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test yes = "$GCC"; then - whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test sequent = "$host_vendor"; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='$wl-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test yes = "$GCC"; then - archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We CANNOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='$wl-z,text' - allow_undefined_flag='$wl-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='$wl-R,$libdir' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='$wl-Bexport' - runpath_var='LD_RUN_PATH' - - if test yes = "$GCC"; then - archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - - if test sni = "$host_vendor"; then - case $host in - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - export_dynamic_flag_spec='$wl-Blargedynsym' - ;; - esac - fi - fi - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 -printf "%s\n" "$ld_shlibs" >&6; } -test no = "$ld_shlibs" && can_build_shared=no - -with_gnu_ld=$with_gnu_ld - - - - - - - - - - - - - - - -# -# Do we need to explicitly link libc? -# -case "x$archive_cmds_need_lc" in -x|xyes) - # Assume -lc should be added - archive_cmds_need_lc=yes - - if test yes,yes = "$GCC,$enable_shared"; then - case $archive_cmds in - *'~'*) - # FIXME: we may have to deal with multi-command sequences. - ;; - '$CC '*) - # Test whether the compiler implicitly links with -lc since on some - # systems, -lgcc has to come before -lc. If gcc already passes -lc - # to ld, don't add -lc before -lgcc. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 -printf %s "checking whether -lc should be explicitly linked in... " >&6; } -if test ${lt_cv_archive_cmds_need_lc+y} -then : - printf %s "(cached) " >&6 -else $as_nop - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 - (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - then - lt_cv_archive_cmds_need_lc=no - else - lt_cv_archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 -printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } - archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc - ;; - esac - fi - ;; -esac - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 -printf %s "checking dynamic linker characteristics... " >&6; } - -if test yes = "$GCC"; then - case $host_os in - darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; - *) lt_awk_arg='/^libraries:/' ;; - esac - case $host_os in - mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; - *) lt_sed_strip_eq='s|=/|/|g' ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` - case $lt_search_path_spec in - *\;*) - # if the path contains ";" then we assume it to be the separator - # otherwise default to the standard path separator (i.e. ":") - it is - # assumed that no part of a normal pathname contains ";" but that should - # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` - ;; - *) - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` - ;; - esac - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary... - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - # ...but if some path component already ends with the multilib dir we assume - # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). - case "$lt_multi_os_dir; $lt_search_path_spec " in - "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) - lt_multi_os_dir= - ;; - esac - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" - elif test -n "$lt_multi_os_dir"; then - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' -BEGIN {RS = " "; FS = "/|\n";} { - lt_foo = ""; - lt_count = 0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo = "/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - # AWK program above erroneously prepends '/' to C:/dos/paths - # for these hosts. - case $host_os in - mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ - $SED 's|/\([A-Za-z]:\)|\1|g'` ;; - esac - sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` -else - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -fi -library_names_spec= -libname_spec='lib$name' -soname_spec= -shrext_cmds=.so -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -shlibpath_overrides_runpath=unknown -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_dlsearch_path_spec="/lib /usr/lib" -need_lib_prefix=unknown -hardcode_into_libs=no - -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -need_version=unknown - - - -case $host_os in -aix3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX 3 has no versioning support, so we append a major version to the name. - soname_spec='$libname$release$shared_ext$major' - ;; - -aix[4-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - hardcode_into_libs=yes - if test ia64 = "$host_cpu"; then - # AIX 5 supports IA64 - library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - else - # With GCC up to 2.95.x, collect2 would create an import file - # for dependence libraries. The import file would start with - # the line '#! .'. This would cause the generated library to - # depend on '.', always an invalid library. This was fixed in - # development snapshots of GCC prior to 3.0. - case $host_os in - aix4 | aix4.[01] | aix4.[01].*) - if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' - echo ' yes ' - echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then - : - else - can_build_shared=no - fi - ;; - esac - # Using Import Files as archive members, it is possible to support - # filename-based versioning of shared library archives on AIX. While - # this would work for both with and without runtime linking, it will - # prevent static linking of such archives. So we do filename-based - # shared library versioning with .so extension only, which is used - # when both runtime linking and shared linking is enabled. - # Unfortunately, runtime linking may impact performance, so we do - # not want this to be the default eventually. Also, we use the - # versioned .so libs for executables only if there is the -brtl - # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. - # To allow for filename-based versioning support, we need to create - # libNAME.so.V as an archive file, containing: - # *) an Import File, referring to the versioned filename of the - # archive as well as the shared archive member, telling the - # bitwidth (32 or 64) of that shared object, and providing the - # list of exported symbols of that shared object, eventually - # decorated with the 'weak' keyword - # *) the shared object with the F_LOADONLY flag set, to really avoid - # it being seen by the linker. - # At run time we better use the real file rather than another symlink, - # but for link time we create the symlink libNAME.so -> libNAME.so.V - - case $with_aix_soname,$aix_use_runtimelinking in - # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct - # soname into executable. Probably we can add versioning support to - # collect2, so additional links can be useful in future. - aix,yes) # traditional libtool - dynamic_linker='AIX unversionable lib.so' - # If using run time linking (on AIX 4.2 or later) use lib.so - # instead of lib.a to let people know that these are not - # typical AIX shared libraries. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - ;; - aix,no) # traditional AIX only - dynamic_linker='AIX lib.a(lib.so.V)' - # We preserve .a as extension for shared libraries through AIX4.2 - # and later when we are not doing run time linking. - library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' - ;; - svr4,*) # full svr4 only - dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" - library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' - # We do not specify a path in Import Files, so LIBPATH fires. - shlibpath_overrides_runpath=yes - ;; - *,yes) # both, prefer svr4 - dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" - library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' - # unpreferred sharedlib libNAME.a needs extra handling - postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' - postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' - # We do not specify a path in Import Files, so LIBPATH fires. - shlibpath_overrides_runpath=yes - ;; - *,no) # both, prefer aix - dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" - library_names_spec='$libname$release.a $libname.a' - soname_spec='$libname$release$shared_ext$major' - # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling - postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' - postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' - ;; - esac - shlibpath_var=LIBPATH - fi - ;; - -amigaos*) - case $host_cpu in - powerpc) - # Since July 2007 AmigaOS4 officially supports .so libraries. - # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - ;; - m68k) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' - ;; - esac - ;; - -beos*) - library_names_spec='$libname$shared_ext' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - -bsdi[45]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; - -cygwin* | mingw* | pw32* | cegcc*) - version_type=windows - shrext_cmds=.dll - need_version=no - need_lib_prefix=no - - case $GCC,$cc_basename in - yes,*) - # gcc - library_names_spec='$libname.dll.a' - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - - case $host_os in - cygwin*) - # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" - ;; - mingw* | cegcc*) - # MinGW DLLs use traditional 'lib' prefix - soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - ;; - pw32*) - # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - ;; - esac - dynamic_linker='Win32 ld.exe' - ;; - - *,cl*) - # Native MSVC - libname_spec='$name' - soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' - library_names_spec='$libname.dll.lib' - - case $build_os in - mingw*) - sys_lib_search_path_spec= - lt_save_ifs=$IFS - IFS=';' - for lt_path in $LIB - do - IFS=$lt_save_ifs - # Let DOS variable expansion print the short 8.3 style file name. - lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` - sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" - done - IFS=$lt_save_ifs - # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` - ;; - cygwin*) - # Convert to unix form, then to dos form, then back to unix form - # but this time dos style (no spaces!) so that the unix form looks - # like /cygdrive/c/PROGRA~1:/cygdr... - sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` - sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` - sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - ;; - *) - sys_lib_search_path_spec=$LIB - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # FIXME: find the short name or the path components, as spaces are - # common. (e.g. "Program Files" -> "PROGRA~1") - ;; - esac - - # DLL is installed to $(libdir)/../bin by postinstall_cmds - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - shlibpath_overrides_runpath=yes - dynamic_linker='Win32 link.exe' - ;; - - *) - # Assume MSVC wrapper - library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' - dynamic_linker='Win32 ld.exe' - ;; - esac - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - ;; - -darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' - soname_spec='$libname$release$major$shared_ext' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' - ;; - -dgux*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[23].*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - version_type=freebsd-$objformat - case $version_type in - freebsd-elf*) - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case $host_os in - freebsd2.*) - shlibpath_overrides_runpath=yes - ;; - freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - esac - ;; - -haiku*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - dynamic_linker="$host_os runtime_loader" - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LIBRARY_PATH - shlibpath_overrides_runpath=no - sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' - hardcode_into_libs=yes - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - version_type=sunos - need_lib_prefix=no - need_version=no - case $host_cpu in - ia64*) - shrext_cmds='.so' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.so" - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - if test 32 = "$HPUX_IA64_MODE"; then - sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" - sys_lib_dlsearch_path_spec=/usr/lib/hpux32 - else - sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" - sys_lib_dlsearch_path_spec=/usr/lib/hpux64 - fi - ;; - hppa*64*) - shrext_cmds='.sl' - hardcode_into_libs=yes - dynamic_linker="$host_os dld.sl" - shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH - shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - *) - shrext_cmds='.sl' - dynamic_linker="$host_os dld.sl" - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - ;; - esac - # HP-UX runs *really* slowly unless shared libraries are mode 555, ... - postinstall_cmds='chmod 555 $lib' - # or fails outright, so override atomically: - install_override_mode=555 - ;; - -interix[3-9]*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) - if test yes = "$lt_cv_prog_gnu_ld"; then - version_type=linux # correct to gnu/linux during the next big refactor - else - version_type=irix - fi ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='$libname$release$shared_ext$major' - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") - libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") - libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") - libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" - sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" - hardcode_into_libs=yes - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux*oldld* | linux*aout* | linux*coff*) - dynamic_linker=no - ;; - -linux*android*) - version_type=none # Android doesn't support versioned libraries. - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext' - soname_spec='$libname$release$shared_ext' - finish_cmds= - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - dynamic_linker='Android linker' - # Don't embed -rpath directories since the linker doesn't support them. - hardcode_libdir_flag_spec='-L$libdir' - ;; - -# This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - - # Some binutils ld are patched to set DT_RUNPATH - if test ${lt_cv_shlibpath_overrides_runpath+y} -then : - printf %s "(cached) " >&6 -else $as_nop - lt_cv_shlibpath_overrides_runpath=no - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null -then : - lt_cv_shlibpath_overrides_runpath=yes -fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir - -fi - - shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath - - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes - - # Ideally, we could use ldconfig to report *all* directories which are - # searched for libraries, however this is still not possible. Aside from not - # being certain /sbin/ldconfig is available, command - # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, - # even though it is searched at run-time. Try to do the best guess by - # appending ld.so.conf contents (and includes) to the search path. - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` - sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on - # powerpc, because MkLinux only supported shared libraries with the - # GNU dynamic linker. Since this was broken with cross compilers, - # most powerpc-linux boxes support dynamic linking these days and - # people can always --disable-shared, the test was removed, and we - # assume the GNU/Linux dynamic linker is in use. - dynamic_linker='GNU/Linux ld.so' - ;; - -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - -netbsd*) - version_type=sunos - need_lib_prefix=no - need_version=no - if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - ;; - -newsos6) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -*nto* | *qnx*) - version_type=qnx - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='ldqnx.so' - ;; - -openbsd* | bitrig*) - version_type=sunos - sys_lib_dlsearch_path_spec=/usr/lib - need_lib_prefix=no - if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then - need_version=no - else - need_version=yes - fi - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - ;; - -os2*) - libname_spec='$name' - version_type=windows - shrext_cmds=.dll - need_version=no - need_lib_prefix=no - # OS/2 can only load a DLL with a base name of 8 characters or less. - soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; - v=$($ECHO $release$versuffix | tr -d .-); - n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); - $ECHO $n$v`$shared_ext' - library_names_spec='${libname}_dll.$libext' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=BEGINLIBPATH - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - postinstall_cmds='base_file=`basename \$file`~ - dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ - dldir=$destdir/`dirname \$dlpath`~ - test -d \$dldir || mkdir -p \$dldir~ - $install_prog $dir/$dlname \$dldir/$dlname~ - chmod a+x \$dldir/$dlname~ - if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then - eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; - fi' - postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ - dlpath=$dir/\$dldll~ - $RM \$dlpath' - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_lib_prefix=no - need_version=no - soname_spec='$libname$release$shared_ext$major' - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec - ;; - -rdos*) - dynamic_linker=no - ;; - -solaris*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - if test yes = "$with_gnu_ld"; then - need_lib_prefix=no - fi - need_version=yes - ;; - -sysv4 | sysv4.3*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - case $host_vendor in - sni) - shlibpath_overrides_runpath=no - need_lib_prefix=no - runpath_var=LD_RUN_PATH - ;; - siemens) - need_lib_prefix=no - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - -sysv4*MP*) - if test -d /usr/nec; then - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' - soname_spec='$libname$shared_ext.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=sco - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - hardcode_into_libs=yes - if test yes = "$with_gnu_ld"; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -tpf*) - # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -uts4*) - version_type=linux # correct to gnu/linux during the next big refactor - library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' - soname_spec='$libname$release$shared_ext$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 -printf "%s\n" "$dynamic_linker" >&6; } -test no = "$dynamic_linker" && can_build_shared=no - -variables_saved_for_relink="PATH $shlibpath_var $runpath_var" -if test yes = "$GCC"; then - variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" -fi - -if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then - sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec -fi - -if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then - sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec -fi - -# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... -configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec - -# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code -func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" - -# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool -configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 -printf %s "checking how to hardcode library paths into programs... " >&6; } -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || - test -n "$runpath_var" || - test yes = "$hardcode_automatic"; then - - # We can hardcode non-existent directories. - if test no != "$hardcode_direct" && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && - test no != "$hardcode_minus_L"; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 -printf "%s\n" "$hardcode_action" >&6; } - -if test relink = "$hardcode_action" || - test yes = "$inherit_rpath"; then - # Fast installation is not supported - enable_fast_install=no -elif test yes = "$shlibpath_overrides_runpath" || - test no = "$enable_shared"; then - # Fast installation is not necessary - enable_fast_install=needless -fi - - - - - - - if test yes != "$enable_dlopen"; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else - lt_cv_dlopen=no - lt_cv_dlopen_libs= - - case $host_os in - beos*) - lt_cv_dlopen=load_add_on - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - - mingw* | pw32* | cegcc*) - lt_cv_dlopen=LoadLibrary - lt_cv_dlopen_libs= - ;; - - cygwin*) - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - ;; - - darwin*) - # if libdl is installed we need to link against it - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -printf %s "checking for dlopen in -ldl... " >&6; } -if test ${ac_cv_lib_dl_dlopen+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes -then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else $as_nop - - lt_cv_dlopen=dyld - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - -fi - - ;; - - tpf*) - # Don't try to run any link tests for TPF. We know it's impossible - # because TPF is a cross-compiler, and we know how we open DSOs. - lt_cv_dlopen=dlopen - lt_cv_dlopen_libs= - lt_cv_dlopen_self=no - ;; - - *) - ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" -if test "x$ac_cv_func_shl_load" = xyes -then : - lt_cv_dlopen=shl_load -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -printf %s "checking for shl_load in -ldld... " >&6; } -if test ${ac_cv_lib_dld_shl_load+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char shl_load (); -int -main (void) -{ -return shl_load (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_dld_shl_load=yes -else $as_nop - ac_cv_lib_dld_shl_load=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes -then : - lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld -else $as_nop - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes -then : - lt_cv_dlopen=dlopen -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -printf %s "checking for dlopen in -ldl... " >&6; } -if test ${ac_cv_lib_dl_dlopen+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes -then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 -printf %s "checking for dlopen in -lsvld... " >&6; } -if test ${ac_cv_lib_svld_dlopen+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsvld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_svld_dlopen=yes -else $as_nop - ac_cv_lib_svld_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 -printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } -if test "x$ac_cv_lib_svld_dlopen" = xyes -then : - lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 -printf %s "checking for dld_link in -ldld... " >&6; } -if test ${ac_cv_lib_dld_dld_link+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldld $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dld_link (); -int -main (void) -{ -return dld_link (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_dld_dld_link=yes -else $as_nop - ac_cv_lib_dld_dld_link=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 -printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } -if test "x$ac_cv_lib_dld_dld_link" = xyes -then : - lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld -fi - - -fi - - -fi - - -fi - - -fi - - -fi - - ;; - esac - - if test no = "$lt_cv_dlopen"; then - enable_dlopen=no - else - enable_dlopen=yes - fi - - case $lt_cv_dlopen in - dlopen) - save_CPPFLAGS=$CPPFLAGS - test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - - save_LDFLAGS=$LDFLAGS - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS=$LIBS - LIBS="$lt_cv_dlopen_libs $LIBS" - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 -printf %s "checking whether a program can dlopen itself... " >&6; } -if test ${lt_cv_dlopen_self+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test yes = "$cross_compiling"; then : - lt_cv_dlopen_self=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisibility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 -printf "%s\n" "$lt_cv_dlopen_self" >&6; } - - if test yes = "$lt_cv_dlopen_self"; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 -printf %s "checking whether a statically linked program can dlopen itself... " >&6; } -if test ${lt_cv_dlopen_self_static+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test yes = "$cross_compiling"; then : - lt_cv_dlopen_self_static=cross -else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <<_LT_EOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_DLFCN_H -#include -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LT_DLGLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LT_DLGLOBAL DL_GLOBAL -# else -# define LT_DLGLOBAL 0 -# endif -#endif - -/* We may have to define LT_DLLAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LT_DLLAZY_OR_NOW -# ifdef RTLD_LAZY -# define LT_DLLAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LT_DLLAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LT_DLLAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LT_DLLAZY_OR_NOW DL_NOW -# else -# define LT_DLLAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -/* When -fvisibility=hidden is used, assume the code has been annotated - correspondingly for the symbols needed. */ -#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) -int fnord () __attribute__((visibility("default"))); -#endif - -int fnord () { return 42; } -int main () -{ - void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); - int status = $lt_dlunknown; - - if (self) - { - if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else - { - if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; - else puts (dlerror ()); - } - /* dlclose (self); */ - } - else - puts (dlerror ()); - - return status; -} -_LT_EOF - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 - (eval $ac_link) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then - (./conftest; exit; ) >&5 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 -printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } - fi - - CPPFLAGS=$save_CPPFLAGS - LDFLAGS=$save_LDFLAGS - LIBS=$save_LIBS - ;; - esac - - case $lt_cv_dlopen_self in - yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; - *) enable_dlopen_self=unknown ;; - esac - - case $lt_cv_dlopen_self_static in - yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; - *) enable_dlopen_self_static=unknown ;; - esac -fi - - - - - - - - - - - - - - - - - -striplib= -old_striplib= -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 -printf %s "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then - striplib="$STRIP -x" - old_striplib="$STRIP -S" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - fi - ;; - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - ;; - esac -fi - - - - - - - - - - - - - # Report what library types will actually be built - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 -printf %s "checking if libtool supports shared libraries... " >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 -printf "%s\n" "$can_build_shared" >&6; } - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 -printf %s "checking whether to build shared libraries... " >&6; } - test no = "$can_build_shared" && enable_shared=no - - # On AIX, shared libraries and static libraries use the same namespace, and - # are all built from PIC. - case $host_os in - aix3*) - test yes = "$enable_shared" && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; - - aix[4-9]*) - if test ia64 != "$host_cpu"; then - case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in - yes,aix,yes) ;; # shared object as lib.so file only - yes,svr4,*) ;; # shared object as lib.so archive member only - yes,*) enable_static=no ;; # shared object in lib.a archive as well - esac - fi - ;; - esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -printf "%s\n" "$enable_shared" >&6; } - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 -printf %s "checking whether to build static libraries... " >&6; } - # Make sure either enable_shared or enable_static is yes. - test yes = "$enable_shared" || enable_static=yes - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 -printf "%s\n" "$enable_static" >&6; } - - - - -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -CC=$lt_save_CC - - - - - - - - - - - - - - - - ac_config_commands="$ac_config_commands libtool" - - - - -# Only expand once: - - -CFLAGS="$saved_CFLAGS" -host_os=$old_host_os - -case $host in #( - sparc-sun-solaris*) : - DEP_CC="false" ;; #( - *-pc-windows) : - if test -n "$ac_tool_prefix"; then - for ac_prog in $DEP_CC gcc cc x86_64-w64-mingw32-gcc i686-w64-mingw32-gcc - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_DEP_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$DEP_CC"; then - ac_cv_prog_DEP_CC="$DEP_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_DEP_CC="$ac_tool_prefix$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DEP_CC=$ac_cv_prog_DEP_CC -if test -n "$DEP_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DEP_CC" >&5 -printf "%s\n" "$DEP_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$DEP_CC" && break - done -fi -if test -z "$DEP_CC"; then - ac_ct_DEP_CC=$DEP_CC - for ac_prog in $DEP_CC gcc cc x86_64-w64-mingw32-gcc i686-w64-mingw32-gcc -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_DEP_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DEP_CC"; then - ac_cv_prog_ac_ct_DEP_CC="$ac_ct_DEP_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DEP_CC="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DEP_CC=$ac_cv_prog_ac_ct_DEP_CC -if test -n "$ac_ct_DEP_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DEP_CC" >&5 -printf "%s\n" "$ac_ct_DEP_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$ac_ct_DEP_CC" && break -done - - if test "x$ac_ct_DEP_CC" = x; then - DEP_CC="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DEP_CC=$ac_ct_DEP_CC - fi -fi - ;; #( - *) : - DEP_CC="$CC" ;; -esac - -case $enable_dependency_generation in #( - yes) : - if test "$DEP_CC" = "false" -then : - as_fn_error $? "The MSVC ports cannot generate dependency information. Install gcc (or another CC-like compiler)" "$LINENO" 5 -else $as_nop - compute_deps=true -fi ;; #( - no) : - compute_deps=false ;; #( - *) : - if test -e .git -then : - if test "$DEP_CC" = "false" -then : - compute_deps=false -else $as_nop - compute_deps=true -fi -else $as_nop - compute_deps=false -fi ;; -esac - -case $host in #( - # In config/Makefile.mingw*, we had: - # TARGET=i686-w64-mingw32 and x86_64-w64-mingw32 - # TOOLPREF=$(TARGET)- - # ARCMD=$(TOOLPREF)ar - # However autoconf and libtool seem to use ar - # So we let them do, at the moment - *-pc-windows) : - - mkexe_via_cc_extra_cmd=' && $(call MERGEMANIFESTEXE,$(1))' - libext=lib - AR="" - if test "$host_cpu" = "x86_64" -then : - machine="-machine:AMD64 " -else $as_nop - machine="" -fi - mklib="link -lib -nologo $machine /out:\$(1) \$(2)" - ;; #( - *) : - - mklib="rm -f \$(1) && ${AR} rc \$(1) \$(2)" - ;; -esac - -## Find vendor of the C compiler -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -printf %s "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test ${ac_cv_prog_CPP+y} -then : - printf %s "(cached) " >&6 -else $as_nop - # Double quotes because $CC needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO" -then : - -else $as_nop - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO" -then : - # Broken: success on invalid input. -continue -else $as_nop - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok -then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -printf "%s\n" "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO" -then : - -else $as_nop - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO" -then : - # Broken: success on invalid input. -continue -else $as_nop - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok -then : - -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking C compiler vendor" >&5 -printf %s "checking C compiler vendor... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#if defined(_MSC_VER) -msvc _MSC_VER -# if defined(__clang_major__) && defined(__clang_minor__) - clang __clang_major__ __clang_minor__ -# endif -#elif defined(__INTEL_COMPILER) -icc __INTEL_COMPILER -#elif defined(__MINGW32__) -#include <_mingw_mac.h> -mingw __MINGW64_VERSION_MAJOR __MINGW64_VERSION_MINOR -# if defined(__clang_major__) && defined(__clang_minor__) - clang __clang_major__ __clang_minor__ -# elif defined(__GNUC__) && defined(__GNUC_MINOR__) - gcc __GNUC__ __GNUC_MINOR__ -# endif -#elif defined(__clang_major__) && defined(__clang_minor__) -clang __clang_major__ __clang_minor__ -#elif defined(__GNUC__) && defined(__GNUC_MINOR__) -gcc __GNUC__ __GNUC_MINOR__ -#elif defined(__xlc__) && defined(__xlC__) -xlc __xlC__ __xlC_ver__ -#elif defined(__SUNPRO_C) -sunc __SUNPRO_C __SUNPRO_C -#else -unknown -#endif - -_ACEOF -if ac_fn_c_try_cpp "$LINENO" -then : - if test ${ocaml_cv_cc_vendor2+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ocaml_cv_cc_vendor2=`sed -e '/^#/d' conftest.i | tr -s '[:space:]' '-' \ - | sed -e 's/^-//' -e 's/-$//'` -fi - - # Domain of values was changed in #12768, so the cache key became different - # from the variable - ocaml_cc_vendor="$ocaml_cv_cc_vendor2" -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "unexpected preprocessor failure -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.err conftest.i conftest.$ac_ext - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ocaml_cc_vendor" >&5 -printf "%s\n" "$ocaml_cc_vendor" >&6; } - - -## In cross-compilation mode, can we run executables produced? -# At the moment, it's required, but the fact is used in C99 function detection - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether host executables can be run in the build" >&5 -printf %s "checking whether host executables can be run in the build... " >&6; } - old_cross_compiling="$cross_compiling" - cross_compiling='no' - if test "$cross_compiling" = yes -then : - # autoconf displays a warning if this parameter is missing, but - # cross-compilation mode was disabled above. - assert=false -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main (void) {return 0;} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - host_runnable=true -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - host_runnable=false -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - cross_compiling="$old_cross_compiling" - - -# Determine how to call the C preprocessor directly. -# Most of the time, calling the C preprocessor through the C compiler is -# desirable and even important. -# In some cases, though, we want to use the C preprocessor only to -# expand macros. In such cases, it is much more convenient to be able -# to invoke it directly rather than through the C compiler, for instance -# because, when invoked directly, the C preprocessor does not require -# to be invoked on a file with a '.c' extension -# We thus figure out how to invoke the C preprocessor directly but -# let the CPP variable untouched, except for the MSVC port where we set it -# manually to make sure the backward compatibility is preserved -case $ocaml_cc_vendor in #( - xlc-*) : - CPP="$CC -E -qnoppline" # suppress incompatible XLC line directives - ocamltest_CPP="$CPP" ;; #( - sunc-*) : - CPP="$CC -E -Qn" # suppress generation of Sun PRO ident string - ocamltest_CPP="$CPP" ;; #( - msvc-*) : - CPP="$CC -nologo -EP" - ocamltest_CPP="$CPP 2> nul" ;; #( - *) : - CPP="$CC -E -P" - ocamltest_CPP="$CPP" ;; -esac - -# Absolute path to the toplevel source directory - -# A sentinel character (X) is added at the end of the directory name -# and then removed, in case the directory name finishes with an odd character. -# (The $(...) construct strips trailing \n characters.) -# Also, it is important to use `printf` rather than `echo` because the -# behaviour of `echo` is indeterminate and uncontrollable if the -# absolute path contains backslashes, which will definitely be the case -# on Windows -# See https://lists.gnu.org/archive/html/autoconf/2019-07/msg00002.html -# for the detailed explanation. - -ocamlsrcdir=$(unset CDPATH; cd -- "$srcdir" && printf %sX "$PWD") || fail -ocamlsrcdir=${ocamlsrcdir%X} - -# Whether ar supports @FILE arguments - -case lt_cv_ar_at_file in #( - no) : - ar_supports_response_files=false ;; #( - *) : - ar_supports_response_files=true ;; -esac - -# Libraries to build depending on the host - -case $host in #( - *-*-mingw32*|*-pc-windows) : - unix_or_win32="win32" - ln='cp -pf' - ocamltest_libunix="Some false" - ocamlsrcdir="$(LC_ALL=C.UTF-8 cygpath -w -- "$ocamlsrcdir")" - ocamlyacc_wstr_module="yacc/wstr" ;; #( - *) : - unix_or_win32="unix" - ln='ln -sf' - ocamltest_libunix="Some true" - ocamlyacc_wstr_module="" ;; -esac - -case $host in #( - *-*-cygwin*|*-*-mingw32*|*-pc-windows) : - exeext=".exe" ;; #( - *) : - exeext='' ;; -esac - -otherlibraries="dynlink" -lib_dynlink=true - -if test x"$enable_runtime5" = x"yes" -then : - otherlibraries="$otherlibraries runtime_events" - lib_runtime_events=true -fi - -if test x"$enable_unix_lib" != "xno" -then : - enable_unix_lib=yes - ac_config_files="$ac_config_files otherlibs/unix/META" - - otherlibraries="$otherlibraries unix" - lib_unix=true - ac_config_links="$ac_config_links otherlibs/unix/unix.ml:otherlibs/unix/unix_${unix_or_win32}.ml" - - ocamltest_unix_impl="real" - unix_directory="otherlibs/unix" - unix_library="${unix_directory}/unix" -else $as_nop - ocamltest_libunix="None" -fi - -if test x"$enable_str_lib" != "xno" -then : - otherlibraries="$otherlibraries str" - lib_str=true - ac_config_files="$ac_config_files otherlibs/str/META" - -fi - -# Checks for system services - -## Test whether #! scripts are supported -## TODO: have two values, one for host and one for target -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether #! works in shell scripts" >&5 -printf %s "checking whether #! works in shell scripts... " >&6; } -if test ${ac_cv_sys_interpreter+y} -then : - printf %s "(cached) " >&6 -else $as_nop - echo '#! /bin/cat -exit 69 -' >conftest -chmod u+x conftest -(SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) -if test $? -ne 69; then - ac_cv_sys_interpreter=yes -else - ac_cv_sys_interpreter=no -fi -rm -f conftest -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 -printf "%s\n" "$ac_cv_sys_interpreter" >&6; } -interpval=$ac_cv_sys_interpreter - - -shebangscripts=false -launch_method='exe' -if test "x$interpval" = "xyes" -then : - case $host in #( - *-cygwin) : - # Cygwin supports shebangs, which we use for the compiler itself, but - # partially for legacy, and partially so that executables can be easily - # run from outside Cygwin, the executables ocamlc and ocamlopt produce do - # not use shebang scripts - shebangscripts=true - launch_method='sh' - if test x"$target_launch_method" = 'x' -then : - target_launch_method='exe' -fi ;; #( - *-*-mingw32*|*-pc-windows) : - ;; #( - *) : - shebangscripts=true - launch_method='sh' - ;; -esac - -fi - -# stdlib/runtime.info and stdlib/target_runtime.info are generated by commands -# in config.status, rather than by the .in mechanism, since the latter cannot -# reliably process binary files. -ac_config_commands="$ac_config_commands shebang" - - -# Are we building a cross-compiler - -if test x"$host" = x"$target" -then : - cross_compiler=false -else $as_nop - cross_compiler=true -fi - -# Checks for programs - -## Check for the C compiler: done by libtool -## AC_PROG_CC - -## Check for C99 support: done by libtool -## AC_PROG_CC_C99 - -## Determine which flags to use for the C compiler - -case $ocaml_cc_vendor in #( - xlc-*) : - outputobj='-o ' - warn_error_flag='' - cc_warnings='-qflag=i:i' ;; #( - # all warnings enabled - sunc-*) : - outputobj='-o '; cc_warnings="" ;; #( - msvc-*) : - outputobj='-Fo' - warn_error_flag='-WX' - cc_warnings='' ;; #( - *) : - outputobj='-o ' - warn_error_flag='-Werror' - cc_warnings="-Wall -Wno-pragmas -Wint-conversion -Wstrict-prototypes \ --Wold-style-definition -Wundef" ;; -esac - -# Use -Wold-style-declaration if supported -as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags_$warn_error_flag_-Wold-style-declaration" | $as_tr_sh` -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wold-style-declaration" >&5 -printf %s "checking whether C compiler accepts -Wold-style-declaration... " >&6; } -if eval test \${$as_CACHEVAR+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS $warn_error_flag -Wold-style-declaration" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$as_CACHEVAR=yes" -else $as_nop - eval "$as_CACHEVAR=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags -fi -eval ac_res=\$$as_CACHEVAR - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } -if eval test \"x\$"$as_CACHEVAR"\" = x"yes" -then : - cc_warnings="$cc_warnings -Wold-style-declaration" -else $as_nop - : -fi - - -case $enable_warn_error in #( - no) : - ;; #( - *) : - cc_warnings="$cc_warnings $warn_error_flag" ;; #( - *) : - ;; -esac - -# We select high optimization levels, provided we can turn off: -# - strict type-based aliasing analysis (too risky for the OCaml runtime) -# - strict no-overflow conditions on signed integer arithmetic -# (the OCaml runtime assumes Java-style behavior of signed integer arith.) -# Concerning optimization level, -O3 is somewhat risky, so take -O2. -# Concerning language version, recent enough versions of GCC and Clang -# default to gnu11 (C11 + GNU extensions) or gnu17, which is fine. -case $ocaml_cc_vendor in #( - clang-*) : - common_cflags="-O2 -fno-strict-aliasing -fwrapv"; - internal_cflags="$cc_warnings -fno-common" ;; #( - *gcc-[0123]-*|*gcc-4-[0-8]) : - # No C11 support - as_fn_error 69 "This version of GCC is too old. Please use GCC version 4.9 or above." "$LINENO" 5 ;; #( - gcc-*) : - common_cflags="-O2 -fno-strict-aliasing -fwrapv"; - internal_cflags="$cc_warnings -fno-common -fexcess-precision=standard \ --Wvla" ;; #( - mingw-*-*-gcc-*) : - internal_cflags="-Wno-unused $cc_warnings \ --fexcess-precision=standard" - # TODO: see whether the code can be fixed to avoid -Wno-unused - common_cflags="-O2 -fno-strict-aliasing -fwrapv -mms-bitfields" - internal_cppflags='-D__USE_MINGW_ANSI_STDIO=0 -DUNICODE -D_UNICODE' - internal_cppflags="$internal_cppflags -DWINDOWS_UNICODE=" - internal_cppflags="${internal_cppflags}\$(WINDOWS_UNICODE)" ;; #( - mingw-*) : - as_fn_error $? "Unsupported C compiler for a MinGW-w64 build" "$LINENO" 5 ;; #( - msvc-*) : - common_cflags="-nologo -O2 -Gy- -MD $cc_warnings" - common_cppflags="-D_CRT_SECURE_NO_DEPRECATE" - internal_cppflags='-DUNICODE -D_UNICODE' - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler supports -d2VolatileMetadata-" >&5 -printf %s "checking whether the C compiler supports -d2VolatileMetadata-... " >&6; } - saved_CFLAGS="$CFLAGS" - CFLAGS="-d2VolatileMetadata- $CFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main() { return 0; } -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - cl_has_volatile_metadata=true - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - cl_has_volatile_metadata=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$saved_CFLAGS" - - if test "x$cl_has_volatile_metadata" = "xtrue" -then : - internal_cflags='-d2VolatileMetadata-' -fi - internal_cppflags="$internal_cppflags -DWINDOWS_UNICODE=" - internal_cppflags="${internal_cppflags}\$(WINDOWS_UNICODE)" ;; #( - xlc-*) : - common_cflags="-O5 -qtune=balanced -qnoipa -qinline"; - internal_cflags="$cc_warnings" ;; #( - sunc-*) : - # Optimization should be >= O4 to inline functions - # and prevent unresolved externals - common_cflags="-O4 -xc99=all -D_XPG6 $CFLAGS"; - internal_cflags="$cc_warnings" ;; #( - *) : - common_cflags="-O" ;; -esac - -# Enable SSE2 on x86 mingw to avoid using 80-bit registers. -case $host in #( - i686-*-mingw32*) : - internal_cflags="$internal_cflags -mfpmath=sse -msse2" ;; #( - *) : - ;; -esac - -# Use 64-bit file offset if possible -# See also AC_SYS_LARGEFILE -# Problem: flags are added to CC rather than CPPFLAGS -case $host in #( - *-*-mingw32*|*-pc-windows) : - ;; #( - *) : - common_cppflags="$common_cppflags -D_FILE_OFFSET_BITS=64" ;; -esac - -# Adjust according to target - -# On Windows we do not take $enable_shared because it does not seem -# to work. This should be better understood later -#AS_CASE([$target], -# [*-pc-windows], -# [enable_shared=yes]) - -if test x"$enable_shared" = "xno" -then : - supports_shared_libraries=false - case $host in #( - *-pc-windows|*-w64-mingw32*) : - as_fn_error $? "Cannot build native Win32 with --disable-shared" "$LINENO" 5 ;; #( - *) : - ;; -esac -else $as_nop - supports_shared_libraries=true -fi - -# Define flexlink chain and flags correctly for the different Windows ports -flexlink_flags='' -case $host in #( - i686-*-cygwin) : - flexdll_chain='cygwin' - flexlink_flags='-merge-manifest -stack 16777216' ;; #( - x86_64-*-cygwin) : - flexdll_chain='cygwin64' - flexlink_flags='-merge-manifest -stack 16777216' ;; #( - *-*-cygwin*) : - as_fn_error $? "unknown cygwin variant" "$LINENO" 5 ;; #( - i686-w64-mingw32*) : - flexdll_chain='mingw' - flexlink_flags='-stack 16777216' ;; #( - x86_64-w64-mingw32*) : - flexdll_chain='mingw64' - flexlink_flags='-stack 33554432' ;; #( - i686-pc-windows) : - flexdll_chain='msvc' - flexlink_flags='-merge-manifest -stack 16777216' ;; #( - x86_64-pc-windows) : - flexdll_chain='msvc64' - flexlink_flags='-merge-manifest -stack 33554432' ;; #( - *) : - flexdll_chain='' ;; -esac - -if test x"$supports_shared_libraries" != 'xfalse' -then : - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for flexdll sources" >&5 -printf %s "checking for flexdll sources... " >&6; } - if test x"$with_flexdll" = "xno" -then : - flexdll_source_dir='' - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 -printf "%s\n" "disabled" >&6; } -else $as_nop - flexmsg='' - case $target in #( - *-*-cygwin*|*-w64-mingw32*|*-pc-windows) : - if test x"$with_flexdll" = 'x' || test x"$with_flexdll" = 'xflexdll' -then : - if test -f 'flexdll/flexdll.h' -then : - flexdll_source_dir=flexdll - iflexdir='$(ROOTDIR)/flexdll' - with_flexdll="$iflexdir" -else $as_nop - if test x"$with_flexdll" != 'x' -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: requested but not available" >&5 -printf "%s\n" "requested but not available" >&6; } - as_fn_error $? "exiting" "$LINENO" 5 -fi -fi -else $as_nop - rm -rf flexdll-sources - if test -f "$with_flexdll/flexdll.h" -then : - mkdir -p flexdll-sources - cp -r "$with_flexdll"/* flexdll-sources/ - flexdll_source_dir='flexdll-sources' - iflexdir='$(ROOTDIR)/flexdll-sources' - flexmsg=" (from $with_flexdll)" -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: requested but not available" >&5 -printf "%s\n" "requested but not available" >&6; } - as_fn_error $? "exiting" "$LINENO" 5 -fi -fi - if test x"$flexdll_source_dir" = 'x' -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $iflexdir$flexmsg" >&5 -printf "%s\n" "$iflexdir$flexmsg" >&6; } - bootstrapping_flexdll=true - flexdll_dir=\"+flexdll\" - # The submodule should be searched *before* any other -I paths - internal_cppflags="-I $iflexdir $internal_cppflags" -fi ;; #( - *) : - if test x"$with_flexdll" != 'x' -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: requested but not supported" >&5 -printf "%s\n" "requested but not supported" >&6; } - as_fn_error $? "exiting" "$LINENO" 5 -fi ;; -esac -fi - - # Extract the first word of "flexlink", so it can be a program name with args. -set dummy flexlink; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_flexlink+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$flexlink"; then - ac_cv_prog_flexlink="$flexlink" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_flexlink="flexlink" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -flexlink=$ac_cv_prog_flexlink -if test -n "$flexlink"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $flexlink" >&5 -printf "%s\n" "$flexlink" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - - if test -n "$flexlink" && test -z "$flexdll_source_dir" -then : - - - - saved_CC="$CC" - saved_CFLAGS="$CFLAGS" - saved_CPPFLAGS="$CPPFLAGS" - saved_LIBS="$LIBS" - saved_ac_ext="$ac_ext" - saved_ac_compile="$ac_compile" - # Move the content of confdefs.h to another file so it does not - # get included - mv confdefs.h confdefs.h.bak - touch confdefs.h - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $flexlink works" >&5 -printf %s "checking whether $flexlink works... " >&6; } - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int answer = 42; -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - # Create conftest1.$ac_objext as a symlink on Cygwin to ensure that native - # flexlink can cope. The reverse test is unnecessary (a Cygwin-compiled - # flexlink can read anything). - mv conftest.$ac_objext conftest1.$ac_objext - case $host in #( - *-pc-cygwin) : - ln -s conftest1.$ac_objext conftest2.$ac_objext ;; #( - *) : - cp conftest1.$ac_objext conftest2.$ac_objext ;; -esac - - CC="$flexlink -chain $flexdll_chain -exe" - LIBS="conftest2.$ac_objext" - CPPFLAGS="$internal_cppflags $CPPFLAGS" - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main() { return 0; } -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - as_fn_error $? "$flexlink does not work" "$LINENO" 5 -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unexpected compile error" >&5 -printf "%s\n" "unexpected compile error" >&6; } - as_fn_error $? "error calling the C compiler" "$LINENO" 5 -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - - - # Restore the content of confdefs.h - mv confdefs.h.bak confdefs.h - ac_compile="$saved_ac_compile" - ac_ext="$saved_ac_ext" - CPPFLAGS="$saved_CPPFLAGS" - CFLAGS="$saved_CFLAGS" - CC="$saved_CC" - LIBS="$saved_LIBS" - - - - case $host in #( - *-w64-mingw32*|*-pc-windows) : - flexlink_where="$(cmd /c "$flexlink" -where 2>/dev/null)" - if test -z "$flexlink_where" -then : - as_fn_error $? "$flexlink is not executable from a native Win32 process" "$LINENO" 5 -fi ;; #( - *) : - ;; -esac - -fi - - - - saved_CC="$CC" - saved_CFLAGS="$CFLAGS" - saved_CPPFLAGS="$CPPFLAGS" - saved_LIBS="$LIBS" - saved_ac_ext="$ac_ext" - saved_ac_compile="$ac_compile" - # Move the content of confdefs.h to another file so it does not - # get included - mv confdefs.h confdefs.h.bak - touch confdefs.h - - - if test -n "$flexdll_source_dir" -then : - CPPFLAGS="-I $flexdll_source_dir $CPPFLAGS" -fi - have_flexdll_h=no - ac_fn_c_check_header_compile "$LINENO" "flexdll.h" "ac_cv_header_flexdll_h" "$ac_includes_default" -if test "x$ac_cv_header_flexdll_h" = xyes -then : - have_flexdll_h=yes -else $as_nop - have_flexdll_h=no -fi - - if test x"$have_flexdll_h" = 'xno' -then : - if test -n "$flexdll_source_dir" -then : - as_fn_error $? "$flexdll_source_dir/flexdll.h appears unusable" "$LINENO" 5 -fi -fi - - - # Restore the content of confdefs.h - mv confdefs.h.bak confdefs.h - ac_compile="$saved_ac_compile" - ac_ext="$saved_ac_ext" - CPPFLAGS="$saved_CPPFLAGS" - CFLAGS="$saved_CFLAGS" - CC="$saved_CC" - LIBS="$saved_LIBS" - - - - if test -n "$flexlink" && test x"$have_flexdll_h" = 'xno' -then : - - - saved_CC="$CC" - saved_CFLAGS="$CFLAGS" - saved_CPPFLAGS="$CPPFLAGS" - saved_LIBS="$LIBS" - saved_ac_ext="$ac_ext" - saved_ac_compile="$ac_compile" - # Move the content of confdefs.h to another file so it does not - # get included - mv confdefs.h confdefs.h.bak - touch confdefs.h - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if \"$flexlink -where\" includes flexdll.h" >&5 -printf %s "checking if \"$flexlink -where\" includes flexdll.h... " >&6; } - flexlink_where="$($flexlink -where | tr -d '\r')" - CPPFLAGS="$CPPFLAGS -I \"$flexlink_where\"" - cat > conftest.c <<"EOF" -#include -int main (void) {return 0;} -EOF - cat > conftest.Makefile </dev/null 2>/dev/null -then : - have_flexdll_h=yes - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - # Restore the content of confdefs.h - mv confdefs.h.bak confdefs.h - ac_compile="$saved_ac_compile" - ac_ext="$saved_ac_ext" - CPPFLAGS="$saved_CPPFLAGS" - CFLAGS="$saved_CFLAGS" - CC="$saved_CC" - LIBS="$saved_LIBS" - - - if test "x$have_flexdll_h" = 'xyes' -then : - internal_cppflags="$internal_cppflags -I \"$flexlink_where\"" -fi - -fi - -fi - -case $have_flexdll_h,$supports_shared_libraries,$host in #( - no,true,*-*-cygwin*) : - supports_shared_libraries=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: flexdll.h not found: shared library support disabled." >&5 -printf "%s\n" "$as_me: WARNING: flexdll.h not found: shared library support disabled." >&2;} ;; #( - no,*,*-w64-mingw32*|no,*,*-pc-windows) : - as_fn_error $? "flexdll.h is required for native Win32" "$LINENO" 5 ;; #( - *) : - ;; -esac - -case $flexdll_source_dir,$supports_shared_libraries,$flexlink,$host in #( - ,true,,*-*-cygwin*) : - supports_shared_libraries=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: flexlink not found: shared library support disabled." >&5 -printf "%s\n" "$as_me: WARNING: flexlink not found: shared library support disabled." >&2;} ;; #( - ,*,,*-w64-mingw32*|,*,,*-pc-windows) : - as_fn_error $? "flexlink is required for native Win32" "$LINENO" 5 ;; #( - *) : - ;; -esac - -mkexe_cmd_exp="$CC" - -case $ocaml_cc_vendor,$host in #( - *,x86_64-*-darwin*) : - oc_ldflags='-Wl,-no_compact_unwind'; - printf "%s\n" "#define HAS_ARCH_CODE32 1" >>confdefs.h - ;; #( - *,aarch64-*-darwin*|arm64-*-darwin*) : - printf "%s\n" "#define HAS_ARCH_CODE32 1" >>confdefs.h - ;; #( - *,*-*-cygwin*) : - common_cppflags="$common_cppflags -U_WIN32" - if $supports_shared_libraries -then : - mkexe_cmd_exp="flexlink -exe -chain ${flexdll_chain} ${flexlink_flags}" - mkexe_cmd="flexlink -exe -chain ${flexdll_chain} ${flexlink_flags}" - mkexe_cflags='' - mkexe_ldflags_prefix='-link ' -else $as_nop - mkexe_extra_flags='' - oc_ldflags='-Wl,--stack,16777216' - -fi - ostype="Cygwin" ;; #( - *,*-*-mingw32*) : - case $host in #( - i686-*-*) : - oc_dll_ldflags="-static-libgcc" ;; #( - *) : - ;; -esac - ostype="Win32" - toolchain="mingw" - mkexe_cmd_exp="flexlink -exe -chain ${flexdll_chain} ${flexlink_flags}" - mkexe_cmd="flexlink -exe -chain ${flexdll_chain} ${flexlink_flags}" - mkexe_cflags='' - mkexe_ldflags_prefix='-link ' - oc_exe_ldflags='-municode' - mkexe_extra_flags="$mkexe_ldflags_prefix$oc_exe_ldflags" - SO="dll" ;; #( - *,*-pc-windows) : - toolchain=msvc - ostype="Win32" - mkexe_cmd_exp="flexlink -exe -chain ${flexdll_chain} ${flexlink_flags}" - mkexe_cmd="flexlink -exe -chain ${flexdll_chain} ${flexlink_flags}" - mkexe_cflags='' - mkexe_ldflags_prefix='-link ' - mkexe_via_cc_ldflags_prefix='/link ' - oc_exe_ldflags='/ENTRY:wmainCRTStartup' - mkexe_extra_flags="$mkexe_ldflags_prefix$oc_exe_ldflags" - mkexedebugflag='' ;; #( - *,x86_64-*-linux*) : - printf "%s\n" "#define HAS_ARCH_CODE32 1" >>confdefs.h - ;; #( - xlc-*,powerpc-ibm-aix*) : - oc_ldflags='-brtl -bexpfull' - printf "%s\n" "#define HAS_ARCH_CODE32 1" >>confdefs.h - ;; #( - gcc-*,powerpc-*-linux*) : - oc_ldflags="-mbss-plt" ;; #( - *) : - ;; -esac - -## Program to use to install files - - # Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -printf %s "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test ${ac_cv_path_install+y} -then : - printf %s "(cached) " >&6 -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - # Account for fact that we put trailing slashes in our PATH walk. -case $as_dir in #(( - ./ | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test ${ac_cv_path_install+y}; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -printf "%s\n" "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -# Checks for libraries - -## Mathematical library -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing cos" >&5 -printf %s "checking for library containing cos... " >&6; } -if test ${ac_cv_search_cos+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char cos (); -int -main (void) -{ -return cos (); - ; - return 0; -} -_ACEOF -for ac_lib in '' m -do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO" -then : - ac_cv_search_cos=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext - if test ${ac_cv_search_cos+y} -then : - break -fi -done -if test ${ac_cv_search_cos+y} -then : - -else $as_nop - ac_cv_search_cos=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_cos" >&5 -printf "%s\n" "$ac_cv_search_cos" >&6; } -ac_res=$ac_cv_search_cos -if test "$ac_res" != no -then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - case $ac_cv_search_cos in #( - no) : - as_fn_error $? "Could not locate C math functions" "$LINENO" 5 ;; #( - 'none required') : - mathlib="" ;; #( - *) : - mathlib="$ac_cv_search_cos" ;; -esac -fi - - -# Checks for header files - -# Don't check for unistd.h on Windows -case $host in #( - *-*-mingw32*|*-pc-windows) : - ;; #( - *) : - for ac_header in unistd.h -do : - ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" -if test "x$ac_cv_header_unistd_h" = xyes -then : - printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h - printf "%s\n" "#define HAS_UNISTD 1" >>confdefs.h - -fi - -done ;; -esac - -ac_fn_c_check_header_compile "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default" -if test "x$ac_cv_header_math_h" = xyes -then : - -fi - -ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default" -if test "x$ac_cv_header_stdint_h" = xyes -then : - printf "%s\n" "#define HAS_STDINT_H 1" >>confdefs.h - -fi - -ac_fn_c_check_header_compile "$LINENO" "pthread_np.h" "ac_cv_header_pthread_np_h" "$ac_includes_default" -if test "x$ac_cv_header_pthread_np_h" = xyes -then : - printf "%s\n" "#define HAS_PTHREAD_NP_H 1" >>confdefs.h - -fi - -ac_fn_c_check_header_compile "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "#include -" -if test "x$ac_cv_header_dirent_h" = xyes -then : - printf "%s\n" "#define HAS_DIRENT 1" >>confdefs.h - -fi - - -ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "#include -" -if test "x$ac_cv_header_sys_select_h" = xyes -then : - printf "%s\n" "#define HAS_SYS_SELECT_H 1" >>confdefs.h - -fi - - -ac_fn_c_check_header_compile "$LINENO" "stdatomic.h" "ac_cv_header_stdatomic_h" "$ac_includes_default" -if test "x$ac_cv_header_stdatomic_h" = xyes -then : - printf "%s\n" "#define HAS_STDATOMIC_H 1" >>confdefs.h - -fi - - -ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_mman_h" = xyes -then : - printf "%s\n" "#define HAS_SYS_MMAN_H 1" >>confdefs.h - -fi - - -case $host in #( - *-*-linux*) : - ac_fn_c_check_header_compile "$LINENO" "linux/futex.h" "ac_cv_header_linux_futex_h" "$ac_includes_default" -if test "x$ac_cv_header_linux_futex_h" = xyes -then : - printf "%s\n" "#define HAS_LINUX_FUTEX_H 1" >>confdefs.h - -fi - ;; #( - *) : - ;; -esac - -# Checks for types - -## off_t -ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define off_t long int" >>confdefs.h - -fi - - -# Checks for structures - -# Checks for compiler characteristics - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -printf %s "checking size of int... " >&6; } -if test ${ac_cv_sizeof_int+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_int" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -printf "%s\n" "$ac_cv_sizeof_int" >&6; } - - - -printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -printf %s "checking size of long... " >&6; } -if test ${ac_cv_sizeof_long+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -printf "%s\n" "$ac_cv_sizeof_long" >&6; } - - - -printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long *" >&5 -printf %s "checking size of long *... " >&6; } -if test ${ac_cv_sizeof_long_p+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long *))" "ac_cv_sizeof_long_p" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_long_p" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_p=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_p" >&5 -printf "%s\n" "$ac_cv_sizeof_long_p" >&6; } - - - -printf "%s\n" "#define SIZEOF_LONG_P $ac_cv_sizeof_long_p" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -printf %s "checking size of short... " >&6; } -if test ${ac_cv_sizeof_short+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_short" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -printf "%s\n" "$ac_cv_sizeof_short" >&6; } - - - -printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -printf %s "checking size of long long... " >&6; } -if test ${ac_cv_sizeof_long_long+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default" -then : - -else $as_nop - if test "$ac_cv_type_long_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_long=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -printf "%s\n" "$ac_cv_sizeof_long_long" >&6; } - - - -printf "%s\n" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h - - - -if test "x$ac_cv_sizeof_long_p" = "x4" -then : - bits=32; arch64=false -elif test "x$ac_cv_sizeof_long_p" = "x8" -then : - bits=64; arch64=true - printf "%s\n" "#define ARCH_SIXTYFOUR 1" >>confdefs.h - -else $as_nop - as_fn_error $? "Neither 32 nor 64 bits architecture." "$LINENO" 5 - -fi - -if test "x$ac_cv_sizeof_int" != "x4" && test "x$ac_cv_sizeof_long" != "x4" \ - && test "x$ac_cv_sizeof_short" != "x4" -then : - as_fn_error $? "Sorry, we can't find a 32-bit integer type." "$LINENO" 5 - -fi - -if test "x$ac_cv_sizeof_long" != "x8" && - test "x$ac_cv_sizeof_long_long" != "x8" -then : - as_fn_error $? "Sorry, we can't find a 64-bit integer type." "$LINENO" 5 - -fi - -printf "%s\n" "#define SIZEOF_PTR $ac_cv_sizeof_long_p" >>confdefs.h - -printf "%s\n" "#define SIZEOF_LONGLONG $ac_cv_sizeof_long_long" >>confdefs.h - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Target is a $bits bits architecture" >&5 -printf "%s\n" "$as_me: Target is a $bits bits architecture" >&6;} - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -printf %s "checking whether byte ordering is bigendian... " >&6; } -if test ${ac_cv_c_bigendian+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main (void) -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main (void) -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_c_bigendian=yes -else $as_nop - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main (void) -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_c_bigendian=yes -else $as_nop - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes -then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -unsigned short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - unsigned short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - unsigned short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - unsigned short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main (void) -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main (void) -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - ac_cv_c_bigendian=no -else $as_nop - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -printf "%s\n" "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - - printf "%s\n" "#define ARCH_BIG_ENDIAN 1" >>confdefs.h - - endianness="be" - ;; #( - no) - endianness="le" ;; #( - universal) - as_fn_error $? "unable to handle universal endianness" "$LINENO" 5 - - ;; #( - *) - as_fn_error $? "could not determine endianness." "$LINENO" 5 ;; - esac - - -# The cast to long int works around a bug in the HP C Compiler, -# see AC_CHECK_SIZEOF for more information. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking alignment of double" >&5 -printf %s "checking alignment of double... " >&6; } -if test ${ac_cv_alignof_double+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_double" "$ac_includes_default -typedef struct { char x; double y; } ac__type_alignof_;" -then : - -else $as_nop - if test "$ac_cv_type_double" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute alignment of double -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_alignof_double=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_double" >&5 -printf "%s\n" "$ac_cv_alignof_double" >&6; } - - - -printf "%s\n" "#define ALIGNOF_DOUBLE $ac_cv_alignof_double" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler, -# see AC_CHECK_SIZEOF for more information. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking alignment of long" >&5 -printf %s "checking alignment of long... " >&6; } -if test ${ac_cv_alignof_long+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_long" "$ac_includes_default -typedef struct { char x; long y; } ac__type_alignof_;" -then : - -else $as_nop - if test "$ac_cv_type_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute alignment of long -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_alignof_long=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_long" >&5 -printf "%s\n" "$ac_cv_alignof_long" >&6; } - - - -printf "%s\n" "#define ALIGNOF_LONG $ac_cv_alignof_long" >>confdefs.h - - -# The cast to long int works around a bug in the HP C Compiler, -# see AC_CHECK_SIZEOF for more information. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking alignment of long long" >&5 -printf %s "checking alignment of long long... " >&6; } -if test ${ac_cv_alignof_long_long+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_long_long" "$ac_includes_default -typedef struct { char x; long long y; } ac__type_alignof_;" -then : - -else $as_nop - if test "$ac_cv_type_long_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute alignment of long long -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_alignof_long_long=0 - fi -fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_long_long" >&5 -printf "%s\n" "$ac_cv_alignof_long_long" >&6; } - - - -printf "%s\n" "#define ALIGNOF_LONG_LONG $ac_cv_alignof_long_long" >>confdefs.h - - - -if ! $arch64 -then : - case $target_cpu in #( - i686) : - ;; #( - *) : - if test "$ac_cv_alignof_double" -gt 4 -then : - printf "%s\n" "#define ARCH_ALIGN_DOUBLE 1" >>confdefs.h - -fi - if test "x$ac_cv_sizeof_long" = "x8" && - test "$ac_cv_alignof_long" -gt 4 -then : - printf "%s\n" "#define ARCH_ALIGN_INT64 1" >>confdefs.h - -else $as_nop - if test "x$ac_cv_sizeof_long_long" = "x8" && - test "$ac_cv_alignof_long_long" -gt 4 -then : - printf "%s\n" "#define ARCH_ALIGN_INT64 1" >>confdefs.h - -fi -fi - ;; -esac -fi - -# Atomics library - -if ! $arch64 -then : - case $ocaml_cc_vendor in #( - gcc-*) : - cclibs="$cclibs -latomic" ;; #( - *) : - ;; -esac -fi - -# Support for C11 atomic types - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler supports _Atomic types" >&5 -printf %s "checking whether the C compiler supports _Atomic types... " >&6; } - saved_LIBS="$LIBS" - LIBS="$LIBS $cclibs" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - int main(void) - { - _Atomic int64_t n; - int m; - int * _Atomic p = &m; - atomic_store_explicit(&n, 123, memory_order_release); - * atomic_exchange(&p, 0) = 45; - return atomic_load_explicit(&n, memory_order_acquire); - } - -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - cc_supports_atomic=true - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - cc_supports_atomic=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$saved_LIBS" - -if ! $cc_supports_atomic -then : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C11 atomic support is required, use another C compiler -See \`config.log' for more details" "$LINENO" 5; } -fi - -# Full support for thread local storage -# macOS and MinGW-w64 have problems with thread local storage accessed from DLLs - -case $host in #( - *-apple-darwin*|*-mingw32*) : - ;; #( - *) : - printf "%s\n" "#define HAS_FULL_THREAD_VARIABLES 1" >>confdefs.h - - ;; -esac - -# Shared library support - -sharedlib_cflags='' -mkdll='shared-libs-not-available' -mkdll_exp='shared-libs-not-available' -rpath='' -mksharedlibrpath='' -natdynlinkopts="" - -if test x"$enable_shared" != "xno" -then : - mkdll='' - case $host in #( - x86_64-apple-darwin*) : - mkdll_flags=\ -'-shared -undefined dynamic_lookup -Wl,-no_compact_unwind -Wl,-w' - supports_shared_libraries=true ;; #( - aarch64-apple-darwin*|arm64-apple-darwin*) : - mkdll_flags='-shared -undefined dynamic_lookup -Wl,-w' - supports_shared_libraries=true ;; #( - *-*-mingw32*|*-pc-windows|*-*-cygwin*) : - mkdll_flags="-chain ${flexdll_chain} ${flexlink_flags}" - mkdll_exp="flexlink ${mkdll_flags}" - mkdll="flexlink ${mkdll_flags}" - mkmaindll_exp="flexlink -maindll ${mkdll_flags}" - mkmaindll="flexlink -maindll ${mkdll_flags}" ;; #( - powerpc-ibm-aix*) : - case $ocaml_cc_vendor in #( - xlc*) : - mkdll_flags='-qmkshrobj -G' - supports_shared_libraries=true ;; #( - *) : - ;; -esac ;; #( - *-*-solaris*) : - sharedlib_cflags="-fPIC" - mkdll_flags='-shared' - rpath="-Wl,-rpath," - mksharedlibrpath="-Wl,-rpath," - supports_shared_libraries=true ;; #( - *-*-linux*|*-*-freebsd[3-9]*|*-*-freebsd[1-9][0-9]*\ - |*-*-openbsd*|*-*-netbsd*|*-*-dragonfly*|*-*-gnu*|*-*-haiku*) : - sharedlib_cflags="-fPIC" - case $ocaml_cc_vendor,$host in #( - gcc-*,powerpc-*-linux*) : - mkdll_flags='-shared -mbss-plt' ;; #( - *,i[3456]86-*) : - # Disable DT_TEXTREL warnings on Linux and BSD i386 - # See https://github.com/ocaml/ocaml/issues/9800 - mkdll_flags='-shared -Wl,-z,notext' ;; #( - *) : - mkdll_flags='-shared' ;; -esac - case $host in #( - *-*-openbsd7.[3-9]|*-*-openbsd[89].*) : - mkdll_flags="${mkdll_flags} -Wl,--no-execute-only" ;; #( - *) : - ;; -esac - oc_ldflags="$oc_ldflags -Wl,-E" - rpath="-Wl,-rpath," - mksharedlibrpath="-Wl,-rpath," - natdynlinkopts="-Wl,-E" - supports_shared_libraries=true ;; #( - *) : - mkdll='shared-libs-not-available' ;; -esac - if test -z "$mkdll" -then : - mkdll="\$(CC) $mkdll_flags" - mkdll_exp="$CC $mkdll_flags" -fi -fi - -if test -z "$mkmaindll" -then : - mkmaindll_exp="$mkdll_exp" - mkmaindll="$mkdll" -fi - -# Make sure code sections in OCaml-generated executables are readable -# (required for marshaling of function closures) - -case $host in #( - *-*-openbsd7.[3-9]|*-*-openbsd[89].*) : - oc_ldflags="$oc_ldflags -Wl,--no-execute-only" - natdynlinkopts="$natdynlinkopts -Wl,--no-execute-only" ;; #( - *) : - ;; -esac - -# Disable control flow integrity - -case $host in #( - *-*-openbsd7.[4-9]|*-*-openbsd[89].*) : - oc_ldflags="$oc_ldflags -Wl,-z,nobtcfi" - natdynlinkopts="$natdynlinkopts -Wl,-z,nobtcfi" ;; #( - *) : - ;; -esac - - -# Configure native dynlink - -natdynlink=false - -if test x"$supports_shared_libraries" = 'xtrue' -then : - case "$host" in #( - *-*-cygwin*) : - natdynlink=true ;; #( - *-*-mingw32*) : - natdynlink=true ;; #( - *-pc-windows) : - natdynlink=true ;; #( - i[3456]86-*-linux*) : - natdynlink=true ;; #( - i[3456]86-*-gnu*) : - natdynlink=true ;; #( - x86_64-*-linux*) : - natdynlink=true ;; #( - arm64-*-darwin*) : - natdynlink=true ;; #( - aarch64-*-darwin*) : - natdynlink=true ;; #( - x86_64-*-darwin*) : - natdynlink=true ;; #( - s390x*-*-linux*) : - natdynlink=true ;; #( - powerpc*-*-linux*) : - natdynlink=true ;; #( - x86_64-*-solaris*) : - natdynlink=true ;; #( - i686-*-kfreebsd*) : - natdynlink=true ;; #( - x86_64-*-kfreebsd*) : - natdynlink=true ;; #( - x86_64-*-dragonfly*) : - natdynlink=true ;; #( - i[3456]86-*-freebsd*) : - natdynlink=true ;; #( - x86_64-*-freebsd*) : - natdynlink=true ;; #( - i[3456]86-*-openbsd*) : - natdynlink=true ;; #( - x86_64-*-openbsd*) : - natdynlink=true ;; #( - i[3456]86-*-netbsd*) : - natdynlink=true ;; #( - x86_64-*-netbsd*) : - natdynlink=true ;; #( - i386-*-gnu0.3) : - natdynlink=true ;; #( - i[3456]86-*-haiku*) : - natdynlink=true ;; #( - arm*-*-linux*) : - natdynlink=true ;; #( - arm*-*-freebsd*) : - natdynlink=true ;; #( - earm*-*-netbsd*) : - natdynlink=true ;; #( - aarch64-*-linux*) : - natdynlink=true ;; #( - aarch64-*-freebsd*) : - natdynlink=true ;; #( - aarch64-*-openbsd*) : - natdynlink=true ;; #( - aarch64-*-netbsd*) : - natdynlink=true ;; #( - riscv*-*-linux*) : - natdynlink=true ;; #( - *) : - ;; -esac -fi - -case $enable_native_toplevel,$natdynlink in #( - yes,false) : - as_fn_error $? "The native toplevel requires native dynlink support" "$LINENO" 5 ;; #( - yes,*) : - install_ocamlnat=true ;; #( - *) : - install_ocamlnat=false ;; -esac - -# Try to work around the Skylake/Kaby Lake processor bug. -case "$ocaml_cc_vendor,$host" in #( - *gcc*,x86_64-*|*gcc*,i686-*) : - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler supports -fno-tree-vrp" >&5 -printf %s "checking whether the C compiler supports -fno-tree-vrp... " >&6; } - saved_CFLAGS="$CFLAGS" - CFLAGS="-Werror -fno-tree-vrp $CFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main() { return 0; } -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - cc_has_fno_tree_vrp=true - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - cc_has_fno_tree_vrp=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$saved_CFLAGS" - - if $cc_has_fno_tree_vrp -then : - internal_cflags="$internal_cflags -fno-tree-vrp" -fi ;; #( - *) : - ;; -esac - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler supports __attribute__((aligned(n)))" >&5 -printf %s "checking whether the C compiler supports __attribute__((aligned(n)))... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -typedef struct {__attribute__((aligned(8))) int t;} t; -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - printf "%s\n" "#define SUPPORTS_ALIGNED_ATTRIBUTE 1" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -## Check whether __attribute__((optimize("tree-vectorize")))) is supported - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler supports __attribute__((optimize(\"tree-vectorize\")))" >&5 -printf %s "checking whether the C compiler supports __attribute__((optimize(\"tree-vectorize\")))... " >&6; } - saved_CFLAGS="$CFLAGS" - CFLAGS="-Werror $CFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - __attribute__((optimize("tree-vectorize"))) void f(void){} - int main() { f(); return 0; } - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - printf "%s\n" "#define SUPPORTS_TREE_VECTORIZE 1" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$saved_CFLAGS" - - -# Configure the native-code compiler - -arch=none -model=default -system=unknown - -# In all the cases below, if $arch is set so then so too must $system, -# preserving $arch = 'none' <=> $system = 'unknown' -has_native_backend=no -native_ldflags="" -case $host in #( - i[3456]86-*-linux*) : - arch=i386; system=linux ;; #( - i[3456]86-*-freebsd*) : - arch=i386; system=freebsd ;; #( - i[3456]86-*-netbsd*) : - arch=i386; system=netbsd ;; #( - i[3456]86-*-openbsd*) : - arch=i386; system=openbsd ;; #( - i[3456]86-*-haiku*) : - arch=i386; system=beos ;; #( - i[3456]86-*-cygwin) : - arch=i386; system=cygwin ;; #( - i[3456]86-*-gnu*) : - arch=i386; system=gnu ;; #( - i[3456]86-*-mingw32*) : - arch=i386; system=mingw ;; #( - i686-pc-windows) : - arch=i386; system=win32 ;; #( - x86_64-pc-windows) : - arch=amd64; system=win64 ;; #( - powerpc64le*-*-linux*) : - has_native_backend=yes; arch=power; model=ppc64le; system=linux ;; #( - powerpc64*-*-linux-musl*) : - has_native_backend=yes; arch=power; model=ppc64; system=linux ;; #( - s390x*-*-linux*) : - has_native_backend=yes; arch=s390x; model=z10; system=linux ;; #( - # expected to match "gnueabihf" as well as "musleabihf" - armv6*-*-linux-*eabihf) : - arch=arm; model=armv6; system=linux ;; #( - armv7*-*-linux-*eabihf) : - arch=arm; model=armv7; system=linux ;; #( - armv8*-*-linux-*eabihf) : - arch=arm; model=armv8; system=linux ;; #( - armv8*-*-linux-*eabi) : - arch=arm; model=armv8; system=linux ;; #( - armv7*-*-linux-*eabi) : - arch=arm; model=armv7; system=linux ;; #( - armv6t2*-*-linux-*eabi) : - arch=arm; model=armv6t2; system=linux ;; #( - armv6*-*-linux-*eabi) : - arch=arm; model=armv6; system=linux ;; #( - armv6*-*-freebsd*) : - arch=arm; model=armv6; system=freebsd ;; #( - earmv6*-*-netbsd*) : - arch=arm; model=armv6; system=netbsd ;; #( - earmv7*-*-netbsd*) : - arch=arm; model=armv7; system=netbsd ;; #( - armv5te*-*-linux-*eabi) : - arch=arm; model=armv5te; system=linux ;; #( - armv5*-*-linux-*eabi) : - arch=arm; model=armv5; system=linux ;; #( - arm*-*-linux-*eabihf) : - arch=arm; system=linux ;; #( - arm*-*-linux-*eabi) : - arch=arm; system=linux ;; #( - arm*-*-openbsd*) : - arch=arm; system=openbsd ;; #( - zaurus*-*-openbsd*) : - arch=arm; system=openbsd ;; #( - x86_64-*-linux*) : - has_native_backend=yes; arch=amd64; system=linux ;; #( - x86_64-*-gnu*) : - arch=amd64; system=gnu ;; #( - x86_64-*-dragonfly*) : - arch=amd64; system=dragonfly ;; #( - x86_64-*-solaris*) : - has_native_backend=yes; arch=amd64; system=solaris ;; #( - x86_64-*-freebsd*) : - has_native_backend=yes; arch=amd64; system=freebsd ;; #( - x86_64-*-netbsd*) : - has_native_backend=yes; arch=amd64; system=netbsd ;; #( - x86_64-*-openbsd*) : - has_native_backend=yes; arch=amd64; system=openbsd ;; #( - x86_64-*-haiku*) : - arch=amd64; system=beos ;; #( - arm64-*-darwin*) : - has_native_backend=yes; arch=arm64; system=macosx ;; #( - aarch64-*-darwin*) : - has_native_backend=yes; arch=arm64; system=macosx ;; #( - x86_64-*-darwin*) : - has_native_backend=yes; arch=amd64; system=macosx ;; #( - x86_64-*-mingw32*) : - has_native_backend=yes; arch=amd64; system=mingw64 ;; #( - aarch64-*-linux*) : - if $arch64 -then : - has_native_backend=yes; arch=arm64; system=linux -else $as_nop - arch=arm; model=armv8; system=linux -fi ;; #( - aarch64-*-freebsd*) : - has_native_backend=yes; arch=arm64; system=freebsd ;; #( - aarch64-*-openbsd*) : - has_native_backend=yes; arch=arm64; system=openbsd ;; #( - aarch64-*-netbsd*) : - has_native_backend=yes; arch=arm64; system=netbsd ;; #( - x86_64-*-cygwin*) : - has_native_backend=yes; arch=amd64; system=cygwin ;; #( - riscv64-*-linux*) : - has_native_backend=yes; arch=riscv; model=riscv64; system=linux - ;; #( - *) : - ;; -esac - -case $arch in #( - amd64) : - arch_specific_SOURCES='$(intel_SOURCES)' ;; #( - *) : - arch_specific_SOURCES='' ;; -esac - -# Disabling of stack checks is only supported on amd64. -if test x"$enable_stack_checks" = xyes -then : - printf "%s\n" "#define STACK_CHECKS_ENABLED 1" >>confdefs.h - -else $as_nop - if test x"$arch" != xamd64 -then : - enable_stack_checks=yes - printf "%s\n" "#define STACK_CHECKS_ENABLED 1" >>confdefs.h - -fi -fi - -native_cflags='' -native_cppflags="-DTARGET_${arch} -DMODEL_${model} -DSYS_${system}" - -case $ccomptype in #( - msvc) : - runtime_asm_objects=${arch}nt.${OBJEXT} ;; #( - *) : - runtime_asm_objects=${arch}.${OBJEXT} ;; -esac - -case $enable_native_compiler,$has_native_backend in #( - no,*) : - native_compiler=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: the native compiler is disabled" >&5 -printf "%s\n" "$as_me: the native compiler is disabled" >&6;} ;; #( - yes,no) : - as_fn_error 69 "the native compiler is not supported on this platform" "$LINENO" 5 ;; #( - *,no) : - native_compiler=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: the native compiler is not supported on this platform" >&5 -printf "%s\n" "$as_me: the native compiler is not supported on this platform" >&6;} ;; #( - *) : - native_compiler=true ;; -esac - -if $native_compiler -then : - default_build_target=world.opt -else $as_nop - default_build_target=world -fi - -if ! $native_compiler -then : - natdynlink=false -fi - -if $natdynlink -then : - cmxs="cmxs" -else $as_nop - cmxs="cmx" -fi -if $natdynlink -then : - natdynlink_archive="dynlink.cmxa" -else $as_nop - natdynlink_archive="" -fi - -printf "%s\n" "#define OCAML_OS_TYPE \"$ostype\"" >>confdefs.h - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args. -set dummy ${ac_tool_prefix}ld; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_DIRECT_LD+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$DIRECT_LD"; then - ac_cv_prog_DIRECT_LD="$DIRECT_LD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_DIRECT_LD="${ac_tool_prefix}ld" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DIRECT_LD=$ac_cv_prog_DIRECT_LD -if test -n "$DIRECT_LD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DIRECT_LD" >&5 -printf "%s\n" "$DIRECT_LD" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DIRECT_LD"; then - ac_ct_DIRECT_LD=$DIRECT_LD - # Extract the first word of "ld", so it can be a program name with args. -set dummy ld; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ac_ct_DIRECT_LD+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DIRECT_LD"; then - ac_cv_prog_ac_ct_DIRECT_LD="$ac_ct_DIRECT_LD" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_DIRECT_LD="ld" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_DIRECT_LD=$ac_cv_prog_ac_ct_DIRECT_LD -if test -n "$ac_ct_DIRECT_LD"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DIRECT_LD" >&5 -printf "%s\n" "$ac_ct_DIRECT_LD" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_ct_DIRECT_LD" = x; then - DIRECT_LD="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - DIRECT_LD=$ac_ct_DIRECT_LD - fi -else - DIRECT_LD="$ac_cv_prog_DIRECT_LD" -fi - -if test -z "$PARTIALLD" -then : - case "$host,$ocaml_cc_vendor" in #( - x86_64-*-darwin*,gcc-*) : - PACKLD_FLAGS=' -arch x86_64' ;; #( - powerpc64le*-*-linux*,gcc-*) : - PACKLD_FLAGS=' -m elf64lppc' ;; #( - powerpc*-*-linux*,gcc-*) : - if $arch64 -then : - PACKLD_FLAGS=' -m elf64ppc' -else $as_nop - PACKLD_FLAGS=' -m elf32ppclinux' -fi ;; #( - *) : - PACKLD_FLAGS='' ;; -esac - # The string for PACKLD must be capable of being concatenated with the - # output filename. Don't assume that all C compilers understand GNU -ofoo - # form, so ensure that the definition includes a space at the end (which is - # achieved using the $(EMPTY) expansion trick in Makefile.config.in). - case "$ocaml_cc_vendor" in #( - msvc-*) : - # For the Microsoft C compiler there must be no space at the end of the - # string. - PACKLD="link -lib -nologo $machine -out:" ;; #( - *) : - PACKLD="$DIRECT_LD -r$PACKLD_FLAGS -o " ;; -esac -else $as_nop - PACKLD="$PARTIALLD -o " -fi - -# Disable PIE at link time when ocamlopt does not produce position-independent -# code and the system produces PIE executables by default and demands PIC -# object files to do so. -# This issue does not affect amd64 (x86_64), aarch64 (arm64) -# and s390x (Z systems), since ocamlopt produces PIC object files by default. -# Currently the problem is known for Alpine Linux on other platforms -# (issue #7562), and probably affects all Linux distributions that use -# the musl standard library and dynamic loader. -# Other systems have PIE by default but can cope with non-PIC object files, -# e.g. Ubuntu >= 17.10 for i386, which uses the glibc dynamic loader. - -case $arch in #( - amd64|arm64|s390x|none) : - # ocamlopt generates PIC code or doesn't generate code at all - ;; #( - *) : - case $host in #( - # expected to match "*-linux-musl" as well as "*-linux-musleabi*" - *-linux-musl*) : - # Alpine and other musl-based Linux distributions - common_cflags="-no-pie $common_cflags" ;; #( - *) : - ;; -esac ;; -esac - -# The major GC performs better with this flag on Intel processors -# This is a workaround for an Intel CPU bug: -# https://www.intel.co.uk/content/www/uk/en/support/articles/000055650/processors.html - -intel_jcc_bug_cflags='' -case $arch in #( - amd64) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wa,-mbranches-within-32B-boundaries" >&5 -printf %s "checking whether C compiler accepts -Wa,-mbranches-within-32B-boundaries... " >&6; } -if test ${ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -Wa,-mbranches-within-32B-boundaries" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries=yes -else $as_nop - ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries" >&5 -printf "%s\n" "$ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries" >&6; } -if test "x$ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries" = xyes -then : - intel_jcc_bug_cflags=-Wa,-mbranches-within-32B-boundaries -else $as_nop - : -fi - ;; #( - *) : - ;; -esac - -# The major GC performs better with this flag on Intel processors -# This is a workaround for an Intel CPU bug: -# https://www.intel.co.uk/content/www/uk/en/support/articles/000055650/processors.html - -intel_jcc_bug_cflags='' -case $arch in #( - amd64) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wa,-mbranches-within-32B-boundaries" >&5 -printf %s "checking whether C compiler accepts -Wa,-mbranches-within-32B-boundaries... " >&6; } -if test ${ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -Wa,-mbranches-within-32B-boundaries" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries=yes -else $as_nop - ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries" >&5 -printf "%s\n" "$ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries" >&6; } -if test "x$ax_cv_check_cflags___Wa__mbranches_within_32B_boundaries" = xyes -then : - intel_jcc_bug_cflags=-Wa,-mbranches-within-32B-boundaries -else $as_nop - : -fi - ;; #( - *) : - ;; -esac - -# Assembler - -if test -n "$target_alias" -then : - toolpref="${target_alias}-" - as_target="$target" - as_cpu="$target_cpu" -else $as_nop - if test -n "$host_alias" -then : - toolpref="${host_alias}-" - as_target="$host" - as_cpu="$host_cpu" -else $as_nop - toolpref="" - as_target="$build" - as_cpu="$build_cpu" -fi -fi - -# Finding the assembler -# The OCaml build system distinguishes two different assemblers: -# 1. AS, used to assemble the code generated by the ocamlopt native compiler -# 2. ASPP, to assemble other assembly files that may require preprocessing -# In general, "$CC -c" is used as a default value for both AS and ASPP. -# On a few platforms (Windows) both values are overridden. -# On other platforms, (Linux with GCC) the assembler AS is called directly -# to avoiding forking a C compiler process for each compilation by ocamlopt. -# Both AS and ASPP can be overridden by the user. - -default_as="$CC -c" -default_aspp="$CC -c" - -case $as_target,$ocaml_cc_vendor in #( - *-*-linux*,gcc-*) : - case $as_cpu in #( - x86_64|arm*|aarch64*|i[3-6]86|riscv*) : - default_as="${toolpref}as" ;; #( - *) : - ;; -esac ;; #( - i686-pc-windows,*) : - default_as="ml -nologo -coff -Cp -c -Fo" - default_aspp="$default_as" ;; #( - x86_64-pc-windows,*) : - default_as="ml64 -nologo -Cp -c -Fo" - default_aspp="$default_as" ;; #( - *-*-darwin*,clang-*) : - default_as="$default_as -Wno-trigraphs" - default_aspp="$default_as" ;; #( - *) : - ;; -esac - -if test "$with_pic" -then : - fpic=true - printf "%s\n" "#define CAML_WITH_FPIC 1" >>confdefs.h - - internal_cflags="$internal_cflags $sharedlib_cflags" - default_aspp="$default_aspp $sharedlib_cflags" -else $as_nop - fpic=false -fi - -if test -z "$AS" -then : - AS="$default_as" -fi - -if test -z "$ASPP" -then : - ASPP="$default_aspp" -fi - -# Utilities -# Extract the first word of "rlwrap", so it can be a program name with args. -set dummy rlwrap; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_rlwrap+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$rlwrap"; then - ac_cv_prog_rlwrap="$rlwrap" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_rlwrap="rlwrap" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -rlwrap=$ac_cv_prog_rlwrap -if test -n "$rlwrap"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $rlwrap" >&5 -printf "%s\n" "$rlwrap" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -case $rlwrap,$system in #( - rlwrap,win*|rlwrap,mingw*) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: rlwrap doesn't work with native win32 - disabling" >&5 -printf "%s\n" "$as_me: rlwrap doesn't work with native win32 - disabling" >&6;} - rlwrap='' ;; #( - *) : - ;; -esac - -# Checks for library functions - -## Check the semantics of signal handlers - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking semantics of signal handlers" >&5 -printf "%s\n" "$as_me: checking semantics of signal handlers" >&6;} - ac_fn_c_check_func "$LINENO" "sigaction" "ac_cv_func_sigaction" -if test "x$ac_cv_func_sigaction" = xyes -then : - has_sigaction=true -else $as_nop - has_sigaction=false -fi - - ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask" -if test "x$ac_cv_func_sigprocmask" = xyes -then : - has_sigprocmask=true -else $as_nop - has_sigprocmask=false -fi - - if $has_sigaction && $has_sigprocmask -then : - printf "%s\n" "#define POSIX_SIGNALS 1" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: POSIX signal handling found." >&5 -printf "%s\n" "$as_me: POSIX signal handling found." >&6;} -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: assuming signals have the System V semantics." >&5 -printf "%s\n" "$as_me: assuming signals have the System V semantics." >&6;} - - -fi - - -## Check for C99 float ops - -has_c99_float_ops=true - - for ac_func in expm1 log1p hypot fma exp2 log2 cbrt acosh asinh atanh erf erfc trunc round copysign -do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes" -then : - cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else $as_nop - has_c99_float_ops=false -fi - -done - -if $has_c99_float_ops -then : - printf "%s\n" "#define HAS_C99_FLOAT_OPS 1" >>confdefs.h - - # Check whether round works (known bug in mingw-w64) - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether round works" >&5 -printf %s "checking whether round works... " >&6; } - - old_cross_compiling="$cross_compiling" - if test "x$host_runnable" = 'xtrue' -then : - cross_compiling='no' -fi - if test "$cross_compiling" = yes -then : - case $target in #( - x86_64-w64-mingw32*) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cross-compiling; assume not" >&5 -printf "%s\n" "cross-compiling; assume not" >&6; } ;; #( - *) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cross-compiling; assume yes" >&5 -printf "%s\n" "cross-compiling; assume yes" >&6; } - printf "%s\n" "#define HAS_WORKING_ROUND 1" >>confdefs.h - ;; -esac -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -int main (void) { - static volatile double d = 0.49999999999999994449; - return (fpclassify(round(d)) != FP_ZERO); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - printf "%s\n" "#define HAS_WORKING_ROUND 1" >>confdefs.h - -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - case $enable_imprecise_c99_float_ops,$target in #( - no,*) : - hard_error=true ;; #( - yes,*) : - hard_error=false ;; #( - *,x86_64-w64-mingw32*) : - hard_error=false ;; #( - *) : - hard_error=true ;; -esac - if test x"$hard_error" = "xtrue" -then : - as_fn_error $? "round does not work, enable emulation with --enable-imprecise-c99-float-ops" "$LINENO" 5 -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: round does not work; emulation enabled" >&5 -printf "%s\n" "$as_me: WARNING: round does not work; emulation enabled" >&2;} -fi -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - cross_compiling="$old_cross_compiling" - - - # Check whether fma works (regressed in mingw-w64 8.0.0; present, but broken, - # in VS2013-2017 and present but unimplemented in Cygwin64) - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fma works" >&5 -printf %s "checking whether fma works... " >&6; } - - old_cross_compiling="$cross_compiling" - if test "x$host_runnable" = 'xtrue' -then : - cross_compiling='no' -fi - if test "$cross_compiling" = yes -then : - case $target in #( - x86_64-w64-mingw32*|x86_64-*-cygwin*) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cross-compiling; assume not" >&5 -printf "%s\n" "cross-compiling; assume not" >&6; } ;; #( - *) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cross-compiling; assume yes" >&5 -printf "%s\n" "cross-compiling; assume yes" >&6; } - printf "%s\n" "#define HAS_WORKING_FMA 1" >>confdefs.h - ;; -esac -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -int main (void) { - /* Tests 264-266 from testsuite/tests/fma/fma.ml. These tests trigger the - broken implementations of Cygwin64, mingw-w64 (x86_64) and VS2013-2017. - The static volatile variables aim to thwart GCC's constant folding. */ - static volatile double x, y, z; - volatile double t264, t265, t266; - x = 0x3.bd5b7dde5fddap-496; - y = 0x3.bd5b7dde5fddap-496; - z = -0xd.fc352bc352bap-992; - t264 = fma(x, y, z); - x = 0x3.bd5b7dde5fddap-504; - y = 0x3.bd5b7dde5fddap-504; - z = -0xd.fc352bc352bap-1008; - t265 = fma(x, y, z); - x = 0x8p-540; - y = 0x4p-540; - z = 0x4p-1076; - t266 = fma(x, y, z); - return (!(t264 == 0x1.0989687cp-1044 || - t264 == 0x0.000004277ca1fp-1022 || /* Acceptable emulated values */ - t264 == 0x0.00000428p-1022) - || !(t265 == 0x1.0988p-1060 || - t265 == 0x0.0000000004278p-1022 || /* Acceptable emulated values */ - t265 == 0x0.000000000428p-1022) - || !(t266 == 0x8p-1076)); -} - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - printf "%s\n" "#define HAS_WORKING_FMA 1" >>confdefs.h - -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - case $enable_imprecise_c99_float_ops,$target in #( - no,*) : - hard_error=true ;; #( - yes,*) : - hard_error=false ;; #( - *,x86_64-w64-mingw32*|*,x86_64-*-cygwin*) : - hard_error=false ;; #( - *) : - case $ocaml_cc_vendor in #( - msvc-*) : - if test "${ocaml_cc_vendor#msvc-}" -lt 1920 -then : - hard_error=false -else $as_nop - hard_error=true -fi ;; #( - *) : - hard_error=true ;; -esac ;; -esac - if test x"$hard_error" = "xtrue" -then : - as_fn_error $? "fma does not work, enable emulation with --enable-imprecise-c99-float-ops" "$LINENO" 5 -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: fma does not work; emulation enabled" >&5 -printf "%s\n" "$as_me: WARNING: fma does not work; emulation enabled" >&2;} -fi -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - cross_compiling="$old_cross_compiling" - - -else $as_nop - if test x"$enable_imprecise_c99_float_ops" != "xyes" -then : - case $enable_imprecise_c99_float_ops,$ocaml_cc_vendor in #( - no,*) : - hard_error=true ;; #( - ,msvc-*) : - if test "${ocaml_cc_vendor#msvc-}" -lt 1800 -then : - hard_error=false -else $as_nop - hard_error=true -fi ;; #( - *) : - hard_error=true ;; -esac - if test x"$hard_error" = 'xtrue' -then : - as_fn_error $? "C99 float ops unavailable, enable replacements with --enable-imprecise-c99-float-ops" "$LINENO" 5 -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: C99 float ops unavailable, replacements enabled (ancient Visual Studio)" >&5 -printf "%s\n" "$as_me: WARNING: C99 float ops unavailable, replacements enabled (ancient Visual Studio)" >&2;} -fi -fi -fi - -## getentropy -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 -printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } -if test ${ac_cv_c_undeclared_builtin_options+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS=$CFLAGS - ac_cv_c_undeclared_builtin_options='cannot detect' - for ac_arg in '' -fno-builtin; do - CFLAGS="$ac_save_CFLAGS $ac_arg" - # This test program should *not* compile successfully. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ -(void) strchr; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - -else $as_nop - # This test program should compile successfully. - # No library function is consistently available on - # freestanding implementations, so test against a dummy - # declaration. Include always-available headers on the - # off chance that they somehow elicit warnings. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include -extern void ac_decl (int, char *); - -int -main (void) -{ -(void) ac_decl (0, (char *) 0); - (void) ac_decl; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - if test x"$ac_arg" = x -then : - ac_cv_c_undeclared_builtin_options='none needed' -else $as_nop - ac_cv_c_undeclared_builtin_options=$ac_arg -fi - break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - done - CFLAGS=$ac_save_CFLAGS - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 -printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } - case $ac_cv_c_undeclared_builtin_options in #( - 'cannot detect') : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot make $CC report undeclared builtins -See \`config.log' for more details" "$LINENO" 5; } ;; #( - 'none needed') : - ac_c_undeclared_builtin_options='' ;; #( - *) : - ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; -esac - -ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" -if test "x$ac_cv_header_unistd_h" = xyes -then : - ac_fn_check_decl "$LINENO" "getentropy" "ac_cv_have_decl_getentropy" "#include -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_getentropy" = xyes -then : - printf "%s\n" "#define HAS_GETENTROPY 1" >>confdefs.h - -fi -fi - - -## getrusage -ac_fn_c_check_func "$LINENO" "getrusage" "ac_cv_func_getrusage" -if test "x$ac_cv_func_getrusage" = xyes -then : - printf "%s\n" "#define HAS_GETRUSAGE 1" >>confdefs.h - -fi - - -## times -ac_fn_c_check_func "$LINENO" "times" "ac_cv_func_times" -if test "x$ac_cv_func_times" = xyes -then : - printf "%s\n" "#define HAS_TIMES 1" >>confdefs.h - -fi - - -## secure_getenv and __secure_getenv - -saved_CPPFLAGS="$CPPFLAGS" -CPPFLAGS="-D_GNU_SOURCE $CPPFLAGS" - -ac_fn_c_check_func "$LINENO" "secure_getenv" "ac_cv_func_secure_getenv" -if test "x$ac_cv_func_secure_getenv" = xyes -then : - printf "%s\n" "#define HAS_SECURE_GETENV 1" >>confdefs.h - -else $as_nop - ac_fn_c_check_func "$LINENO" "__secure_getenv" "ac_cv_func___secure_getenv" -if test "x$ac_cv_func___secure_getenv" = xyes -then : - printf "%s\n" "#define HAS___SECURE_GETENV 1" >>confdefs.h - -fi - -fi - - -CPPFLAGS="$saved_CPPFLAGS" - -## issetugid - -ac_fn_c_check_func "$LINENO" "issetugid" "ac_cv_func_issetugid" -if test "x$ac_cv_func_issetugid" = xyes -then : - printf "%s\n" "#define HAS_ISSETUGID 1" >>confdefs.h - -fi - - -## Checking for monotonic clock source -## On Windows MSVC, QueryPerformanceCounter and QueryPerformanceFrequency -## are always available. -## On Unix platforms, we check for the appropriate POSIX feature-test macros. -## On MacOS clock_gettime's CLOCK_MONOTONIC flag is not actually monotonic. -## mach_timebase_info and mach_absolute_time are used instead. - -case $host in #( - *-*-windows) : - has_monotonic_clock=true ;; #( - *-apple-darwin*) : - - - for ac_func in clock_gettime_nsec_np -do : - ac_fn_c_check_func "$LINENO" "clock_gettime_nsec_np" "ac_cv_func_clock_gettime_nsec_np" -if test "x$ac_cv_func_clock_gettime_nsec_np" = xyes -then : - printf "%s\n" "#define HAVE_CLOCK_GETTIME_NSEC_NP 1" >>confdefs.h - - has_monotonic_clock=true - printf "%s\n" "#define HAS_CLOCK_GETTIME_NSEC_NP 1" >>confdefs.h - - -else $as_nop - has_monotonic_clock=false -fi - -done ;; #( - *) : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - int main(void) - { - #if !(defined(_POSIX_TIMERS) && defined(_POSIX_MONOTONIC_CLOCK) \ - && _POSIX_MONOTONIC_CLOCK != (-1)) - #error "no monotonic clock source" - #endif - return 0; - } - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - - has_monotonic_clock=true - printf "%s\n" "#define HAS_POSIX_MONOTONIC_CLOCK 1" >>confdefs.h - - -else $as_nop - has_monotonic_clock=false -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - - ;; -esac - -# The instrumented runtime is built by default -# if the proper clock source is found. -# If asked via --enable-instrumented-runtime, configuration fails if the proper -# clock source is missing. -if test "x$enable_instrumented_runtime" != "xno" -then : - - case $host in #( - sparc-sun-solaris*) : - instrumented_runtime=false ;; #( - *-*-windows) : - instrumented_runtime=true ;; #( - *-apple-darwin*) : - - case $enable_instrumented_runtime,$has_monotonic_clock in #( - *,true) : - instrumented_runtime=true ;; #( - yes,false) : - as_fn_error $? "Instrumented runtime support requested but no proper monotonic clock source was found." "$LINENO" 5 ;; #( - auto,false) : - instrumented_runtime=false - ;; #( - *) : - ;; -esac ;; #( - *) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 -printf %s "checking for library containing clock_gettime... " >&6; } -if test ${ac_cv_search_clock_gettime+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char clock_gettime (); -int -main (void) -{ -return clock_gettime (); - ; - return 0; -} -_ACEOF -for ac_lib in '' rt -do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO" -then : - ac_cv_search_clock_gettime=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext - if test ${ac_cv_search_clock_gettime+y} -then : - break -fi -done -if test ${ac_cv_search_clock_gettime+y} -then : - -else $as_nop - ac_cv_search_clock_gettime=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 -printf "%s\n" "$ac_cv_search_clock_gettime" >&6; } -ac_res=$ac_cv_search_clock_gettime -if test "$ac_res" != no -then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - has_clock_gettime=true -else $as_nop - has_clock_gettime=false -fi - - case $enable_instrumented_runtime,$has_clock_gettime,$has_monotonic_clock in #( - auto,false,*) : - instrumented_runtime=false ;; #( - auto,*,false) : - instrumented_runtime=false ;; #( - *,true,true) : - - instrumented_runtime=true - if test "x$ac_cv_search_clock_gettime" = "xnone required" -then : - instrumented_runtime_libs="" -else $as_nop - instrumented_runtime_libs=$ac_cv_search_clock_gettime - -fi - ;; #( - yes,false,*) : - as_fn_error $? "Instrumented runtime support requested but clock_gettime is missing." "$LINENO" 5 ;; #( - yes,*,false) : - as_fn_error $? "Instrumented runtime support requested but no proper monotonic clock source was found." "$LINENO" 5 - ;; #( - *) : - ;; -esac - ;; -esac - -fi - -# ThreadSanitizer support is currently only available for Linux/FreeBSD/macOS -# on amd64, Linux/macOS on arm64 and Linux on POWER, riscv64 and s390x. -if test "x$enable_tsan" = "xyes" -then : - case "$arch" in #( - amd64) : - case "$system" in #( - freebsd|linux|macosx) : - case "$ocaml_cc_vendor" in #( - gcc-*|clang-*) : - tsan=true ;; #( - *) : - as_fn_error $? "thread sanitizer not supported with vendor=$ocaml_cc_vendor\"" "$LINENO" 5 - ;; -esac ;; #( - *) : - as_fn_error $? "thread sanitizer not supported on system $system" "$LINENO" 5 - ;; -esac ;; #( - arm64) : - case "$system" in #( - linux|macosx) : - case "$ocaml_cc_vendor" in #( - gcc-*|clang-*) : - tsan=true ;; #( - *) : - as_fn_error $? "thread sanitizer not supported with vendor=$ocaml_cc_vendor\"" "$LINENO" 5 - ;; -esac ;; #( - *) : - as_fn_error $? "thread sanitizer not supported on system $system" "$LINENO" 5 - ;; -esac ;; #( - power) : - case "$system" in #( - linux) : - case "$ocaml_cc_vendor" in #( - gcc-*|clang-*) : - tsan=true ;; #( - *) : - as_fn_error $? "thread sanitizer not supported with vendor=$ocaml_cc_vendor\"" "$LINENO" 5 - ;; -esac ;; #( - *) : - as_fn_error $? "thread sanitizer not supported on system $system" "$LINENO" 5 - ;; -esac ;; #( - riscv) : - case "$system" in #( - linux) : - case "$ocaml_cc_vendor" in #( - gcc-*|clang-*) : - tsan=true ;; #( - *) : - as_fn_error $? "thread sanitizer not supported with vendor=$ocaml_cc_vendor\"" "$LINENO" 5 - ;; -esac ;; #( - *) : - as_fn_error $? "thread sanitizer not supported on system $system" "$LINENO" 5 - ;; -esac ;; #( - s390x) : - case "$system" in #( - linux) : - case "$ocaml_cc_vendor" in #( - gcc-*|clang-*) : - tsan=true ;; #( - *) : - as_fn_error $? "thread sanitizer not supported with vendor=$ocaml_cc_vendor\"" "$LINENO" 5 - ;; -esac ;; #( - *) : - as_fn_error $? "thread sanitizer not supported on system $system" "$LINENO" 5 - ;; -esac ;; #( - *) : - as_fn_error $? "thread sanitizer not supported on arch $arch" "$LINENO" 5 - ;; -esac -else $as_nop - tsan=false -fi - -if $tsan -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using thread sanitizer with vendor=$ocaml_cc_vendor" >&5 -printf "%s\n" "$as_me: using thread sanitizer with vendor=$ocaml_cc_vendor" >&6;} - - # Check for libtsan library files (necessary on some Linux distributions) - SAVED_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -fsanitize=thread" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -void __tsan_func_entry(void *retaddr); -int -main (void) -{ -__tsan_func_entry((void *)0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - -else $as_nop - as_fn_error $? "libtsan is necessary for TSan but cannot be found. - Try installing it on your system." "$LINENO" 5 -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$SAVED_LDFLAGS" - - case $ocaml_cc_vendor in #( - gcc-[0123456789]-*|gcc-10-*|clang-*) : - ;; #( - *) : - oc_tsan_cflags="$oc_tsan_cflags -Wno-tsan" ;; -esac - case $ocaml_cc_vendor in #( - gcc*) : - tsan_distinguish_volatile_cflags="--param=tsan-distinguish-volatile=1" ;; #( - clang*) : - tsan_distinguish_volatile_cflags="-mllvm -tsan-distinguish-volatile" ;; #( - *) : - ;; -esac - as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags_$warn_error_flag_-fsanitize=thread $tsan_distinguish_volatile_cflags" | $as_tr_sh` -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fsanitize=thread $tsan_distinguish_volatile_cflags" >&5 -printf %s "checking whether C compiler accepts -fsanitize=thread $tsan_distinguish_volatile_cflags... " >&6; } -if eval test \${$as_CACHEVAR+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS $warn_error_flag -fsanitize=thread $tsan_distinguish_volatile_cflags" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$as_CACHEVAR=yes" -else $as_nop - eval "$as_CACHEVAR=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags -fi -eval ac_res=\$$as_CACHEVAR - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } -if eval test \"x\$"$as_CACHEVAR"\" = x"yes" -then : - : -else $as_nop - as_fn_error $? "The C compiler does not support the \`$tsan_distinguish_volatile_cflags' flag. Try upgrading to GCC >= 11, or to Clang >= 11." "$LINENO" 5 -fi - - oc_tsan_cflags="$oc_tsan_cflags $tsan_distinguish_volatile_cflags" - common_cppflags="$common_cppflags $oc_tsan_cppflags" - native_cflags="$native_cflags $oc_tsan_cflags" - ocamlc_cflags="$ocamlc_cflags $oc_tsan_cflags" - tsan_native_runtime_c_sources="tsan" -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not using thread sanitizer" >&5 -printf "%s\n" "$as_me: not using thread sanitizer" >&6;} - tsan_native_runtime_c_sources="" - -fi - -# libunwind detection when TSan is enabled -libunwind_cppflags="" -libunwind_ldflags="" - -if $tsan -then : - if test "$system" = "macosx" -then : - if test x"$LIBUNWIND_CPPFLAGS" != x -o \ - x"$LIBUNWIND_LDFLAGS" != x -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: On MacOSX, specifying paths for libunwind headers or libraries is strongly discouraged. It is recommended to rely on the defaults provided by the configure script" >&5 -printf "%s\n" "$as_me: WARNING: On MacOSX, specifying paths for libunwind headers or libraries is strongly discouraged. It is recommended to rely on the defaults provided by the configure script" >&2;} -fi -fi - - if test x"$LIBUNWIND_CPPFLAGS" != x -then : - libunwind_cppflags="$LIBUNWIND_CPPFLAGS" -else $as_nop - libunwind_cppflags="" -fi - - case "$system" in #( - "freebsd") : - libunwind_ldflags="-lgcc_eh" ;; #( - "macosx") : - libunwind_ldflags="-framework System" ;; #( - *) : - case "$arch" in #( - "amd64") : - libunwind_ldflags="-lunwind -lunwind-x86_64" ;; #( - "arm64") : - libunwind_ldflags="-lunwind -lunwind-aarch64" ;; #( - "power") : - libunwind_ldflags="-lunwind -lunwind-ppc64" ;; #( - "riscv") : - libunwind_ldflags="-lunwind -lunwind-riscv" ;; #( - "s390x") : - libunwind_ldflags="-lunwind -lunwind-s390x" ;; #( - *) : - ;; -esac ;; -esac - - if test x"$LIBUNWIND_LDFLAGS" != x -then : - libunwind_ldflags="$LIBUNWIND_LDFLAGS $libunwind_ldflags" -fi - - native_cppflags="$native_cppflags $libunwind_cppflags" - native_ldflags="$native_ldflags -fsanitize=thread $libunwind_ldflags" - - - SAVED_CPPFLAGS="$CPPFLAGS" - SAVED_LDFLAGS="$LDFLAGS" - CPPFLAGS="$CPPFLAGS $libunwind_cppflags" - LDFLAGS="$LDFLAGS $libunwind_ldflags" - ac_fn_c_check_header_compile "$LINENO" "libunwind.h" "ac_cv_header_libunwind_h" "$ac_includes_default" -if test "x$ac_cv_header_libunwind_h" = xyes -then : - printf "%s\n" "#define HAS_LIBUNWIND 1" >>confdefs.h - - libunwind_available=true -else $as_nop - libunwind_available=false -fi - - LDFLAGS="$SAVED_LDFLAGS" - CPPFLAGS="$SAVED_CPPFLAGS" - - - if ! $libunwind_available -then : - as_fn_error $? "libunwind is necessary for TSan but cannot be found" "$LINENO" 5 -fi - - # We need unwinding information at runtime, but since we use - # -no_compact_unwind, we also need -keep_dwarf_unwind otherwise - # the OS X linker will chuck away the DWARF-like (.eh_frame) - # information. (Older versions of OS X don't provide this.) - - if $libunwind_available && test x"$system" = "xmacosx" -then : - extra_flags="-Wl,-keep_dwarf_unwind" - mkexe="$mkexe $extra_flags" - mksharedlib="$mksharedlib $extra_flags" -fi - -fi - -## Sockets - -## TODO: check whether the different libraries are really useful - -sockets=true - -case $host in #( - *-*-mingw32*) : - cclibs="$cclibs -lws2_32" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 -printf %s "checking for library containing socket... " >&6; } -if test ${ac_cv_search_socket+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char socket (); -int -main (void) -{ -return socket (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ws2_32 -do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO" -then : - ac_cv_search_socket=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext - if test ${ac_cv_search_socket+y} -then : - break -fi -done -if test ${ac_cv_search_socket+y} -then : - -else $as_nop - ac_cv_search_socket=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 -printf "%s\n" "$ac_cv_search_socket" >&6; } -ac_res=$ac_cv_search_socket -if test "$ac_res" != no -then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - ac_fn_c_check_func "$LINENO" "socketpair" "ac_cv_func_socketpair" -if test "x$ac_cv_func_socketpair" = xyes -then : - printf "%s\n" "#define HAS_SOCKETPAIR 1" >>confdefs.h - -fi - ;; #( - *-pc-windows) : - cclibs="$cclibs ws2_32.lib" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 -printf %s "checking for library containing socket... " >&6; } -if test ${ac_cv_search_socket+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char socket (); -int -main (void) -{ -return socket (); - ; - return 0; -} -_ACEOF -for ac_lib in '' ws2_32 -do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO" -then : - ac_cv_search_socket=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext - if test ${ac_cv_search_socket+y} -then : - break -fi -done -if test ${ac_cv_search_socket+y} -then : - -else $as_nop - ac_cv_search_socket=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 -printf "%s\n" "$ac_cv_search_socket" >&6; } -ac_res=$ac_cv_search_socket -if test "$ac_res" != no -then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - ac_fn_c_check_func "$LINENO" "socketpair" "ac_cv_func_socketpair" -if test "x$ac_cv_func_socketpair" = xyes -then : - printf "%s\n" "#define HAS_SOCKETPAIR 1" >>confdefs.h - -fi - ;; #( - *-*-haiku) : - cclibs="$cclibs -lnetwork" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 -printf %s "checking for library containing socket... " >&6; } -if test ${ac_cv_search_socket+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char socket (); -int -main (void) -{ -return socket (); - ; - return 0; -} -_ACEOF -for ac_lib in '' network -do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO" -then : - ac_cv_search_socket=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext - if test ${ac_cv_search_socket+y} -then : - break -fi -done -if test ${ac_cv_search_socket+y} -then : - -else $as_nop - ac_cv_search_socket=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 -printf "%s\n" "$ac_cv_search_socket" >&6; } -ac_res=$ac_cv_search_socket -if test "$ac_res" != no -then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - ;; #( - *-*-solaris*) : - cclibs="$cclibs -lsocket -lnsl" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 -printf %s "checking for library containing socket... " >&6; } -if test ${ac_cv_search_socket+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char socket (); -int -main (void) -{ -return socket (); - ; - return 0; -} -_ACEOF -for ac_lib in '' socket -do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO" -then : - ac_cv_search_socket=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext - if test ${ac_cv_search_socket+y} -then : - break -fi -done -if test ${ac_cv_search_socket+y} -then : - -else $as_nop - ac_cv_search_socket=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 -printf "%s\n" "$ac_cv_search_socket" >&6; } -ac_res=$ac_cv_search_socket -if test "$ac_res" != no -then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_ntop" >&5 -printf %s "checking for library containing inet_ntop... " >&6; } -if test ${ac_cv_search_inet_ntop+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char inet_ntop (); -int -main (void) -{ -return inet_ntop (); - ; - return 0; -} -_ACEOF -for ac_lib in '' nsl -do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO" -then : - ac_cv_search_inet_ntop=$ac_res -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext - if test ${ac_cv_search_inet_ntop+y} -then : - break -fi -done -if test ${ac_cv_search_inet_ntop+y} -then : - -else $as_nop - ac_cv_search_inet_ntop=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_ntop" >&5 -printf "%s\n" "$ac_cv_search_inet_ntop" >&6; } -ac_res=$ac_cv_search_inet_ntop -if test "$ac_res" != no -then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - -fi - ;; #( - *) : - - - for ac_func in socket socketpair bind listen accept connect -do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes" -then : - cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else $as_nop - sockets=false -fi - -done - - ;; -esac - -if $sockets -then : - printf "%s\n" "#define HAS_SOCKETS 1" >>confdefs.h - -fi - -## socklen_t - -case $host in #( - *-*-mingw32*|*-pc-windows) : - ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include -" -if test "x$ac_cv_type_socklen_t" = xyes -then : - printf "%s\n" "#define HAS_SOCKLEN_T 1" >>confdefs.h - -fi - ;; #( - *) : - ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include -" -if test "x$ac_cv_type_socklen_t" = xyes -then : - printf "%s\n" "#define HAS_SOCKLEN_T 1" >>confdefs.h - -fi - ;; -esac - -ac_fn_c_check_func "$LINENO" "inet_aton" "ac_cv_func_inet_aton" -if test "x$ac_cv_func_inet_aton" = xyes -then : - printf "%s\n" "#define HAS_INET_ATON 1" >>confdefs.h - -fi - - -## Unix domain sockets support on Windows - -case $host in #( - *-*-mingw32*|*-pc-windows) : - for ac_header in afunix.h -do : - ac_fn_c_check_header_compile "$LINENO" "afunix.h" "ac_cv_header_afunix_h" "#include -" -if test "x$ac_cv_header_afunix_h" = xyes -then : - printf "%s\n" "#define HAVE_AFUNIX_H 1" >>confdefs.h - printf "%s\n" "#define HAS_AFUNIX_H 1" >>confdefs.h - -fi - -done ;; #( - *) : - ;; -esac - -## IPv6 support - -ipv6=true - -case $host in #( - *-*-mingw32*|*-pc-windows) : - ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" "#include -" -if test "x$ac_cv_type_struct_sockaddr_in6" = xyes -then : - -else $as_nop - ipv6=false -fi - ;; #( - *) : - ac_fn_c_check_type "$LINENO" "struct sockaddr_in6" "ac_cv_type_struct_sockaddr_in6" " -#include -#include -#include - - -" -if test "x$ac_cv_type_struct_sockaddr_in6" = xyes -then : - -else $as_nop - ipv6=false -fi - - ;; -esac - -if $ipv6 -then : - ac_fn_c_check_func "$LINENO" "getaddrinfo" "ac_cv_func_getaddrinfo" -if test "x$ac_cv_func_getaddrinfo" = xyes -then : - -else $as_nop - ipv6=false -fi - -fi - -if $ipv6 -then : - ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" -if test "x$ac_cv_func_getnameinfo" = xyes -then : - -else $as_nop - ipv6=false -fi - -fi - -if $ipv6 -then : - ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton" -if test "x$ac_cv_func_inet_pton" = xyes -then : - -else $as_nop - ipv6=false -fi - -fi - -if $ipv6 -then : - ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop" -if test "x$ac_cv_func_inet_ntop" = xyes -then : - printf "%s\n" "#define HAS_IPV6 1" >>confdefs.h - -fi - -fi - -ac_fn_c_check_func "$LINENO" "rewinddir" "ac_cv_func_rewinddir" -if test "x$ac_cv_func_rewinddir" = xyes -then : - printf "%s\n" "#define HAS_REWINDDIR 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "lockf" "ac_cv_func_lockf" -if test "x$ac_cv_func_lockf" = xyes -then : - printf "%s\n" "#define HAS_LOCKF 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo" -if test "x$ac_cv_func_mkfifo" = xyes -then : - printf "%s\n" "#define HAS_MKFIFO 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd" -if test "x$ac_cv_func_getcwd" = xyes -then : - printf "%s\n" "#define HAS_GETCWD 1" >>confdefs.h - -fi - - -ac_fn_check_decl "$LINENO" "system" "ac_cv_have_decl_system" "#include -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_system" = xyes -then : - printf "%s\n" "#define HAS_SYSTEM 1" >>confdefs.h - -fi - -## utime -## Note: this was defined in config/s-nt.h but the autoconf macros do not -# seem to detect it properly on Windows so we hardcode the definition -# of HAS_UTIME on Windows but this will probably need to be clarified -case $host in #( - *-*-mingw32*|*-pc-windows) : - printf "%s\n" "#define HAS_UTIME 1" >>confdefs.h - ;; #( - *) : - ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_types_h" = xyes -then : - ac_fn_c_check_header_compile "$LINENO" "utime.h" "ac_cv_header_utime_h" "$ac_includes_default" -if test "x$ac_cv_header_utime_h" = xyes -then : - ac_fn_c_check_func "$LINENO" "utime" "ac_cv_func_utime" -if test "x$ac_cv_func_utime" = xyes -then : - printf "%s\n" "#define HAS_UTIME 1" >>confdefs.h - -fi - -fi - -fi - ;; -esac - -ac_fn_c_check_func "$LINENO" "utimes" "ac_cv_func_utimes" -if test "x$ac_cv_func_utimes" = xyes -then : - printf "%s\n" "#define HAS_UTIMES 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "fchmod" "ac_cv_func_fchmod" -if test "x$ac_cv_func_fchmod" = xyes -then : - ac_fn_c_check_func "$LINENO" "fchown" "ac_cv_func_fchown" -if test "x$ac_cv_func_fchown" = xyes -then : - printf "%s\n" "#define HAS_FCHMOD 1" >>confdefs.h - -fi - -fi - - -ac_fn_c_check_func "$LINENO" "truncate" "ac_cv_func_truncate" -if test "x$ac_cv_func_truncate" = xyes -then : - ac_fn_c_check_func "$LINENO" "ftruncate" "ac_cv_func_ftruncate" -if test "x$ac_cv_func_ftruncate" = xyes -then : - printf "%s\n" "#define HAS_TRUNCATE 1" >>confdefs.h - -fi - -fi - - -## select -ac_fn_c_check_func "$LINENO" "select" "ac_cv_func_select" -if test "x$ac_cv_func_select" = xyes -then : - ac_fn_c_check_type "$LINENO" "fd_set" "ac_cv_type_fd_set" " -#include -#include - -" -if test "x$ac_cv_type_fd_set" = xyes -then : - printf "%s\n" "#define HAS_SELECT 1" >>confdefs.h - - select=true -else $as_nop - select=false -fi - -fi - - -ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep" -if test "x$ac_cv_func_nanosleep" = xyes -then : - printf "%s\n" "#define HAS_NANOSLEEP 1" >>confdefs.h - -fi - - -ac_fn_c_check_func "$LINENO" "symlink" "ac_cv_func_symlink" -if test "x$ac_cv_func_symlink" = xyes -then : - ac_fn_c_check_func "$LINENO" "readlink" "ac_cv_func_readlink" -if test "x$ac_cv_func_readlink" = xyes -then : - ac_fn_c_check_func "$LINENO" "lstat" "ac_cv_func_lstat" -if test "x$ac_cv_func_lstat" = xyes -then : - printf "%s\n" "#define HAS_SYMLINK 1" >>confdefs.h - -fi - -fi - -fi - - -ac_fn_c_check_func "$LINENO" "realpath" "ac_cv_func_realpath" -if test "x$ac_cv_func_realpath" = xyes -then : - printf "%s\n" "#define HAS_REALPATH 1" >>confdefs.h - -fi - - -# wait -ac_fn_c_check_func "$LINENO" "waitpid" "ac_cv_func_waitpid" -if test "x$ac_cv_func_waitpid" = xyes -then : - - wait=true - printf "%s\n" "#define HAS_WAITPID 1" >>confdefs.h - - -else $as_nop - wait=false -fi - - -ac_fn_c_check_func "$LINENO" "wait4" "ac_cv_func_wait4" -if test "x$ac_cv_func_wait4" = xyes -then : - - has_wait=true - printf "%s\n" "#define HAS_WAIT4 1" >>confdefs.h - - -fi - - -## getgroups -ac_fn_c_check_func "$LINENO" "getgroups" "ac_cv_func_getgroups" -if test "x$ac_cv_func_getgroups" = xyes -then : - printf "%s\n" "#define HAS_GETGROUPS 1" >>confdefs.h - -fi - - -## setgroups -ac_fn_c_check_func "$LINENO" "setgroups" "ac_cv_func_setgroups" -if test "x$ac_cv_func_setgroups" = xyes -then : - printf "%s\n" "#define HAS_SETGROUPS 1" >>confdefs.h - -fi - - -## initgroups -ac_fn_c_check_func "$LINENO" "initgroups" "ac_cv_func_initgroups" -if test "x$ac_cv_func_initgroups" = xyes -then : - printf "%s\n" "#define HAS_INITGROUPS 1" >>confdefs.h - -fi - - -## termios - -ac_fn_c_check_header_compile "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default" -if test "x$ac_cv_header_termios_h" = xyes -then : - ac_fn_c_check_func "$LINENO" "tcgetattr" "ac_cv_func_tcgetattr" -if test "x$ac_cv_func_tcgetattr" = xyes -then : - ac_fn_c_check_func "$LINENO" "tcsetattr" "ac_cv_func_tcsetattr" -if test "x$ac_cv_func_tcsetattr" = xyes -then : - ac_fn_c_check_func "$LINENO" "tcsendbreak" "ac_cv_func_tcsendbreak" -if test "x$ac_cv_func_tcsendbreak" = xyes -then : - ac_fn_c_check_func "$LINENO" "tcflush" "ac_cv_func_tcflush" -if test "x$ac_cv_func_tcflush" = xyes -then : - ac_fn_c_check_func "$LINENO" "tcflow" "ac_cv_func_tcflow" -if test "x$ac_cv_func_tcflow" = xyes -then : - printf "%s\n" "#define HAS_TERMIOS 1" >>confdefs.h - -fi - -fi - -fi - -fi - -fi - -fi - - -## setitimer - -ac_fn_c_check_func "$LINENO" "setitimer" "ac_cv_func_setitimer" -if test "x$ac_cv_func_setitimer" = xyes -then : - - setitimer=true - printf "%s\n" "#define HAS_SETITIMER 1" >>confdefs.h - - -else $as_nop - setitimer=false -fi - - -## gethostname -# Note: detection fails on Windows so hardcoding the result -# (should be debugged later) -case $host in #( - *-*-mingw32*|*-pc-windows) : - printf "%s\n" "#define HAS_GETHOSTNAME 1" >>confdefs.h - ;; #( - *) : - ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname" -if test "x$ac_cv_func_gethostname" = xyes -then : - printf "%s\n" "#define HAS_GETHOSTNAME 1" >>confdefs.h - -fi - ;; -esac - -## uname - -ac_fn_c_check_header_compile "$LINENO" "sys/utsname.h" "ac_cv_header_sys_utsname_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_utsname_h" = xyes -then : - ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname" -if test "x$ac_cv_func_uname" = xyes -then : - printf "%s\n" "#define HAS_UNAME 1" >>confdefs.h - -fi - -fi - - -## gettimeofday - -ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday" -if test "x$ac_cv_func_gettimeofday" = xyes -then : - - gettimeofday=true - printf "%s\n" "#define HAS_GETTIMEOFDAY 1" >>confdefs.h - - -else $as_nop - gettimeofday=false -fi - - -## mktime - -ac_fn_c_check_func "$LINENO" "mktime" "ac_cv_func_mktime" -if test "x$ac_cv_func_mktime" = xyes -then : - printf "%s\n" "#define HAS_MKTIME 1" >>confdefs.h - -fi - - -## setsid - -case $host in #( - *-cygwin|*-*-mingw32*|*-pc-windows) : - ;; #( - *) : - ac_fn_c_check_func "$LINENO" "setsid" "ac_cv_func_setsid" -if test "x$ac_cv_func_setsid" = xyes -then : - printf "%s\n" "#define HAS_SETSID 1" >>confdefs.h - -fi - ;; -esac - -## putenv - -ac_fn_c_check_func "$LINENO" "putenv" "ac_cv_func_putenv" -if test "x$ac_cv_func_putenv" = xyes -then : - printf "%s\n" "#define HAS_PUTENV 1" >>confdefs.h - -fi - - -## setenv and unsetenv - -ac_fn_c_check_func "$LINENO" "setenv" "ac_cv_func_setenv" -if test "x$ac_cv_func_setenv" = xyes -then : - ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv" -if test "x$ac_cv_func_unsetenv" = xyes -then : - printf "%s\n" "#define HAS_SETENV_UNSETENV 1" >>confdefs.h - -fi - -fi - - -## newlocale() and -# Note: the detection fails on msvc so we hardcode the result -# (should be debugged later) -case $host in #( - *-pc-windows) : - printf "%s\n" "#define HAS_LOCALE_H 1" >>confdefs.h - ;; #( - *) : - ac_fn_c_check_header_compile "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default" -if test "x$ac_cv_header_locale_h" = xyes -then : - ac_fn_c_check_func "$LINENO" "newlocale" "ac_cv_func_newlocale" -if test "x$ac_cv_func_newlocale" = xyes -then : - ac_fn_c_check_func "$LINENO" "freelocale" "ac_cv_func_freelocale" -if test "x$ac_cv_func_freelocale" = xyes -then : - ac_fn_c_check_func "$LINENO" "uselocale" "ac_cv_func_uselocale" -if test "x$ac_cv_func_uselocale" = xyes -then : - printf "%s\n" "#define HAS_LOCALE_H 1" >>confdefs.h - -fi - -fi - -fi - -fi - ;; -esac - -ac_fn_c_check_header_compile "$LINENO" "xlocale.h" "ac_cv_header_xlocale_h" "$ac_includes_default" -if test "x$ac_cv_header_xlocale_h" = xyes -then : - ac_fn_c_check_func "$LINENO" "newlocale" "ac_cv_func_newlocale" -if test "x$ac_cv_func_newlocale" = xyes -then : - ac_fn_c_check_func "$LINENO" "freelocale" "ac_cv_func_freelocale" -if test "x$ac_cv_func_freelocale" = xyes -then : - ac_fn_c_check_func "$LINENO" "uselocale" "ac_cv_func_uselocale" -if test "x$ac_cv_func_uselocale" = xyes -then : - printf "%s\n" "#define HAS_XLOCALE_H 1" >>confdefs.h - -fi - -fi - -fi - -fi - - -## strtod_l -# Note: not detected on MSVC so hardcoding the result -# (should be debugged later) -case $host in #( - *-pc-windows) : - printf "%s\n" "#define HAS_STRTOD_L 1" >>confdefs.h - ;; #( - *) : - ac_fn_c_check_func "$LINENO" "strtod_l" "ac_cv_func_strtod_l" -if test "x$ac_cv_func_strtod_l" = xyes -then : - printf "%s\n" "#define HAS_STRTOD_L 1" >>confdefs.h - -fi - ;; -esac - -## shared library support -if $supports_shared_libraries -then : - case $host in #( - *-*-mingw32*|*-pc-windows|*-*-cygwin*) : - DLLIBS="" ;; #( - *) : - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes -then : - supports_shared_libraries=true DLLIBS="" -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -printf %s "checking for dlopen in -ldl... " >&6; } -if test ${ac_cv_lib_dl_dlopen+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); -int -main (void) -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes -then : - supports_shared_libraries=true DLLIBS="-ldl $DLLIBS" -else $as_nop - supports_shared_libraries=false -fi - -fi - ;; -esac -else $as_nop - supports_shared_libraries=false -fi - -if $supports_shared_libraries -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Dynamic loading of shared libraries is supported." >&5 -printf "%s\n" "$as_me: Dynamic loading of shared libraries is supported." >&6;} - printf "%s\n" "#define SUPPORT_DYNAMIC_LINKING 1" >>confdefs.h - -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Dynamic loading of shared libraries is not supported." >&5 -printf "%s\n" "$as_me: Dynamic loading of shared libraries is not supported." >&6;} -fi - -## mmap - -ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_mman_h" = xyes -then : - ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" -if test "x$ac_cv_func_mmap" = xyes -then : - ac_fn_c_check_func "$LINENO" "munmap" "ac_cv_func_munmap" -if test "x$ac_cv_func_munmap" = xyes -then : - printf "%s\n" "#define HAS_MMAP 1" >>confdefs.h - -fi - -fi - -fi - - -## pwrite - -ac_fn_c_check_func "$LINENO" "pwrite" "ac_cv_func_pwrite" -if test "x$ac_cv_func_pwrite" = xyes -then : - printf "%s\n" "#define HAS_PWRITE 1" >>confdefs.h - -fi - - -## -fdebug-prefix-map support by the C compiler -case $ocaml_cc_vendor,$host in #( - *,*-*-mingw32*) : - cc_has_debug_prefix_map=false ;; #( - *,*-pc-windows) : - cc_has_debug_prefix_map=false ;; #( - xlc*,powerpc-ibm-aix*) : - cc_has_debug_prefix_map=false ;; #( - sunc*,sparc-sun-*) : - cc_has_debug_prefix_map=false ;; #( - *) : - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler supports -fdebug-prefix-map" >&5 -printf %s "checking whether the C compiler supports -fdebug-prefix-map... " >&6; } - saved_CFLAGS="$CFLAGS" - CFLAGS="-fdebug-prefix-map=old=new $CFLAGS" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main() { return 0; } -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - cc_has_debug_prefix_map=true - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - cc_has_debug_prefix_map=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$saved_CFLAGS" - ;; -esac - -## Does stat support nanosecond precision - -stat_has_ns_precision=false - -ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" " - $ac_includes_default - #include - -" -if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes -then : - stat_has_ns_precision=true - printf "%s\n" "#define HAS_NANOSECOND_STAT 1" >>confdefs.h - -fi - - - -if ! $stat_has_ns_precision -then : - ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" " - $ac_includes_default - #include - -" -if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes -then : - stat_has_ns_precision=true - printf "%s\n" "#define HAS_NANOSECOND_STAT 2" >>confdefs.h - -fi - -fi - -if ! $stat_has_ns_precision -then : - ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" " - $ac_includes_default - #include - -" -if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes -then : - stat_has_ns_precision=true - printf "%s\n" "#define HAS_NANOSECOND_STAT 3" >>confdefs.h - -fi - -fi - -if $stat_has_ns_precision -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: stat supports nanosecond precision" >&5 -printf "%s\n" "$as_me: stat supports nanosecond precision" >&6;} -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: stat does not support nanosecond precision" >&5 -printf "%s\n" "$as_me: stat does not support nanosecond precision" >&6;} -fi - -# Number of arguments of gethostbyname_r - - - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how many arguments gethostbyname_r() takes" >&5 -printf %s "checking how many arguments gethostbyname_r() takes... " >&6; } - - if test ${ac_cv_func_which_gethostbyname_r+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - -################################################################ - -ac_cv_func_which_gethostbyname_r=unknown - -# -# ONE ARGUMENT (sanity check) -# - -# This should fail, as there is no variant of gethostbyname_r() that takes -# a single argument. If it actually compiles, then we can assume that -# netdb.h is not declaring the function, and the compiler is thereby -# assuming an implicit prototype. In which case, we're out of luck. -# -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - char *name = "www.gnu.org"; - (void)gethostbyname_r(name) /* ; */ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_func_which_gethostbyname_r=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -# -# SIX ARGUMENTS -# (e.g. Linux) -# - -if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - char *name = "www.gnu.org"; - struct hostent ret, *retp; - char buf[1024]; - int buflen = 1024; - int my_h_errno; - (void)gethostbyname_r(name, &ret, buf, buflen, &retp, &my_h_errno) /* ; */ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_func_which_gethostbyname_r=six -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi - -# -# FIVE ARGUMENTS -# (e.g. Solaris) -# - -if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - char *name = "www.gnu.org"; - struct hostent ret; - char buf[1024]; - int buflen = 1024; - int my_h_errno; - (void)gethostbyname_r(name, &ret, buf, buflen, &my_h_errno) /* ; */ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_func_which_gethostbyname_r=five -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi - -# -# THREE ARGUMENTS -# (e.g. AIX, HP-UX, Tru64) -# - -if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - char *name = "www.gnu.org"; - struct hostent ret; - struct hostent_data data; - (void)gethostbyname_r(name, &ret, &data) /* ; */ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_func_which_gethostbyname_r=three -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi - -################################################################ - - -fi - -case "$ac_cv_func_which_gethostbyname_r" in - three|five|six) - -printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - - ;; -esac - -case "$ac_cv_func_which_gethostbyname_r" in - three) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: three" >&5 -printf "%s\n" "three" >&6; } - -printf "%s\n" "#define HAVE_FUNC_GETHOSTBYNAME_R_3 1" >>confdefs.h - - ;; - - five) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: five" >&5 -printf "%s\n" "five" >&6; } - -printf "%s\n" "#define HAVE_FUNC_GETHOSTBYNAME_R_5 1" >>confdefs.h - - ;; - - six) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: six" >&5 -printf "%s\n" "six" >&6; } - -printf "%s\n" "#define HAVE_FUNC_GETHOSTBYNAME_R_6 1" >>confdefs.h - - ;; - - no) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot find function declaration in netdb.h" >&5 -printf "%s\n" "cannot find function declaration in netdb.h" >&6; } - ;; - - unknown) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: can't tell" >&5 -printf "%s\n" "can't tell" >&6; } - ;; - - *) - as_fn_error $? "internal error" "$LINENO" 5 - ;; -esac - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -case $ac_cv_func_which_gethostbyname_r in #( - six) : - printf "%s\n" "#define HAS_GETHOSTBYNAME_R 6" >>confdefs.h - ;; #( - five) : - printf "%s\n" "#define HAS_GETHOSTBYNAME_R 5" >>confdefs.h - ;; #( - three) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: OCaml does not support this variant" >&5 -printf "%s\n" "$as_me: WARNING: OCaml does not support this variant" >&2;} ;; #( - *) : - ;; -esac - -# Number of arguments of gethostbyaddr_r - - - - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how many arguments gethostbyaddr_r() takes" >&5 -printf %s "checking how many arguments gethostbyaddr_r() takes... " >&6; } - - if test ${ac_cv_func_which_gethostbyaddr_r+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - -################################################################ - -ac_cv_func_which_gethostbyaddr_r=unknown - -# -# ONE ARGUMENT (sanity check) -# - -# This should fail, as there is no variant of gethostbyaddr_r() that takes -# a single argument. If it actually compiles, then we can assume that -# netdb.h is not declaring the function, and the compiler is thereby -# assuming an implicit prototype. In which case, we're out of luck. -# -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - char *addr = "192.168.1.1"; - (void)gethostbyaddr_r(addr) /* ; */ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_func_which_gethostbyaddr_r=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -# -# EIGHT ARGUMENTS -# (e.g. Linux) -# - -if test "$ac_cv_func_which_gethostbyaddr_r" = "unknown"; then - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - char *addr = "192.168.1.1"; - struct hostent ret, *retp; - char buf[1024]; - int buflen = 1024; - int my_h_errno; - (void)gethostbyaddr_r( - addr, 10, 10, retp, buf, buflen, &retp, &my_h_errno) /* ; */ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_func_which_gethostbyaddr_r=eight -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi - -# -# SEVEN ARGUMENTS -# (e.g. Solaris) -# - -if test "$ac_cv_func_which_gethostbyaddr_r" = "unknown"; then - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ - - char *addr = "192.168.1.1"; - struct hostent ret; - char buf[1024]; - int buflen = 1024; - int my_h_errno; - (void)gethostbyaddr_r( - addr, 10, 10, buf, buflen, &my_h_errno, 0) /* ; */ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_func_which_gethostbyaddr_r=seven -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - -fi - -################################################################ - - -fi - -case "$ac_cv_func_which_gethostbyaddr_r" in - seven|eight) - -printf "%s\n" "#define HAVE_GETHOSTBYADDR_R 1" >>confdefs.h - - ;; -esac - -case "$ac_cv_func_which_gethostbyaddr_r" in - eight) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: eight" >&5 -printf "%s\n" "eight" >&6; } - -printf "%s\n" "#define HAVE_FUNC_GETHOSTBYADDR_R_8 1" >>confdefs.h - - ;; - - seven) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: seven" >&5 -printf "%s\n" "seven" >&6; } - -printf "%s\n" "#define HAVE_FUNC_GETHOSTBYADDR_R_7 1" >>confdefs.h - - ;; - - no) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot find function declaration in netdb.h" >&5 -printf "%s\n" "cannot find function declaration in netdb.h" >&6; } - ;; - - unknown) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: can't tell" >&5 -printf "%s\n" "can't tell" >&6; } - ;; - - *) - as_fn_error $? "internal error" "$LINENO" 5 - ;; -esac - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -case $ac_cv_func_which_gethostbyaddr_r in #( - eight) : - printf "%s\n" "#define HAS_GETHOSTBYADDR_R 8" >>confdefs.h - ;; #( - seven) : - printf "%s\n" "#define HAS_GETHOSTBYADDR_R 7" >>confdefs.h - ;; #( - *) : - ;; -esac - -## mkstemp - -ac_fn_c_check_func "$LINENO" "mkstemp" "ac_cv_func_mkstemp" -if test "x$ac_cv_func_mkstemp" = xyes -then : - printf "%s\n" "#define HAS_MKSTEMP 1" >>confdefs.h - -fi - - -## nice - -ac_fn_c_check_func "$LINENO" "nice" "ac_cv_func_nice" -if test "x$ac_cv_func_nice" = xyes -then : - printf "%s\n" "#define HAS_NICE 1" >>confdefs.h - -fi - - -## dup3 - -ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" -if test "x$ac_cv_func_dup3" = xyes -then : - printf "%s\n" "#define HAS_DUP3 1" >>confdefs.h - -fi - - -## pipe2 - -ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" -if test "x$ac_cv_func_pipe2" = xyes -then : - printf "%s\n" "#define HAS_PIPE2 1" >>confdefs.h - -fi - - -## accept4 - -ac_fn_c_check_func "$LINENO" "accept4" "ac_cv_func_accept4" -if test "x$ac_cv_func_accept4" = xyes -then : - printf "%s\n" "#define HAS_ACCEPT4 1" >>confdefs.h - -fi - - -## getauxval - -ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval" -if test "x$ac_cv_func_getauxval" = xyes -then : - printf "%s\n" "#define HAS_GETAUXVAL 1" >>confdefs.h - -fi - - -## shmat -ac_fn_c_check_header_compile "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_shm_h" = xyes -then : - - printf "%s\n" "#define HAS_SYS_SHM_H 1" >>confdefs.h - - ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" -if test "x$ac_cv_func_shmat" = xyes -then : - printf "%s\n" "#define HAS_SHMAT 1" >>confdefs.h - -fi - - -fi - - -## execvpe - -ac_fn_c_check_func "$LINENO" "execvpe" "ac_cv_func_execvpe" -if test "x$ac_cv_func_execvpe" = xyes -then : - printf "%s\n" "#define HAS_EXECVPE 1" >>confdefs.h - -fi - - -## posix_spawn - -ac_fn_c_check_header_compile "$LINENO" "spawn.h" "ac_cv_header_spawn_h" "$ac_includes_default" -if test "x$ac_cv_header_spawn_h" = xyes -then : - ac_fn_c_check_func "$LINENO" "posix_spawn" "ac_cv_func_posix_spawn" -if test "x$ac_cv_func_posix_spawn" = xyes -then : - ac_fn_c_check_func "$LINENO" "posix_spawnp" "ac_cv_func_posix_spawnp" -if test "x$ac_cv_func_posix_spawnp" = xyes -then : - printf "%s\n" "#define HAS_POSIX_SPAWN 1" >>confdefs.h - -fi - -fi - -fi - - -## ffs or _BitScanForward -# CR mshinwell all-runtime5: remove ffs check, it's only needed for runtime4 -ac_fn_c_check_func "$LINENO" "ffs" "ac_cv_func_ffs" -if test "x$ac_cv_func_ffs" = xyes -then : - printf "%s\n" "#define HAS_FFS 1" >>confdefs.h - -fi - - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_PKG_CONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -printf "%s\n" "$PKG_CONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - - -## pthread_getaffinity_np, args differ from GNU and BSD -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking arguments for pthread_getaffinity_np" >&5 -printf %s "checking arguments for pthread_getaffinity_np... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _GNU_SOURCE - #include - #include -int -main (void) -{ -cpu_set_t cs; - CPU_ZERO(&cs); - CPU_COUNT(&cs); - pthread_getaffinity_np(pthread_self(), sizeof(cs), &cs); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: gnu" >&5 -printf "%s\n" "gnu" >&6; } - printf "%s\n" "#define HAS_GNU_GETAFFINITY_NP 1" >>confdefs.h - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - #include -int -main (void) -{ -cpuset_t cs; - /* Not every BSD has CPU_ZERO and CPU_COUNT (NetBSD) */ - CPU_ZERO(&cs); - CPU_COUNT(&cs); - pthread_getaffinity_np(pthread_self(), sizeof(cs), &cs); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: BSD" >&5 -printf "%s\n" "BSD" >&6; } - printf "%s\n" "#define HAS_BSD_GETAFFINITY_NP 1" >>confdefs.h - -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: pthread_getaffinity_np not found" >&5 -printf "%s\n" "pthread_getaffinity_np not found" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_PKG_CONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -printf "%s\n" "$PKG_CONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - - -## ZSTD compression library - -zstd_status="" -zstd_libs="" - -if test x"$with_zstd" != "xno" -then : - # Try pkg-config first, as it gives the most reliable results - if ${PKG_CONFIG} libzstd 2>/dev/null -then : - # Now check the version - if ${PKG_CONFIG} --atleast-version 1.4 libzstd -then : - zstd_libs=`${PKG_CONFIG} --libs libzstd` - zstd_flags=`${PKG_CONFIG} --cflags libzstd` - zstd_status="ok" -else $as_nop - zstd_status="zstd library too old: version 1.4 or later is needed" -fi -else $as_nop - # Otherwise, try to find zstd the old way, - # assuming it is installed in default places - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ZSTD_createCCtx in -lzstd" >&5 -printf %s "checking for ZSTD_createCCtx in -lzstd... " >&6; } -if test ${ac_cv_lib_zstd_ZSTD_createCCtx+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS -LIBS="-lzstd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char ZSTD_createCCtx (); -int -main (void) -{ -return ZSTD_createCCtx (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_cv_lib_zstd_ZSTD_createCCtx=yes -else $as_nop - ac_cv_lib_zstd_ZSTD_createCCtx=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zstd_ZSTD_createCCtx" >&5 -printf "%s\n" "$ac_cv_lib_zstd_ZSTD_createCCtx" >&6; } -if test "x$ac_cv_lib_zstd_ZSTD_createCCtx" = xyes -then : - ac_fn_check_decl "$LINENO" "ZSTD_compressStream2" "ac_cv_have_decl_ZSTD_compressStream2" "#include -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_ZSTD_compressStream2" = xyes -then : - zstd_libs="-lzstd" - zstd_flags="" - zstd_status="ok" -else $as_nop - zstd_status="zstd library too old: version 1.4 or later is needed" -fi -else $as_nop - zstd_status="zstd library not found" -fi - -fi -fi - -# When building the mingw-w64 port in Cygwin, it is very easy to have the -# library available, but not have the DLL in PATH. This then causes the build to -# fail as soon as ocamlrun is first executed. This check avoids automatically -# enabling zstd when the resulting executable doesn't actually work. -case $host in #( - *-w64-mingw32*|*-pc-windows) : - check_zstd_runs=$host_runnable ;; #( - *) : - check_zstd_runs=false ;; -esac - -if test x"$zstd_status" = "xok" -then : - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether programs can be linked with zstd" >&5 -printf %s "checking whether programs can be linked with zstd... " >&6; } - - saved_CC="$CC" - saved_CFLAGS="$CFLAGS" - saved_CPPFLAGS="$CPPFLAGS" - saved_LIBS="$LIBS" - saved_ac_ext="$ac_ext" - saved_ac_compile="$ac_compile" - # Move the content of confdefs.h to another file so it does not - # get included - mv confdefs.h confdefs.h.bak - touch confdefs.h - - LIBS="$LIBS $zstd_libs" - CFLAGS="$CFLAGS $zstd_flags" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -int main(void) { - return (ZSTD_versionNumber() == 0); -} - -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether programs linked with zstd can execute" >&5 -printf %s "checking whether programs linked with zstd can execute... " >&6; } - if $check_zstd_runs -then : - if ac_fn_c_try_run LINENO -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - zstd_libs='' - zstd_flags='' - zstd_status=\ -"programs linked with zstd do not appear to be executable." -fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: skipped" >&5 -printf "%s\n" "skipped" >&6; } -fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - zstd_libs='' - zstd_flags='' - zstd_status="zstd found, but programs cannot be linked with it." -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - - # Restore the content of confdefs.h - mv confdefs.h.bak confdefs.h - ac_compile="$saved_ac_compile" - ac_ext="$saved_ac_ext" - CPPFLAGS="$saved_CPPFLAGS" - CFLAGS="$saved_CFLAGS" - CC="$saved_CC" - LIBS="$saved_LIBS" - -fi - -if test x"$zstd_status" = "xok" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compressed compilation artefacts supported" >&5 -printf "%s\n" "$as_me: compressed compilation artefacts supported" >&6;} - internal_cppflags="$internal_cppflags $zstd_flags" - printf "%s\n" "#define HAS_ZSTD 1" >>confdefs.h - -else $as_nop - case "$with_zstd" in #( - no) : - ;; #( - yes) : - as_fn_error $? "$zstd_status" "$LINENO" 5 ;; #( - *) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $zstd_status" >&5 -printf "%s\n" "$as_me: WARNING: $zstd_status" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compressed compilation artefacts not supported" >&5 -printf "%s\n" "$as_me: WARNING: compressed compilation artefacts not supported" >&2;} ;; -esac -fi - -## Determine whether the debugger should/can be built - -case $enable_ocamldebug in #( - no) : - with_debugger="" - build_ocamldebug=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: ocamldebug disabled" >&5 -printf "%s\n" "$as_me: ocamldebug disabled" >&6;} ;; #( - *) : - if $sockets -then : - with_debugger="ocamldebug" - build_ocamldebug=true - optional_bytecode_tools="$optional_bytecode_tools debugger/ocamldebug" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: ocamldebug supported" >&5 -printf "%s\n" "$as_me: ocamldebug supported" >&6;} -else $as_nop - with_debugger="" - build_ocamldebug=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: ocamldebug not supported" >&5 -printf "%s\n" "$as_me: ocamldebug not supported" >&6;} -fi - ;; -esac - -## Should the runtime with debugging support be built -case $enable_debug_runtime in #( - no) : - debug_runtime=false ;; #( - *) : - debug_runtime=true ;; -esac - -## Determine if system stack overflows can be detected - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stack overflows can be detected" >&5 -printf %s "checking whether stack overflows can be detected... " >&6; } - -case $arch,$system in #( - i386,linux_elf|amd64,linux|amd64,macosx \ - |amd64,openbsd|i386,bsd_elf|arm64,linux|arm64,macosx) : - printf "%s\n" "#define HAS_STACK_OVERFLOW_DETECTION 1" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } ;; #( - *) : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } ;; -esac - -## Determine how to link with the POSIX threads library - -case $host in #( - *-*-mingw32*) : - PTHREAD_LIBS="-l:libpthread.a -lgcc_eh" ;; #( - *-pc-windows) : - PTHREAD_LIBS="-l:libpthread.lib" ;; #( - *-apple-darwin*) : - PTHREAD_LIBS="-pthread" ;; #( - *) : - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ax_pthread_ok=no - -# We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on Tru64 or Sequent). -# It gets checked for in the link test anyway. - -# First of all, check if the user has set any of the PTHREAD_LIBS, -# etcetera environment variables, and if threads linking works using -# them: -if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then - ax_pthread_save_CC="$CC" - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - if test "x$PTHREAD_CC" != "x" -then : - CC="$PTHREAD_CC" -fi - if test "x$PTHREAD_CXX" != "x" -then : - CXX="$PTHREAD_CXX" -fi - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 -printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pthread_join (); -int -main (void) -{ -return pthread_join (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ax_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 -printf "%s\n" "$ax_pthread_ok" >&6; } - if test "x$ax_pthread_ok" = "xno"; then - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" - fi - CC="$ax_pthread_save_CC" - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" -fi - -# We must check for the threads library under a number of different -# names; the ordering is very important because some systems -# (e.g. DEC) have both -lpthread and -lpthreads, where one of the -# libraries is broken (non-POSIX). - -# Create a list of thread flags to try. Items with a "," contain both -# C compiler flags (before ",") and linker flags (after ","). Other items -# starting with a "-" are C compiler flags, and remaining items are -# library names, except for "none" which indicates that we try without -# any flags at all, and "pthread-config" which is a program returning -# the flags for the Pth emulation library. - -ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" - -# The ordering *is* (sometimes) important. Some notes on the -# individual items follow: - -# pthreads: AIX (must check this before -lpthread) -# none: in case threads are in libc; should be tried before -Kthread and -# other compiler flags to prevent continual compiler warnings -# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 -# (Note: HP C rejects this with "bad form for `-t' option") -# -pthreads: Solaris/gcc (Note: HP C also rejects) -# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads and -# -D_REENTRANT too), HP C (must be checked before -lpthread, which -# is present but should not be used directly; and before -mthreads, -# because the compiler interprets this as "-mt" + "-hreads") -# -mthreads: Mingw32/gcc, Lynx/gcc -# pthread: Linux, etcetera -# --thread-safe: KAI C++ -# pthread-config: use pthread-config program (for GNU Pth library) - -case $host_os in - - freebsd*) - - # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) - # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) - - ax_pthread_flags="-kthread lthread $ax_pthread_flags" - ;; - - hpux*) - - # From the cc(1) man page: "[-mt] Sets various -D flags to enable - # multi-threading and also sets -lpthread." - - ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" - ;; - - openedition*) - - # IBM z/OS requires a feature-test macro to be defined in order to - # enable POSIX threads at all, so give the user a hint if this is - # not set. (We don't define these ourselves, as they can affect - # other portions of the system API in unpredictable ways.) - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) - AX_PTHREAD_ZOS_MISSING -# endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1 -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 -printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} -fi -rm -rf conftest* - - ;; - - solaris*) - - # On Solaris (at least, for some versions), libc contains stubbed - # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (N.B.: The stubs are missing - # pthread_cleanup_push, or rather a function called by this macro, - # so we could check for that, but who knows whether they'll stub - # that too in a future libc.) So we'll check first for the - # standard Solaris way of linking pthreads (-mt -lpthread). - - ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" - ;; -esac - -# Are we compiling with Clang? - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 -printf %s "checking whether $CC is Clang... " >&6; } -if test ${ax_cv_PTHREAD_CLANG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_CLANG=no - # Note that Autoconf sets GCC=yes for Clang as well as GCC - if test "x$GCC" = "xyes"; then - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ -# if defined(__clang__) && defined(__llvm__) - AX_PTHREAD_CC_IS_CLANG -# endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1 -then : - ax_cv_PTHREAD_CLANG=yes -fi -rm -rf conftest* - - fi - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 -printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; } -ax_pthread_clang="$ax_cv_PTHREAD_CLANG" - - -# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) - -# Note that for GCC and Clang -pthread generally implies -lpthread, -# except when -nostdlib is passed. -# This is problematic using libtool to build C++ shared libraries with pthread: -# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 -# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 -# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 -# To solve this, first try -pthread together with -lpthread for GCC - -if test "x$GCC" = "xyes" -then : - ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags" -fi - -# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first - -if test "x$ax_pthread_clang" = "xyes" -then : - ax_pthread_flags="-pthread,-lpthread -pthread" -fi - - -# The presence of a feature test macro requesting re-entrant function -# definitions is, on some systems, a strong hint that pthreads support is -# correctly enabled - -case $host_os in - darwin* | hpux* | linux* | osf* | solaris*) - ax_pthread_check_macro="_REENTRANT" - ;; - - aix*) - ax_pthread_check_macro="_THREAD_SAFE" - ;; - - *) - ax_pthread_check_macro="--" - ;; -esac -if test "x$ax_pthread_check_macro" = "x--" -then : - ax_pthread_check_cond=0 -else $as_nop - ax_pthread_check_cond="!defined($ax_pthread_check_macro)" -fi - - -if test "x$ax_pthread_ok" = "xno"; then -for ax_pthread_try_flag in $ax_pthread_flags; do - - case $ax_pthread_try_flag in - none) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 -printf %s "checking whether pthreads work without any flags... " >&6; } - ;; - - *,*) - PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` - PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5 -printf %s "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; } - ;; - - -*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 -printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } - PTHREAD_CFLAGS="$ax_pthread_try_flag" - ;; - - pthread-config) - # Extract the first word of "pthread-config", so it can be a program name with args. -set dummy pthread-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_ax_pthread_config+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$ax_pthread_config"; then - ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_ax_pthread_config="yes" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" -fi -fi -ax_pthread_config=$ac_cv_prog_ax_pthread_config -if test -n "$ax_pthread_config"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 -printf "%s\n" "$ax_pthread_config" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - if test "x$ax_pthread_config" = "xno" -then : - continue -fi - PTHREAD_CFLAGS="`pthread-config --cflags`" - PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" - ;; - - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 -printf %s "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; } - PTHREAD_LIBS="-l$ax_pthread_try_flag" - ;; - esac - - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - - # Check for various functions. We must include pthread.h, - # since some functions may be macros. (On the Sequent, we - # need a special flag -Kthread to make this header compile.) - # We check for pthread_join because it is in -lpthread on IRIX - # while pthread_create is in libc. We check for pthread_attr_init - # due to DEC craziness with -lpthreads. We check for - # pthread_cleanup_push because it is one of the few pthread - # functions on Solaris that doesn't have a non-functional libc stub. - # We try pthread_create on general principles. - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -# if $ax_pthread_check_cond -# error "$ax_pthread_check_macro must be defined" -# endif - static void *some_global = NULL; - static void routine(void *a) - { - /* To avoid any unused-parameter or - unused-but-set-parameter warning. */ - some_global = a; - } - static void *start_routine(void *a) { return a; } -int -main (void) -{ -pthread_t th; pthread_attr_t attr; - pthread_create(&th, 0, start_routine, 0); - pthread_join(th, 0); - pthread_attr_init(&attr); - pthread_cleanup_push(routine, 0); - pthread_cleanup_pop(0) /* ; */ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ax_pthread_ok=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 -printf "%s\n" "$ax_pthread_ok" >&6; } - if test "x$ax_pthread_ok" = "xyes" -then : - break -fi - - PTHREAD_LIBS="" - PTHREAD_CFLAGS="" -done -fi - - -# Clang needs special handling, because older versions handle the -pthread -# option in a rather... idiosyncratic way - -if test "x$ax_pthread_clang" = "xyes"; then - - # Clang takes -pthread; it has never supported any other flag - - # (Note 1: This will need to be revisited if a system that Clang - # supports has POSIX threads in a separate library. This tends not - # to be the way of modern systems, but it's conceivable.) - - # (Note 2: On some systems, notably Darwin, -pthread is not needed - # to get POSIX threads support; the API is always present and - # active. We could reasonably leave PTHREAD_CFLAGS empty. But - # -pthread does define _REENTRANT, and while the Darwin headers - # ignore this macro, third-party headers might not.) - - # However, older versions of Clang make a point of warning the user - # that, in an invocation where only linking and no compilation is - # taking place, the -pthread option has no effect ("argument unused - # during compilation"). They expect -pthread to be passed in only - # when source code is being compiled. - # - # Problem is, this is at odds with the way Automake and most other - # C build frameworks function, which is that the same flags used in - # compilation (CFLAGS) are also used in linking. Many systems - # supported by AX_PTHREAD require exactly this for POSIX threads - # support, and in fact it is often not straightforward to specify a - # flag that is used only in the compilation phase and not in - # linking. Such a scenario is extremely rare in practice. - # - # Even though use of the -pthread flag in linking would only print - # a warning, this can be a nuisance for well-run software projects - # that build with -Werror. So if the active version of Clang has - # this misfeature, we search for an option to squash it. - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 -printf %s "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; } -if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown - # Create an alternate version of $ac_link that compiles and - # links in two steps (.c -> .o, .o -> exe) instead of one - # (.c -> exe), because the warning occurs only in the second - # step - ax_pthread_save_ac_link="$ac_link" - ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' - ax_pthread_link_step=`printf "%s\n" "$ac_link" | sed "$ax_pthread_sed"` - ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" - ax_pthread_save_CFLAGS="$CFLAGS" - for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do - if test "x$ax_pthread_try" = "xunknown" -then : - break -fi - CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" - ac_link="$ax_pthread_save_ac_link" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main(void){return 0;} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ac_link="$ax_pthread_2step_ac_link" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main(void){return 0;} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - done - ac_link="$ax_pthread_save_ac_link" - CFLAGS="$ax_pthread_save_CFLAGS" - if test "x$ax_pthread_try" = "x" -then : - ax_pthread_try=no -fi - ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 -printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } - - case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in - no | unknown) ;; - *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; - esac - -fi # $ax_pthread_clang = yes - - - -# Various other checks: -if test "x$ax_pthread_ok" = "xyes"; then - ax_pthread_save_CFLAGS="$CFLAGS" - ax_pthread_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" - - # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 -printf %s "checking for joinable pthread attribute... " >&6; } -if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_JOINABLE_ATTR=unknown - for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -int attr = $ax_pthread_attr; return attr /* ; */ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - done - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 -printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } - if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ - test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ - test "x$ax_pthread_joinable_attr_defined" != "xyes" -then : - -printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h - - ax_pthread_joinable_attr_defined=yes - -fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 -printf %s "checking whether more special flags are required for pthreads... " >&6; } -if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ax_cv_PTHREAD_SPECIAL_FLAGS=no - case $host_os in - solaris*) - ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" - ;; - esac - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 -printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } - if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ - test "x$ax_pthread_special_flags_added" != "xyes" -then : - PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" - ax_pthread_special_flags_added=yes -fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 -printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; } -if test ${ax_cv_PTHREAD_PRIO_INHERIT+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main (void) -{ -int i = PTHREAD_PRIO_INHERIT; - return i; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ax_cv_PTHREAD_PRIO_INHERIT=yes -else $as_nop - ax_cv_PTHREAD_PRIO_INHERIT=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 -printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } - if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ - test "x$ax_pthread_prio_inherit_defined" != "xyes" -then : - -printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h - - ax_pthread_prio_inherit_defined=yes - -fi - - CFLAGS="$ax_pthread_save_CFLAGS" - LIBS="$ax_pthread_save_LIBS" - - # More AIX lossage: compile with *_r variant - if test "x$GCC" != "xyes"; then - case $host_os in - aix*) - case "x/$CC" in #( - x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : - #handle absolute path differently from PATH based program lookup - case "x$CC" in #( - x/*) : - - if as_fn_executable_p ${CC}_r -then : - PTHREAD_CC="${CC}_r" -fi - if test "x${CXX}" != "x" -then : - if as_fn_executable_p ${CXX}_r -then : - PTHREAD_CXX="${CXX}_r" -fi -fi - ;; #( - *) : - - for ac_prog in ${CC}_r -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_PTHREAD_CC+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$PTHREAD_CC"; then - ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_PTHREAD_CC="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PTHREAD_CC=$ac_cv_prog_PTHREAD_CC -if test -n "$PTHREAD_CC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 -printf "%s\n" "$PTHREAD_CC" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$PTHREAD_CC" && break -done -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - - if test "x${CXX}" != "x" -then : - for ac_prog in ${CXX}_r -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_PTHREAD_CXX+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$PTHREAD_CXX"; then - ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_PTHREAD_CXX="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX -if test -n "$PTHREAD_CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5 -printf "%s\n" "$PTHREAD_CXX" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$PTHREAD_CXX" && break -done -test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" - -fi - - ;; -esac - ;; #( - *) : - ;; -esac - ;; - esac - fi -fi - -test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" -test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" - - - - - - -# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test "x$ax_pthread_ok" = "xyes"; then - common_cflags="$common_cflags $PTHREAD_CFLAGS" - # The two following lines add flags and libraries for pthread to the - # global CFLAGS and LIBS variables. This means that all the subsequent - # tests can rely on the assumption that pthread is enabled. - CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - LIBS="$LIBS $PTHREAD_LIBS" - ac_fn_c_check_func "$LINENO" "sigwait" "ac_cv_func_sigwait" -if test "x$ac_cv_func_sigwait" = xyes -then : - printf "%s\n" "#define HAS_SIGWAIT 1" >>confdefs.h - -fi - - : -else - ax_pthread_ok=no - as_fn_error $? "POSIX threads are required but not supported on this platform" "$LINENO" 5 -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - ;; -esac - -## pthread_getaffinity_np, args differ from GNU and BSD -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking arguments for pthread_getaffinity_np" >&5 -printf %s "checking arguments for pthread_getaffinity_np... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#define _GNU_SOURCE - #include - #ifdef HAS_PTHREAD_NP_H - #include - #endif - #include -int -main (void) -{ -cpu_set_t cs; - CPU_ZERO(&cs); - CPU_COUNT(&cs); - pthread_getaffinity_np(pthread_self(), sizeof(cs), &cs); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: GNU" >&5 -printf "%s\n" "GNU" >&6; } - printf "%s\n" "#define HAS_GNU_GETAFFINITY_NP 1" >>confdefs.h - -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - #include -int -main (void) -{ -cpuset_t cs; - /* Not every BSD has CPU_ZERO and CPU_COUNT (NetBSD) */ - CPU_ZERO(&cs); - CPU_COUNT(&cs); - pthread_getaffinity_np(pthread_self(), sizeof(cs), &cs); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: BSD" >&5 -printf "%s\n" "BSD" >&6; } - printf "%s\n" "#define HAS_BSD_GETAFFINITY_NP 1" >>confdefs.h - -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: pthread_getaffinity_np not found" >&5 -printf "%s\n" "pthread_getaffinity_np not found" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - -## Activate the systhread library - -if test x"$enable_runtime5" = x"yes" -then : - runtime_suffix= -else $as_nop - runtime_suffix=4 -fi - -case $enable_systhreads,$enable_unix_lib in #( - yes,no) : - systhread_support=false - as_fn_error $? "the threads library requires the unix library" "$LINENO" 5 ;; #( - no,*|*,no) : - systhread_support=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: the threads library is disabled" >&5 -printf "%s\n" "$as_me: the threads library is disabled" >&6;} ;; #( - *) : - systhread_support=true - ac_config_files="$ac_config_files otherlibs/systhreads/META" - - ac_config_files="$ac_config_files otherlibs/systhreads4/META" - - otherlibraries="$otherlibraries systhreads${runtime_suffix}" - lib_systhreads=true - lib_systhreads_path="systhreads${runtime_suffix}" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: the threads library is supported" >&5 -printf "%s\n" "$as_me: the threads library is supported" >&6;} ;; -esac - -## Does the assembler support debug prefix map and CFI directives -as_has_debug_prefix_map=false -asm_cfi_supported=false -if $native_compiler -then : - case $host in #( - *-*-mingw32*|*-pc-windows) : - ;; #( - *) : - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the assembler supports --debug-prefix-map" >&5 -printf %s "checking whether the assembler supports --debug-prefix-map... " >&6; } - - - saved_CC="$CC" - saved_CFLAGS="$CFLAGS" - saved_CPPFLAGS="$CPPFLAGS" - saved_LIBS="$LIBS" - saved_ac_ext="$ac_ext" - saved_ac_compile="$ac_compile" - # Move the content of confdefs.h to another file so it does not - # get included - mv confdefs.h confdefs.h.bak - touch confdefs.h - - - # Modify C-compiler variables to use the assembler - CC="$AS" - CFLAGS="--debug-prefix-map old=new -o conftest.$ac_objext" - CPPFLAGS="" - ac_ext="S" - ac_compile='$CC $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -camlPervasives__loop_1128: - .file 1 "pervasives.ml" - .loc 1 193 - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - as_has_debug_prefix_map=true - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - ashas_debug_prefix_map=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - - - # Restore the content of confdefs.h - mv confdefs.h.bak confdefs.h - ac_compile="$saved_ac_compile" - ac_ext="$saved_ac_ext" - CPPFLAGS="$saved_CPPFLAGS" - CFLAGS="$saved_CFLAGS" - CC="$saved_CC" - LIBS="$saved_LIBS" - - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the assembler supports CFI directives" >&5 -printf %s "checking whether the assembler supports CFI directives... " >&6; } - - if test x"$enable_cfi" = "xno" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 -printf "%s\n" "disabled" >&6; } -else $as_nop - - saved_CC="$CC" - saved_CFLAGS="$CFLAGS" - saved_CPPFLAGS="$CPPFLAGS" - saved_LIBS="$LIBS" - saved_ac_ext="$ac_ext" - saved_ac_compile="$ac_compile" - # Move the content of confdefs.h to another file so it does not - # get included - mv confdefs.h confdefs.h.bak - touch confdefs.h - - - # Modify C-compiler variables to use the assembler - CC="$ASPP" - CFLAGS="-o conftest.$ac_objext" - CPPFLAGS="" - ac_ext="S" - ac_compile='$CC $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -camlPervasives__loop_1128: - .file 1 "pervasives.ml" - .loc 1 193 - .cfi_startproc - .cfi_adjust_cfa_offset 8 - .cfi_endproc - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - aspp_ok=true -else $as_nop - aspp_ok=false -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - - if test "$AS" = "$ASPP" -then : - as_ok="$aspp_ok" -else $as_nop - CC="$AS" - ac_compile='$CC $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -camlPervasives__loop_1128: - .file 1 "pervasives.ml" - .loc 1 193 - .cfi_startproc - .cfi_adjust_cfa_offset 8 - .cfi_endproc - -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - as_ok=true -else $as_nop - as_ok=false -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - - # Restore the content of confdefs.h - mv confdefs.h.bak confdefs.h - ac_compile="$saved_ac_compile" - ac_ext="$saved_ac_ext" - CPPFLAGS="$saved_CPPFLAGS" - CFLAGS="$saved_CFLAGS" - CC="$saved_CC" - LIBS="$saved_LIBS" - - - if $aspp_ok && $as_ok -then : - asm_cfi_supported=true - printf "%s\n" "#define ASM_CFI_SUPPORTED 1" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - if test x"$enable_cfi" = "xyes" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: requested but not available - as_fn_error $? "exiting" "$LINENO" 5" >&5 -printf "%s\n" "requested but not available - as_fn_error $? "exiting" "$LINENO" 5" >&6; } -else $as_nop - asm_cfi_supported=false - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -fi - -fi ;; -esac -fi - -## Frame pointers - -if test x"$enable_frame_pointers" = "xyes" -then : - case "$host,$ocaml_cc_vendor" in #( - x86_64-*-linux*,gcc-*|x86_64-*-linux*,clang-*) : - common_cflags="$common_cflags -g -fno-omit-frame-pointer" - frame_pointers=true - printf "%s\n" "#define WITH_FRAME_POINTERS 1" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using frame pointers" >&5 -printf "%s\n" "$as_me: using frame pointers" >&6;} ;; #( - *) : - as_fn_error $? "frame pointers not supported on this platform" "$LINENO" 5 - ;; -esac -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not using frame pointers" >&5 -printf "%s\n" "$as_me: not using frame pointers" >&6;} - frame_pointers=false -fi - -## CPP mangling - -if test x"$enable_cpp_mangling" = "xyes" -then : - cpp_mangling=true - printf "%s\n" "#define WITH_CPP_MANGLING 1" >>confdefs.h - -else $as_nop - cpp_mangling=false -fi - -## No naked pointers - -if test x"$enable_naked_pointers" = "xno" -then : - naked_pointers=false - printf "%s\n" "#define NO_NAKED_POINTERS 1" >>confdefs.h - -else $as_nop - naked_pointers=true -fi - -if test x"$enable_naked_pointers_checker" = "xyes" -then : - if test x"$enable_naked_pointers" = "xno" -then : - as_fn_error $? "--enable-naked-pointers-checker and --disable-naked-pointers are incompatible" "$LINENO" 5 -fi - case "$arch","$system" in #( - amd64,linux|amd64,macosx \ - |amd64,openbsd|amd64,win64 \ - |amd64,freebsd|amd64,solaris \ - |arm64,linux|arm64,macosx) : - naked_pointers_checker=true - printf "%s\n" "#define NAKED_POINTERS_CHECKER 1" >>confdefs.h - ;; #( - *) : - as_fn_error $? "naked pointers checker not supported on this platform" "$LINENO" 5 - ;; #( - *) : - ;; -esac -else $as_nop - naked_pointers_checker=false -fi - -## Check for mmap support for huge pages and contiguous heap - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mmap supports huge pages" >&5 -printf %s "checking whether mmap supports huge pages... " >&6; } - if test "$cross_compiling" = yes -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no assumed" >&5 -printf "%s\n" "no assumed" >&6; } -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -#define huge_page_size (4 * 1024 * 1024) - -/* Test for the possible availability of huge pages. Answer yes - if the OS knows about huge pages, even if they are not available - on the build machine at configure time, because (on Linux) huge - pages can be activated and deactivated easily while the system - is running. -*/ - -int main (int argc, char *argv[]){ - void *block; - char *p; - int i, res; - block = mmap (NULL, huge_page_size, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, - -1, 0); - if (block == MAP_FAILED){ - block = mmap (NULL, huge_page_size, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, - -1, 0); - } - if (block == MAP_FAILED){ - perror ("mmap"); - return 3; - } - /*printf ("block = %p\n", block);*/ - p = (char *) block; - for (i = 0; i < huge_page_size; i += 4096){ - p[i] = (char) i; - } - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - printf "%s\n" "#define HAS_HUGE_PAGES 1" >>confdefs.h - - printf "%s\n" "#define HUGE_PAGE_SIZE (4 * 1024 * 1024)" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - - -# Unconditionally reserve 8 header bits in both runtime 4 and -# runtime 5, which is required for mixed block support. -printf "%s\n" "#define HEADER_RESERVED_BITS $reserved_header_bits" >>confdefs.h - -printf "%s\n" "#define PROFINFO_WIDTH $profinfo_width" >>confdefs.h - -if $profinfo -then : - printf "%s\n" "#define WITH_PROFINFO 1" >>confdefs.h - -fi - -# Only gcc supports -fno-partial-inlining -case $ocaml_cc_vendor in #( - gcc-*) : - no_partial_inlining_cflags="-fno-partial-inlining" ;; #( - *) : - no_partial_inlining_cflags="" ;; -esac - -printf "%s\n" "#define CUSTOM_OPS_STRUCT_SIZE $custom_ops_struct_size" >>confdefs.h - - -if test x"$enable_installing_bytecode_programs" = "xno" -then : - install_bytecode_programs=false -else $as_nop - install_bytecode_programs=true -fi - -if test x"$enable_installing_source_artifacts" = "xno" -then : - install_source_artifacts=false -else $as_nop - install_source_artifacts=true -fi - -if test x"$enable_stdlib_manpages" != "xno" -then : - build_libraries_manpages=true -else $as_nop - build_libraries_manpages=false -fi - -documentation_tool_cmd='' - -# Check whether --with-odoc was given. -if test ${with_odoc+y} -then : - withval=$with_odoc; case $withval in #( - yes) : - documentation_tool='odoc' ;; #( - no) : - documentation_tool='ocamldoc' ;; #( - *) : - documentation_tool_cmd="$withval" - documentation_tool='odoc' ;; -esac -else $as_nop - documentation_tool='ocamldoc' -fi - -if test "x$documentation_tool_cmd" = 'x' - documentation_tool_cmd="$documentation_tool" -then : - -fi - - - -case $enable_ocamltest,false in #( - yes,*|,true) : - build_ocamltest=true - ocamltest_target=ocamltest - ocamltest_opt_target=ocamltest.opt - ocamltest='ocamltest' - testsuite_tools='testsuite/tools/codegen testsuite/tools/expect' - optional_bytecode_tools="$optional_bytecode_tools $testsuite_tools" ;; #( - *) : - build_ocamltest=false - ocamltest='' ;; -esac - -if $build_ocamltest -then : - optional_libraries="$optional_libraries testsuite/lib/testing" - ocamltest_unix_mod="ocamltest/ocamltest_unix_${ocamltest_unix_impl}.ml" - ac_config_links="$ac_config_links ocamltest/ocamltest_unix.ml:${ocamltest_unix_mod}" - - for ac_prog in patdiff diff -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_prog_DIFF+y} -then : - printf %s "(cached) " >&6 -else $as_nop - if test -n "$DIFF"; then - ac_cv_prog_DIFF="$DIFF" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_prog_DIFF="$ac_prog" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -DIFF=$ac_cv_prog_DIFF -if test -n "$DIFF"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 -printf "%s\n" "$DIFF" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - test -n "$DIFF" && break -done -test -n "$DIFF" || DIFF="none" - - DIFF_FLAGS="" - flags="" - case $DIFF in #( - diff) : - flags="--strip-trailing-cr -u" ;; #( - none) : - as_fn_error $? "ocamltest requires a diff tool" "$LINENO" 5 ;; #( - *) : - ;; -esac - for flag in ${flags}; do - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $DIFF supports $flag" >&5 -printf %s "checking whether $DIFF supports $flag... " >&6; }; - if $DIFF $DIFF_FLAGS $flag $0 $0 > /dev/null 2>&1 -then : - DIFF_FLAGS="$DIFF_FLAGS $flag" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - done -fi - -flambda=false -flambda2=true - -if test x"$enable_flambda_invariants" = "xyes" -then : - flambda_invariants=true -else $as_nop - flambda_invariants=false -fi - -if test x"$enable_cmm_invariants" = "xyes" -then : - cmm_invariants=true -else $as_nop - cmm_invariants=false -fi - -if test x"$enable_flat_float_array" = "xno" -then : - flat_float_array=false -else $as_nop - printf "%s\n" "#define FLAT_FLOAT_ARRAY 1" >>confdefs.h - - flat_float_array=true -fi - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mmap supports MAP_STACK" >&5 -printf %s "checking whether mmap supports MAP_STACK... " >&6; } - if test "$cross_compiling" = yes -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no assumed" >&5 -printf "%s\n" "no assumed" >&6; } -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#include -#include -#include - -int main (int argc, char *argv[]){ - void *block; - block = mmap (NULL, 4096, PROT_READ | PROT_WRITE, - MAP_ANONYMOUS | MAP_PRIVATE | MAP_STACK, - -1, 0); - if (block == MAP_FAILED) - return 1; - return 0; -} - -_ACEOF -if ac_fn_c_try_run "$LINENO" -then : - has_mmap_map_stack=true - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - -if test x"$enable_mmap_map_stack" = "xyes" -then : - if test x"$has_mmap_map_stack" = "xtrue" -then : - case $target in #( - *-freebsd*) : - as_fn_error $? "mmap MAP_STACK not supported on FreeBSD" "$LINENO" 5 ;; #( - *) : - with_mmap_map_stack=true; - printf "%s\n" "#define USE_MMAP_MAP_STACK 1" >>confdefs.h - ;; -esac -else $as_nop - as_fn_error $? "mmap MAP_STACK requested but not found on $target" "$LINENO" 5 -fi - -else $as_nop - case $target in #( - *-openbsd*) : - with_mmap_map_stack=true; - printf "%s\n" "#define USE_MMAP_MAP_STACK 1" >>confdefs.h - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using MAP_STACK on OpenBSD due to stack checking" >&5 -printf "%s\n" "$as_me: using MAP_STACK on OpenBSD due to stack checking" >&6;} ;; #( - *) : - with_mmap_map_stack=false ;; -esac - -fi - -oc_native_compflags='' - -if test x"$enable_function_sections" = "xno" -then : - function_sections=false -else $as_nop - case $arch in #( - amd64|arm64) : - # not supported on arm32, see issue #9124. - case $target in #( - *-cygwin*|*-mingw*|*-windows|*-apple-darwin*) : - function_sections=false; - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: No support for function sections on $target." >&5 -printf "%s\n" "$as_me: No support for function sections on $target." >&6;} ;; #( - *) : - case $ocaml_cc_vendor in #( - gcc-0123-*|gcc-4-01234567) : - function_sections=false; - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Function sections are not - supported in GCC prior to version 4.8." >&5 -printf "%s\n" "$as_me: Function sections are not - supported in GCC prior to version 4.8." >&6;} ;; #( - clang-012-*|clang-3-01234) : - function_sections=false; - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Function sections are not supported - in Clang prior to version 3.5." >&5 -printf "%s\n" "$as_me: Function sections are not supported - in Clang prior to version 3.5." >&6;} ;; #( - gcc-*|clang-*) : - function_sections=true; - oc_native_compflags='-function-sections' - internal_cflags="$internal_cflags -ffunction-sections"; - printf "%s\n" "#define FUNCTION_SECTIONS 1" >>confdefs.h - ;; #( - *) : - function_sections=false; - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Function sections are not supported by - $ocaml_cc_vendor." >&5 -printf "%s\n" "$as_me: Function sections are not supported by - $ocaml_cc_vendor." >&6;} ;; -esac ;; -esac ;; #( - *) : - function_sections=false ;; -esac; - if test x"$function_sections" = "xfalse" -then : - if test x"$enable_function_sections" = "xyes" -then : - as_fn_error $? "Function sections are not supported." "$LINENO" 5 -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Disabling function sections." >&5 -printf "%s\n" "$as_me: Disabling function sections." >&6;} -fi -fi -fi - -case $arch in #( - amd64) : - case $target in #( - *-cygwin*|*-mingw*|*-windows) : - probes=false ;; #( - *) : - probes=true ;; #( - *) : - ;; -esac ;; #( - *) : - probes=false ;; #( - *) : - ;; -esac - -if test x"$probes" = "xfalse" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Disabling tracing probes: no support on $target." >&5 -printf "%s\n" "$as_me: Disabling tracing probes: no support on $target." >&6;} -fi - -if test x"$with_afl" = "xyes" -then : - afl=true -else $as_nop - afl=false -fi - -# Enable debugging support -# TODO: add a --disable-debug-info configure option that disables debugging -# info for both C and OCaml -if test "$ccomptype" != "msvc" -then : - internal_cflags="-g $internal_cflags" -fi - -if test x"$enable_stack_allocation" = "xno" -then : - stack_allocation=false -else $as_nop - if $arch64 -then : - printf "%s\n" "#define STACK_ALLOCATION 1" >>confdefs.h - - stack_allocation=true -else $as_nop - as_fn_error $? "Stack allocation is only supported on 64-bit platforms. \ -Please pass '--enable-stack-allocation=no'." "$LINENO" 5 -fi -fi - -if test x"$enable_poll_insertion" = "xyes" -then : - printf "%s\n" "#define POLL_INSERTION 1" >>confdefs.h - - poll_insertion=true -else $as_nop - poll_insertion=false -fi - -oc_cflags="$common_cflags $internal_cflags" -oc_cppflags="$common_cppflags $internal_cppflags" -ocamlc_cflags="$ocamlc_cflags $common_cflags $sharedlib_cflags $CFLAGS" -ocamlc_cppflags="$common_cppflags $CPPFLAGS" - -case $host in #( - *-*-mingw32*) : - cclibs="$cclibs -lole32 -luuid -lversion -lshlwapi -lsynchronization" ;; #( - *-pc-windows) : - # For whatever reason, flexlink includes -ladvapi32 and -lshell32 for - # mingw-w64, but doesn't include advapi32.lib and shell32.lib for MSVC - cclibs="$cclibs ole32.lib uuid.lib advapi32.lib shell32.lib version.lib \ -shlwapi.lib synchronization.lib" ;; #( - *) : - ;; -esac - - - -if $tsan -then : - cclibs="$cclibs -fsanitize=thread" -fi - -if test x"$libdir" = x'${exec_prefix}/lib' -then : - libdir="$libdir"/ocaml -fi - -if test x"$mandir" = x'${datarootdir}/man' -then : - mandir='${prefix}/man' -fi - -case $host in #( - *-*-mingw32*|*-pc-windows) : - case $WINDOWS_UNICODE_MODE in #( - ansi) : - windows_unicode=0 ;; #( - compatible|"") : - windows_unicode=1 ;; #( - *) : - as_fn_error $? "unexpected windows unicode mode" "$LINENO" 5 ;; -esac ;; #( - *) : - windows_unicode=0 ;; -esac - -# Define default prefix correctly for the different Windows ports -if test x"$prefix" = "xNONE" -then : - case $host in #( - i686-w64-mingw32*) : - prefix='C:/ocamlmgw' ;; #( - x86_64-w64-mingw32*) : - prefix='C:/ocamlmgw64' ;; #( - i686-pc-windows) : - prefix='C:/ocamlms' ;; #( - x86_64-pc-windows) : - prefix='C:/ocamlms64' ;; #( - *) : - ;; -esac -else $as_nop - if test x"$unix_or_win32" = "xwin32" \ - && test "$host_vendor-$host_os" != "$build_vendor-$build_os" -then : - case $build in #( - *-pc-cygwin) : - prefix="$(LC_ALL=C.UTF-8 cygpath -m "$prefix")" ;; #( - *) : - ;; -esac -fi -fi - -# Define a few macros that were defined in config/m-nt.h -# but whose value is not guessed properly by configure -# (all this should be understood and fixed) -case $host in #( - *-*-mingw32*) : - printf "%s\n" "#define HAS_BROKEN_PRINTF 1" >>confdefs.h - - printf "%s\n" "#define HAS_STRERROR 1" >>confdefs.h - - printf "%s\n" "#define HAS_IPV6 1" >>confdefs.h - - printf "%s\n" "#define HAS_NICE 1" >>confdefs.h - ;; #( - *-pc-windows) : - printf "%s\n" "#define HAS_BROKEN_PRINTF 1" >>confdefs.h - - printf "%s\n" "#define HAS_STRERROR 1" >>confdefs.h - - printf "%s\n" "#define HAS_IPV6 1" >>confdefs.h - - printf "%s\n" "#define HAS_NICE 1" >>confdefs.h - ;; #( - *-*-solaris*) : - # This is required as otherwise floats are printed - # as "Infinity" and "Inf" instead of the expected "inf" - printf "%s\n" "#define HAS_BROKEN_PRINTF 1" >>confdefs.h - ;; #( - *) : - ;; -esac - -# Do not permanently cache the result of flexdll.h -unset ac_cv_header_flexdll_h - -# Evaluate install directories -# (this is needed for the OCaml configuration module) - - -# Just before config.status is generated, determine the final values for MKEXE, -# MKDLL, MKMAINDLL and MKEXE_VIA_CC. The final variables controlling these are: -# $mkexe - the linking command and munged CFLAGS + any extra flexlink flags -# $mkexe_exp: same as above but expanded -# $mkdll - the full linking command for DLLs -# $mkdll_exp: same as above but expanded -# $mkmaindll - the full linking command for main program in DLL -# $oc_ldflags $oc_dll_ldflags are handled as $(OC_LDFLAGS) and -# $(OC_DLL_LDFLAGS) and can be overridden in the build. - - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -printf "%s\n" "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - - # Go through ac_subst_vars and put all the values to be substituted in - # $all_values. - QS='' - all_values='' - for name in $ac_subst_vars; do - eval "value=\$${name}" - all_values="$all_values $value" - done - - # Keep adding 'o' to $QS until |$QS} doesn't appear in any substitution. - test_string='' - while test "x${test_string}" != "x${all_values}"; do - test_string="$all_values" - eval "test_string=\"\${test_string##*\|${QS}\}}\"" - if test "x${test_string}" != "x${all_values}"; then - QS="o${QS}" - fi - done - -cclibs="$cclibs $mathlib $DLLIBS $PTHREAD_LIBS" - - saved_exec_prefix="$exec_prefix" - saved_prefix="$prefix" - if test "x$prefix" = "xNONE" -then : - prefix="$ac_default_prefix" -fi - if test "x$exec_prefix" = "xNONE" -then : - exec_prefix="$prefix" -fi - eval "exec_prefix=\"$exec_prefix\"" - eval "ocaml_bindir=\"$bindir\"" - eval "ocaml_libdir=\"$libdir\"" - if test x"$target_bindir" = 'x' -then : - target_bindir="$ocaml_bindir" -fi - if test x"$target_launch_method" = 'x' -then : - target_launch_method="$launch_method" -fi - prefix="$saved_prefix" - exec_prefix="$saved_exec_prefix" - - # Construct $mkexe - mkexe="$mkexe_cmd" - mkexe_exp="$mkexe_cmd_exp" - if test -n "$mkexe_cflags" -then : - mkexe="$mkexe $mkexe_cflags" - mkexe_exp="$mkexe_exp $common_cflags $CFLAGS" -fi - if test -n "$mkexe_extra_flags" -then : - mkexe="$mkexe $mkexe_extra_flags" - mkexe_exp="$mkexe_exp $mkexe_extra_flags" -fi - # If $mkexe_ldflags_prefix is given, apply it to $oc_ldflags and $oc_dllflags - # and ensure that LDFLAGS is passed using it. This is used for flexlink. where - # linker flags need to be prefixed with -link. - if test -n "$mkexe_ldflags_prefix" -then : - - if test -n "$mkexedebugflag" -then : - mkexedebugflag="${mkexe_ldflags_prefix}${mkexedebugflag}" -fi - mkdll_ldflags="" - if test -n "${LDFLAGS}" -then : - for flag in ${LDFLAGS}; do - mkdll_ldflags="${mkdll_ldflags} ${mkexe_ldflags_prefix}${flag}" - done - mkdll_ldflags_exp="$mkdll_ldflags" -fi - tmp_oc_ldflags="" - if test -n "${oc_ldflags}" -then : - for flag in ${oc_ldflags}; do - tmp_oc_ldflags="$tmp_oc_ldflags ${mkexe_ldflags_prefix}${flag}" - done - mkdll_ldflags_exp="$mkdll_ldflags_exp $tmp_oc_ldflags" -fi - tmp_oc_dll_ldflags="" - if test -n "${oc_dll_ldflags}" -then : - for flag in ${oc_dll_ldflags}; do - tmp_oc_dll_ldflags="$tmp_oc_dll_ldflags ${mkexe_ldflags_prefix}${flag}" - done - mkdll_ldflags_exp="$mkdll_ldflags_exp $tmp_oc_dll_ldflags" -fi - mkexe_ldflags=\ -"\$(addprefix ${mkexe_ldflags_prefix},\$(OC_LDFLAGS))${mkdll_ldflags}" - mkexe_ldflags_exp=\ -"${tmp_oc_ldflags} ${mkdll_ldflags}" - - mkdll_ldflags="\$(addprefix ${mkexe_ldflags_prefix},\$(OC_DLL_LDFLAGS)) \ -${mkdll_ldflags}" - -else $as_nop - - mkdll_ldflags='$(OC_DLL_LDFLAGS) $(LDFLAGS)' - mkdll_ldflags_exp="${oc_dll_ldflags}" - if test -n ${LDFLAGS} -then : - mkdll_ldflags_exp="$mkdll_ldflags_exp $LDFLAGS" -fi - mkexe_ldflags="\$(OC_LDFLAGS) \$(LDFLAGS)" - mkexe_ldflags_exp="${oc_ldflags} ${LDFLAGS}" - -fi - mkexe="$mkexe $mkexe_ldflags" - mkexe_exp="$mkexe_exp $mkexe_ldflags_exp" - mkdll="$mkdll $mkdll_ldflags" - mkdll_exp="$mkdll_exp $mkdll_ldflags_exp" - mkmaindll="$mkmaindll $mkdll_ldflags_exp" - mkmaindll_exp="$mkmaindll_exp $mkdll_ldflags_exp" - # Do similarly with $mkexe_via_cc_ldflags_prefix, but this is only needed for - # the msvc ports. - if test -n "$mkexe_via_cc_ldflags_prefix" -then : - - mkexe_via_cc_ldflags=\ -"\$(addprefix ${mkexe_via_cc_ldflags_prefix},\$(OC_LDFLAGS) \$(LDFLAGS))" - -else $as_nop - - mkexe_via_cc_ldflags='$(OC_LDFLAGS) $(LDFLAGS)' - -fi - # cl requires linker flags after the objects. - if test "$ccomptype" = 'msvc' -then : - mkexe_via_cc_ldflags=\ -"\$(OUTPUTEXE)\$(1) \$(2) $mkexe_via_cc_ldflags" -else $as_nop - mkexe_via_cc_ldflags=\ -"$mkexe_via_cc_ldflags \$(OUTPUTEXE)\$(1) \$(2)" -fi - if test -n "$mkexe_via_cc_extra_cmd" -then : - mkexe_via_cc_ldflags="$mkexe_via_cc_ldflags $mkexe_via_cc_extra_cmd" -fi - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: -if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - - -# Reset variables that may have inherited troublesome values from -# the environment. - -# IFS needs to be set, to space, tab, and newline, in precisely that order. -# (If _AS_PATH_WALK were called with IFS unset, it would have the -# side effect of setting IFS to empty, thus disabling word splitting.) -# Quoting is to prevent editors from complaining about space-tab. -as_nl=' -' -export as_nl -IFS=" "" $as_nl" - -PS1='$ ' -PS2='> ' -PS4='+ ' - -# Ensure predictable behavior from utilities with locale-dependent output. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# We cannot yet rely on "unset" to work, but we need these variables -# to be unset--not just set to an empty or harmless value--now, to -# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct -# also avoids known problems related to "unset" and subshell syntax -# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). -for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH -do eval test \${$as_var+y} \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done - -# Ensure that fds 0, 1, and 2 are open. -if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi -if (exec 3>&2) ; then :; else exec 2>/dev/null; fi - -# The user is always right. -if ${PATH_SEPARATOR+false} :; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - test -r "$as_dir$0" && as_myself=$as_dir$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - printf "%s\n" "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null -then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else $as_nop - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null -then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else $as_nop - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - -# Determine whether it's possible to make 'echo' print without a newline. -# These variables are no longer used directly by Autoconf, but are AC_SUBSTed -# for compatibility with existing Makefiles. -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -# For backward compatibility with old third-party macros, we provide -# the shell variables $as_echo and $as_echo_n. New code should use -# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. -as_echo='printf %s\n' -as_echo_n='printf %s' - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by OCaml $as_me 5.2.0+jst, which was -generated by GNU Autoconf 2.71. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" -config_links="$ac_config_links" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration links: -$config_links - -Configuration commands: -$config_commands - -Report bugs to . -OCaml home page: ." - -_ACEOF -ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` -ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config='$ac_cs_config_escaped' -ac_cs_version="\\ -OCaml config.status 5.2.0+jst -configured by $0, generated by GNU Autoconf 2.71, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2021 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - printf "%s\n" "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - printf "%s\n" "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - printf "%s\n" "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - printf "%s\n" "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -export CYGWIN="\$CYGWIN\${CYGWIN:+ }winsymlinks:nativestrict" - export MSYS="\$MSYS\${MSYS:+ }winsymlinks:nativestrict" - - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -sed_quote_subst='$sed_quote_subst' -double_quote_subst='$double_quote_subst' -delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' -macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' -enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' -pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' -shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' -SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' -ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' -PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' -host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' -host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' -host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' -build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' -build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' -build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' -SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' -Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' -GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' -EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' -FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' -LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' -NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' -LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' -ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' -exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' -lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' -lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' -lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' -reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' -file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' -want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' -DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' -sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' -AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' -archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' -STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' -RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' -lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' -CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' -compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' -GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' -lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' -nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' -lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' -lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' -objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' -need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' -MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' -LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' -OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' -libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' -module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' -postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' -need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' -version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' -runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' -libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' -soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' -install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' -finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' -configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' -configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' -old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' -striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' - -LTCC='$LTCC' -LTCFLAGS='$LTCFLAGS' -compiler='$compiler_DEFAULT' - -# A function that is used when there is no print builtin or printf. -func_fallback_echo () -{ - eval 'cat <<_LTECHO_EOF -\$1 -_LTECHO_EOF' -} - -# Quote evaled strings. -for var in SHELL \ -ECHO \ -PATH_SEPARATOR \ -SED \ -GREP \ -EGREP \ -FGREP \ -LD \ -NM \ -LN_S \ -lt_SP2NL \ -lt_NL2SP \ -reload_flag \ -OBJDUMP \ -deplibs_check_method \ -file_magic_cmd \ -file_magic_glob \ -want_nocaseglob \ -DLLTOOL \ -sharedlib_from_linklib_cmd \ -AR \ -AR_FLAGS \ -archiver_list_spec \ -STRIP \ -RANLIB \ -CC \ -CFLAGS \ -compiler \ -lt_cv_sys_global_symbol_pipe \ -lt_cv_sys_global_symbol_to_cdecl \ -lt_cv_sys_global_symbol_to_import \ -lt_cv_sys_global_symbol_to_c_name_address \ -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -lt_cv_nm_interface \ -nm_file_list_spec \ -lt_cv_truncate_bin \ -lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_pic \ -lt_prog_compiler_wl \ -lt_prog_compiler_static \ -lt_cv_prog_compiler_c_o \ -need_locks \ -MANIFEST_TOOL \ -DSYMUTIL \ -NMEDIT \ -LIPO \ -OTOOL \ -OTOOL64 \ -shrext_cmds \ -export_dynamic_flag_spec \ -whole_archive_flag_spec \ -compiler_needs_object \ -with_gnu_ld \ -allow_undefined_flag \ -no_undefined_flag \ -hardcode_libdir_flag_spec \ -hardcode_libdir_separator \ -exclude_expsyms \ -include_expsyms \ -file_list_spec \ -variables_saved_for_relink \ -libname_spec \ -library_names_spec \ -soname_spec \ -install_override_mode \ -finish_eval \ -old_striplib \ -striplib; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -# Double-quote double-evaled strings. -for var in reload_cmds \ -old_postinstall_cmds \ -old_postuninstall_cmds \ -old_archive_cmds \ -extract_expsyms_cmds \ -old_archive_from_new_cmds \ -old_archive_from_expsyms_cmds \ -archive_cmds \ -archive_expsym_cmds \ -module_cmds \ -module_expsym_cmds \ -export_symbols_cmds \ -prelink_cmds \ -postlink_cmds \ -postinstall_cmds \ -postuninstall_cmds \ -finish_cmds \ -sys_lib_search_path_spec \ -configure_time_dlsearch_path \ -configure_time_lt_sys_library_path; do - case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in - *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes - ;; - *) - eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" - ;; - esac -done - -ac_aux_dir='$ac_aux_dir' - -# See if we are running on zsh, and set the options that allow our -# commands through without removal of \ escapes INIT. -if test -n "\${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST -fi - - - PACKAGE='$PACKAGE' - VERSION='$VERSION' - RM='$RM' - ofile='$ofile' - - - - launch_method='$(echo "$launch_method" | sed -e "s/'/'\"'\"'/g")' - target_launch_method=\ -'$(echo "$target_launch_method" | sed -e "s/'/'\"'\"'/g")' - ocaml_bindir='$(echo "$ocaml_bindir" | sed -e "s/'/'\"'\"'/g")' - target_bindir='$(echo "$target_bindir" | sed -e "s/'/'\"'\"'/g")' - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "Makefile.build_config") CONFIG_FILES="$CONFIG_FILES Makefile.build_config" ;; - "Makefile.config") CONFIG_FILES="$CONFIG_FILES Makefile.config" ;; - "stdlib/sys.ml") CONFIG_FILES="$CONFIG_FILES stdlib/sys.ml" ;; - "manual/src/version.tex") CONFIG_FILES="$CONFIG_FILES manual/src/version.tex" ;; - "manual/src/html_processing/src/common.ml") CONFIG_FILES="$CONFIG_FILES manual/src/html_processing/src/common.ml" ;; - "ocamltest/ocamltest_config.ml") CONFIG_FILES="$CONFIG_FILES ocamltest/ocamltest_config.ml" ;; - "utils/config.common.ml") CONFIG_FILES="$CONFIG_FILES utils/config.common.ml" ;; - "utils/config.generated.ml") CONFIG_FILES="$CONFIG_FILES utils/config.generated.ml" ;; - "tools/eventlog_metadata") CONFIG_FILES="$CONFIG_FILES tools/eventlog_metadata" ;; - "runtime/caml/m.h") CONFIG_HEADERS="$CONFIG_HEADERS runtime/caml/m.h" ;; - "runtime/caml/s.h") CONFIG_HEADERS="$CONFIG_HEADERS runtime/caml/s.h" ;; - "runtime/caml/exec.h") CONFIG_HEADERS="$CONFIG_HEADERS runtime/caml/exec.h" ;; - "runtime/caml/version.h") CONFIG_HEADERS="$CONFIG_HEADERS runtime/caml/version.h" ;; - "runtime4/caml/m.h") CONFIG_HEADERS="$CONFIG_HEADERS runtime4/caml/m.h" ;; - "runtime4/caml/s.h") CONFIG_HEADERS="$CONFIG_HEADERS runtime4/caml/s.h" ;; - "runtime4/caml/exec.h") CONFIG_HEADERS="$CONFIG_HEADERS runtime4/caml/exec.h" ;; - "runtime4/caml/version.h") CONFIG_HEADERS="$CONFIG_HEADERS runtime4/caml/version.h" ;; - "compilerlibs/META") CONFIG_FILES="$CONFIG_FILES compilerlibs/META" ;; - "otherlibs/dynlink/META") CONFIG_FILES="$CONFIG_FILES otherlibs/dynlink/META" ;; - "otherlibs/runtime_events/META") CONFIG_FILES="$CONFIG_FILES otherlibs/runtime_events/META" ;; - "stdlib/META") CONFIG_FILES="$CONFIG_FILES stdlib/META" ;; - "native-symlinks") CONFIG_COMMANDS="$CONFIG_COMMANDS native-symlinks" ;; - "ocamldoc/META") CONFIG_FILES="$CONFIG_FILES ocamldoc/META" ;; - "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; - "otherlibs/unix/META") CONFIG_FILES="$CONFIG_FILES otherlibs/unix/META" ;; - "otherlibs/unix/unix.ml") CONFIG_LINKS="$CONFIG_LINKS otherlibs/unix/unix.ml:otherlibs/unix/unix_${unix_or_win32}.ml" ;; - "otherlibs/str/META") CONFIG_FILES="$CONFIG_FILES otherlibs/str/META" ;; - "shebang") CONFIG_COMMANDS="$CONFIG_COMMANDS shebang" ;; - "otherlibs/systhreads/META") CONFIG_FILES="$CONFIG_FILES otherlibs/systhreads/META" ;; - "otherlibs/systhreads4/META") CONFIG_FILES="$CONFIG_FILES otherlibs/systhreads4/META" ;; - "ocamltest/ocamltest_unix.ml") CONFIG_LINKS="$CONFIG_LINKS ocamltest/ocamltest_unix.ml:${ocamltest_unix_mod}" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files - test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers - test ${CONFIG_LINKS+y} || CONFIG_LINKS=$config_links - test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -printf "%s\n" "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`printf "%s\n" "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - printf "%s\n" "/* $configure_input */" >&1 \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - printf "%s\n" "/* $configure_input */" >&1 \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi - ;; - :L) - # - # CONFIG_LINK - # - - if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then - : - else - # Prefer the file from the source tree if names are identical. - if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then - ac_source=$srcdir/$ac_source - fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 -printf "%s\n" "$as_me: linking $ac_source to $ac_file" >&6;} - - if test ! -r "$ac_source"; then - as_fn_error $? "$ac_source: file not found" "$LINENO" 5 - fi - rm -f "$ac_file" - - # Try a relative symlink, then a hard link, then a copy. - case $ac_source in - [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; - *) ac_rel_source=$ac_top_build_prefix$ac_source ;; - esac - ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || - ln "$ac_source" "$ac_file" 2>/dev/null || - cp -p "$ac_source" "$ac_file" || - as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 - fi - ;; - :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -printf "%s\n" "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "libtool":C) - - # See if we are running on zsh, and set the options that allow our - # commands through without removal of \ escapes. - if test -n "${ZSH_VERSION+set}"; then - setopt NO_GLOB_SUBST - fi - - cfgfile=${ofile}T - trap "$RM \"$cfgfile\"; exit 1" 1 2 15 - $RM "$cfgfile" - - cat <<_LT_EOF >> "$cfgfile" -#! $SHELL -# Generated automatically by $as_me ($PACKAGE) $VERSION -# NOTE: Changes made to this file will be lost: look at ltmain.sh. - -# Provide generalized library-building support services. -# Written by Gordon Matzigkeit, 1996 - -# Copyright (C) 2014 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# GNU Libtool is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of of the License, or -# (at your option) any later version. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program or library that is built -# using GNU Libtool, you may include this file under the same -# distribution terms that you use for the rest of that program. -# -# GNU Libtool is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - - -# The names of the tagged configurations supported by this script. -available_tags='' - -# Configured defaults for sys_lib_dlsearch_path munging. -: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} - -# ### BEGIN LIBTOOL CONFIG - -# Which release of libtool.m4 was used? -macro_version=$macro_version -macro_revision=$macro_revision - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# What type of objects to build. -pic_mode=$pic_mode - -# Whether or not to optimize for fast installation. -fast_install=$enable_fast_install - -# Shared archive member basename,for filename based shared library versioning on AIX. -shared_archive_member_spec=$shared_archive_member_spec - -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL - -# An echo program that protects backslashes. -ECHO=$lt_ECHO - -# The PATH separator for the build system. -PATH_SEPARATOR=$lt_PATH_SEPARATOR - -# The host system. -host_alias=$host_alias -host=$host -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# A sed program that does not truncate output. -SED=$lt_SED - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="\$SED -e 1s/^X//" - -# A grep program that handles long lines. -GREP=$lt_GREP - -# An ERE matcher. -EGREP=$lt_EGREP - -# A literal string matcher. -FGREP=$lt_FGREP - -# A BSD- or MS-compatible name lister. -NM=$lt_NM - -# Whether we need soft or hard links. -LN_S=$lt_LN_S - -# What is the maximum length of a command? -max_cmd_len=$max_cmd_len - -# Object file suffix (normally "o"). -objext=$ac_objext - -# Executable file suffix (normally ""). -exeext=$exeext - -# whether the shell understands "unset". -lt_unset=$lt_unset - -# turn spaces into newlines. -SP2NL=$lt_lt_SP2NL - -# turn newlines into spaces. -NL2SP=$lt_lt_NL2SP - -# convert \$build file names to \$host format. -to_host_file_cmd=$lt_cv_to_host_file_cmd - -# convert \$build files to toolchain format. -to_tool_file_cmd=$lt_cv_to_tool_file_cmd - -# An object symbol dumper. -OBJDUMP=$lt_OBJDUMP - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$lt_deplibs_check_method - -# Command to use when deplibs_check_method = "file_magic". -file_magic_cmd=$lt_file_magic_cmd - -# How to find potential files when deplibs_check_method = "file_magic". -file_magic_glob=$lt_file_magic_glob - -# Find potential files using nocaseglob when deplibs_check_method = "file_magic". -want_nocaseglob=$lt_want_nocaseglob - -# DLL creation program. -DLLTOOL=$lt_DLLTOOL - -# Command to associate shared and link libraries. -sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd - -# The archiver. -AR=$lt_AR - -# Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS - -# How to feed a file listing to the archiver. -archiver_list_spec=$lt_archiver_list_spec - -# A symbol stripping program. -STRIP=$lt_STRIP - -# Commands used to install an old-style archive. -RANLIB=$lt_RANLIB -old_postinstall_cmds=$lt_old_postinstall_cmds -old_postuninstall_cmds=$lt_old_postuninstall_cmds - -# Whether to use a lock for old archive extraction. -lock_old_archive_extraction=$lock_old_archive_extraction - -# A C compiler. -LTCC=$lt_CC - -# LTCC compiler flags. -LTCFLAGS=$lt_CFLAGS - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe - -# Transform the output of nm in a proper C declaration. -global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl - -# Transform the output of nm into a list of symbols to manually relocate. -global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import - -# Transform the output of nm in a C name address pair. -global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address - -# Transform the output of nm in a C name address pair when lib prefix is needed. -global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix - -# The name lister interface. -nm_interface=$lt_lt_cv_nm_interface - -# Specify filename containing input files for \$NM. -nm_file_list_spec=$lt_nm_file_list_spec - -# The root where to search for dependent libraries,and where our libraries should be installed. -lt_sysroot=$lt_sysroot - -# Command to truncate a binary pipe. -lt_truncate_bin=$lt_lt_cv_truncate_bin - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# Used to examine libraries when file_magic_cmd begins with "file". -MAGIC_CMD=$MAGIC_CMD - -# Must we lock files when doing compilation? -need_locks=$lt_need_locks - -# Manifest tool. -MANIFEST_TOOL=$lt_MANIFEST_TOOL - -# Tool to manipulate archived DWARF debug symbol files on Mac OS X. -DSYMUTIL=$lt_DSYMUTIL - -# Tool to change global to local symbols on Mac OS X. -NMEDIT=$lt_NMEDIT - -# Tool to manipulate fat objects and archives on Mac OS X. -LIPO=$lt_LIPO - -# ldd/readelf like tool for Mach-O binaries on Mac OS X. -OTOOL=$lt_OTOOL - -# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. -OTOOL64=$lt_OTOOL64 - -# Old archive suffix (normally "a"). -libext=$libext - -# Shared library suffix (normally ".so"). -shrext_cmds=$lt_shrext_cmds - -# The commands to extract the exported symbol list from a shared archive. -extract_expsyms_cmds=$lt_extract_expsyms_cmds - -# Variables whose values should be saved in libtool wrapper scripts and -# restored at link time. -variables_saved_for_relink=$lt_variables_saved_for_relink - -# Do we need the "lib" prefix for modules? -need_lib_prefix=$need_lib_prefix - -# Do we need a version for libraries? -need_version=$need_version - -# Library versioning type. -version_type=$version_type - -# Shared library runtime path variable. -runpath_var=$runpath_var - -# Shared library path variable. -shlibpath_var=$shlibpath_var - -# Is shlibpath searched before the hard-coded library search path? -shlibpath_overrides_runpath=$shlibpath_overrides_runpath - -# Format of library name prefix. -libname_spec=$lt_libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME -library_names_spec=$lt_library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$lt_soname_spec - -# Permission mode override for installation of shared libraries. -install_override_mode=$lt_install_override_mode - -# Command to use after installation of a shared archive. -postinstall_cmds=$lt_postinstall_cmds - -# Command to use after uninstallation of a shared archive. -postuninstall_cmds=$lt_postuninstall_cmds - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$lt_finish_cmds - -# As "finish_cmds", except a single script fragment to be evaled but -# not shown. -finish_eval=$lt_finish_eval - -# Whether we should hardcode library paths into libraries. -hardcode_into_libs=$hardcode_into_libs - -# Compile-time system search path for libraries. -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec - -# Detected run-time system search path for libraries. -sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path - -# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. -configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path - -# Whether dlopen is supported. -dlopen_support=$enable_dlopen - -# Whether dlopen of programs is supported. -dlopen_self=$enable_dlopen_self - -# Whether dlopen of statically linked programs is supported. -dlopen_self_static=$enable_dlopen_self_static - -# Commands to strip libraries. -old_striplib=$lt_old_striplib -striplib=$lt_striplib - - -# The linker used to build libraries. -LD=$lt_LD - -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds - -# Commands used to build an old-style archive. -old_archive_cmds=$lt_old_archive_cmds - -# A language specific compiler. -CC=$lt_compiler - -# Is the compiler the GNU compiler? -with_gcc=$GCC - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag - -# Additional compiler flags for building library objects. -pic_flag=$lt_lt_prog_compiler_pic - -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - -# Compiler flag to prevent dynamic linking. -link_static_flag=$lt_lt_prog_compiler_static - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$lt_lt_cv_prog_compiler_c_o - -# Whether or not to add -lc for building shared libraries. -build_libtool_need_lc=$archive_cmds_need_lc - -# Whether or not to disallow shared libs when runtime libs are static. -allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$lt_export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$lt_whole_archive_flag_spec - -# Whether the compiler copes with passing no objects directly. -compiler_needs_object=$lt_compiler_needs_object - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$lt_old_archive_from_new_cmds - -# Create a temporary old-style archive to link instead of a shared archive. -old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds - -# Commands used to build a shared archive. -archive_cmds=$lt_archive_cmds -archive_expsym_cmds=$lt_archive_expsym_cmds - -# Commands used to build a loadable module if different from building -# a shared archive. -module_cmds=$lt_module_cmds -module_expsym_cmds=$lt_module_expsym_cmds - -# Whether we are building with GNU ld or not. -with_gnu_ld=$lt_with_gnu_ld - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$lt_allow_undefined_flag - -# Flag that enforces no undefined symbols. -no_undefined_flag=$lt_no_undefined_flag - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist -hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec - -# Whether we need a single "-rpath" flag with a separated argument. -hardcode_libdir_separator=$lt_hardcode_libdir_separator - -# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes -# DIR into the resulting binary. -hardcode_direct=$hardcode_direct - -# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes -# DIR into the resulting binary and the resulting library dependency is -# "absolute",i.e impossible to change by setting \$shlibpath_var if the -# library is relocated. -hardcode_direct_absolute=$hardcode_direct_absolute - -# Set to "yes" if using the -LDIR flag during linking hardcodes DIR -# into the resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR -# into the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# Set to "yes" if building a shared library automatically hardcodes DIR -# into the library and all subsequent libraries and executables linked -# against it. -hardcode_automatic=$hardcode_automatic - -# Set to yes if linker adds runtime paths of dependent libraries -# to runtime path list. -inherit_rpath=$inherit_rpath - -# Whether libtool must link a program against all its dependency libraries. -link_all_deplibs=$link_all_deplibs - -# Set to "yes" if exported symbols are required. -always_export_symbols=$always_export_symbols - -# The commands to list exported symbols. -export_symbols_cmds=$lt_export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$lt_exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$lt_include_expsyms - -# Commands necessary for linking programs (against libraries) with templates. -prelink_cmds=$lt_prelink_cmds - -# Commands necessary for finishing linking programs. -postlink_cmds=$lt_postlink_cmds - -# Specify filename containing input files. -file_list_spec=$lt_file_list_spec - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# ### END LIBTOOL CONFIG - -_LT_EOF - - cat <<'_LT_EOF' >> "$cfgfile" - -# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE - -# func_munge_path_list VARIABLE PATH -# ----------------------------------- -# VARIABLE is name of variable containing _space_ separated list of -# directories to be munged by the contents of PATH, which is string -# having a format: -# "DIR[:DIR]:" -# string "DIR[ DIR]" will be prepended to VARIABLE -# ":DIR[:DIR]" -# string "DIR[ DIR]" will be appended to VARIABLE -# "DIRP[:DIRP]::[DIRA:]DIRA" -# string "DIRP[ DIRP]" will be prepended to VARIABLE and string -# "DIRA[ DIRA]" will be appended to VARIABLE -# "DIR[:DIR]" -# VARIABLE will be replaced by "DIR[ DIR]" -func_munge_path_list () -{ - case x$2 in - x) - ;; - *:) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" - ;; - x:*) - eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" - ;; - *::*) - eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" - eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" - ;; - *) - eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" - ;; - esac -} - - -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -func_cc_basename () -{ - for cc_temp in $*""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac - done - func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` -} - - -# ### END FUNCTIONS SHARED WITH CONFIGURE - -_LT_EOF - - case $host_os in - aix3*) - cat <<\_LT_EOF >> "$cfgfile" -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test set != "${COLLECT_NAMES+set}"; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -_LT_EOF - ;; - esac - - - -ltmain=$ac_aux_dir/ltmain.sh - - - # We use sed instead of cat because bash on DJGPP gets confused if - # if finds mixed CR/LF and LF-only lines. Since sed operates in - # text mode, it properly converts lines to CR/LF. This bash problem - # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || - (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") - chmod +x "$ofile" - - ;; - "shebang":C) printf '%s\n%s\000\n' "$launch_method" "$ocaml_bindir" \ - > stdlib/runtime.info - printf '%s\n%s\000\n' "$target_launch_method" "$target_bindir" \ - > stdlib/target_runtime.info ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - - diff --git a/upstream/ocaml_flambda/file_formats/cmi_format.ml b/upstream/ocaml_flambda/file_formats/cmi_format.ml index 996e014ba..929ce526a 100644 --- a/upstream/ocaml_flambda/file_formats/cmi_format.ml +++ b/upstream/ocaml_flambda/file_formats/cmi_format.ml @@ -63,15 +63,17 @@ type flags = pers_flags list type header = { header_name : Compilation_unit.Name.t; header_kind : kind; + header_globals : Global_module.t array; header_sign : Serialized.signature; - header_params : Global_module.Name.t list; + header_params : Global_module.t list; } type 'sg cmi_infos_generic = { cmi_name : Compilation_unit.Name.t; cmi_kind : kind; + cmi_globals : Global_module.t array; cmi_sign : 'sg; - cmi_params : Global_module.Name.t list; + cmi_params : Global_module.t list; cmi_crcs : crcs; cmi_flags : flags; } @@ -125,6 +127,7 @@ let input_cmi_lazy ic = let { header_name = name; header_kind = kind; + header_globals = globals; header_sign = sign; header_params = params; } = (input_value ic : header) in @@ -134,6 +137,7 @@ let input_cmi_lazy ic = { cmi_name = name; cmi_kind = kind; + cmi_globals = globals; cmi_sign = deserialize data sign; cmi_params = params; cmi_crcs = crcs; @@ -192,6 +196,7 @@ let output_cmi filename oc cmi = { header_name = cmi.cmi_name; header_kind = cmi.cmi_kind; + header_globals = cmi.cmi_globals; header_sign = sign; header_params = cmi.cmi_params; }; diff --git a/upstream/ocaml_flambda/file_formats/cmi_format.mli b/upstream/ocaml_flambda/file_formats/cmi_format.mli index 590f7233d..c5de4ad82 100644 --- a/upstream/ocaml_flambda/file_formats/cmi_format.mli +++ b/upstream/ocaml_flambda/file_formats/cmi_format.mli @@ -32,8 +32,9 @@ type kind = type 'sg cmi_infos_generic = { cmi_name : Compilation_unit.Name.t; cmi_kind : kind; + cmi_globals : Global_module.t array; cmi_sign : 'sg; - cmi_params : Global_module.Name.t list; + cmi_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) cmi_crcs : Import_info.t array; cmi_flags : pers_flags list; } diff --git a/upstream/ocaml_flambda/file_formats/cmt_format.ml b/upstream/ocaml_flambda/file_formats/cmt_format.ml index 9e4f77d33..c4033a678 100644 --- a/upstream/ocaml_flambda/file_formats/cmt_format.ml +++ b/upstream/ocaml_flambda/file_formats/cmt_format.ml @@ -185,7 +185,7 @@ let iter_on_occurrences f ~namespace:Value exp_env path lid | Texp_construct (lid, constr_desc, _, _) -> add_constructor_description exp_env lid constr_desc - | Texp_field (_, lid, label_desc, _) + | Texp_field (_, lid, label_desc, _, _) | Texp_setfield (_, _, lid, label_desc, _) -> add_label exp_env lid label_desc | Texp_new (path, lid, _, _) -> @@ -373,9 +373,8 @@ let index_occurrences binary_annots = let index : (Longident.t Location.loc * Shape_reduce.result) list ref = ref [] in - let f ~namespace env path lid = - let not_ghost { Location.loc = { loc_ghost; _ }; _ } = not loc_ghost in - if not_ghost lid then + let f ~namespace env path (lid : _ Location.loc) = + if not (Location.is_none lid.loc) then match Env.shape_of_path ~namespace env path with | exception Not_found -> () | { uid = Some (Predef _); _ } -> () diff --git a/upstream/ocaml_flambda/file_formats/cmx_format.mli b/upstream/ocaml_flambda/file_formats/cmx_format.mli index 438d0b2dd..ac14ab283 100644 --- a/upstream/ocaml_flambda/file_formats/cmx_format.mli +++ b/upstream/ocaml_flambda/file_formats/cmx_format.mli @@ -17,7 +17,9 @@ (* *) (**************************************************************************) -(* Format of .cmx and .cmxa files *) +(* Format of .cmx, .cmxa and .cmxs files *) + +open Misc (* Each .o file has a matching .cmx file that provides the following infos on the compilation unit: @@ -29,40 +31,75 @@ The .cmx file contains these infos (as an externed record) plus a MD5 of these infos *) -type export_info = - | Clambda of Clambda.value_approximation - | Flambda of Export_info.t - (* Declare machtype here to avoid depending on [Cmm]. *) -type machtype_component = Val | Addr | Int | Float +type machtype_component = Val | Addr | Int | Float | Vec128 | Float32 type machtype = machtype_component array -type apply_fn := machtype list * machtype * Lambda.alloc_mode +(* [alloc_mode] should be isomorphic to [Cmm.Alloc_mode.t], + but due to a cyclic dependency we can not use definitions from [Cmm] here. *) +type alloc_mode = + | Alloc_heap + | Alloc_local + +type apply_fn := machtype list * machtype * alloc_mode + +(* Curry/apply/send functions *) +type generic_fns = + { curry_fun: (Lambda.function_kind * machtype list * machtype) list; + apply_fun: apply_fn list; + send_fun: apply_fn list } type unit_infos = { mutable ui_unit: Compilation_unit.t; (* Compilation unit implemented *) mutable ui_defines: Compilation_unit.t list; (* All compilation units in the - .cmx file (i.e. [ui_name] and + .cmx file (i.e. [ui_unit] and any produced via [Asmpackager]) *) - mutable ui_imports_cmi: Import_info.t array; + mutable ui_imports_cmi: Import_info.t list; (* Interfaces imported *) - mutable ui_imports_cmx: Import_info.t array; + mutable ui_imports_cmx: Import_info.t list; (* Infos imported *) - mutable ui_curry_fun: - (Lambda.function_kind * machtype list * machtype) list; - (* Currying functions needed *) - mutable ui_apply_fun: apply_fn list; (* Apply functions needed *) - mutable ui_send_fun: apply_fn list; (* Send functions needed *) - mutable ui_export_info: export_info; + mutable ui_generic_fns: generic_fns; (* Generic functions needed *) + mutable ui_export_info: Flambda2_cmx.Flambda_cmx_format.t option; + mutable ui_zero_alloc_info: Zero_alloc_info.t; mutable ui_force_link: bool; (* Always linked *) - mutable ui_for_pack: string option } (* Part of a pack *) + mutable ui_external_symbols: string list; (* Set of external symbols *) + } + +type unit_infos_raw = + { uir_unit: Compilation_unit.t; + uir_defines: Compilation_unit.t list; + uir_imports_cmi: Import_info.t array; + uir_imports_cmx: Import_info.t array; + uir_generic_fns: generic_fns; + uir_export_info: Flambda2_cmx.Flambda_cmx_format.raw option; + uir_zero_alloc_info: Zero_alloc_info.Raw.t; + uir_force_link: bool; + uir_section_toc: int array; (* Byte offsets of sections in .cmx + relative to byte immediately after + this record *) + uir_sections_length: int; (* Byte length of all sections *) + uir_external_symbols: string array; + } (* Each .a library has a matching .cmxa file that provides the following infos on the library: *) +type lib_unit_info = + { li_name: Compilation_unit.t; + li_crc: Digest.t; + li_defines: Compilation_unit.t list; + li_force_link: bool; + li_imports_cmi : Bitmap.t; (* subset of lib_imports_cmi *) + li_imports_cmx : Bitmap.t; (* subset of lib_imports_cmx *) + li_external_symbols: string array; + } + type library_infos = - { lib_units: (unit_infos * Digest.t) list; (* List of unit infos w/ MD5s *) + { lib_imports_cmi: Import_info.t array; + lib_imports_cmx: Import_info.t array; + lib_units: lib_unit_info list; + lib_generic_fns: generic_fns; (* In the following fields the lists are reversed with respect to how they end up being used on the command line. *) lib_ccobjs: string list; (* C object files needed *) diff --git a/upstream/ocaml_flambda/file_formats/linear_format.ml b/upstream/ocaml_flambda/file_formats/linear_format.ml index 005a5ff84..2c1b8a7c9 100644 --- a/upstream/ocaml_flambda/file_formats/linear_format.ml +++ b/upstream/ocaml_flambda/file_formats/linear_format.ml @@ -44,7 +44,7 @@ let save filename linear_unit_info = (* Compute digest of the contents and append it to the file. *) flush ch; let crc = Digest.file filename in - output_value ch crc + Digest.output ch crc ) ~always:(fun () -> close_out ch) ~exceptionally:(fun () -> raise (Error (Marshal_failed filename))) @@ -61,7 +61,7 @@ let restore filename = let last_label = (input_value ic : Cmm.label) in Cmm.reset (); Cmm.set_label last_label; - let crc = (input_value ic : Digest.t) in + let crc = Digest.input ic in linear_unit_info, crc with End_of_file | Failure _ -> raise (Error (Corrupted filename)) | Error e -> raise (Error e) @@ -76,22 +76,21 @@ let restore filename = (* Error report *) open Format -module Style=Misc.Style let report_error ppf = function | Wrong_format filename -> fprintf ppf "Expected Linear format. Incompatible file %a" - (Style.as_inline_code Location.print_filename) filename + Location.print_filename filename | Wrong_version filename -> fprintf ppf "%a@ is not compatible with this version of OCaml" - (Style.as_inline_code Location.print_filename) filename + Location.print_filename filename | Corrupted filename -> fprintf ppf "Corrupted format@ %a" - (Style.as_inline_code Location.print_filename) filename + Location.print_filename filename | Marshal_failed filename -> fprintf ppf "Failed to marshal Linear to file@ %a" - (Style.as_inline_code Location.print_filename) filename + Location.print_filename filename let () = Location.register_error_of_exn diff --git a/upstream/ocaml_flambda/parsing/ast_helper.ml b/upstream/ocaml_flambda/parsing/ast_helper.ml index 42fedace6..87f9a287e 100644 --- a/upstream/ocaml_flambda/parsing/ast_helper.ml +++ b/upstream/ocaml_flambda/parsing/ast_helper.ml @@ -60,15 +60,15 @@ module Typ = struct let attr d a = {d with ptyp_attributes = d.ptyp_attributes @ [a]} - let any ?loc ?attrs () = mk ?loc ?attrs Ptyp_any - let var ?loc ?attrs a = mk ?loc ?attrs (Ptyp_var a) + let any ?loc ?attrs a = mk ?loc ?attrs (Ptyp_any a) + let var ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_var (a, b)) let arrow ?loc ?attrs a b c d e = mk ?loc ?attrs (Ptyp_arrow (a, b, c, d, e)) let tuple ?loc ?attrs a = mk ?loc ?attrs (Ptyp_tuple a) let unboxed_tuple ?loc ?attrs a = mk ?loc ?attrs (Ptyp_unboxed_tuple a) let constr ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_constr (a, b)) let object_ ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_object (a, b)) let class_ ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_class (a, b)) - let alias ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_alias (a, b)) + let alias ?loc ?attrs a b c = mk ?loc ?attrs (Ptyp_alias (a, b, c)) let variant ?loc ?attrs a b c = mk ?loc ?attrs (Ptyp_variant (a, b, c)) let poly ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_poly (a, b)) let package ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_package (a, b)) @@ -84,20 +84,20 @@ module Typ = struct let check_variable vl loc v = if List.mem v vl then raise Syntaxerr.(Error(Variable_in_scope(loc,v))) in + let check_variable_opt vl v = + Option.iter (fun v -> check_variable vl v.loc v.txt) v + in let var_names = List.map Location.get_txt var_names in let rec loop t = let desc = - (* This *ought* to match on [Jane_syntax.Core_type.ast_of] first, but - that would be a dependency cycle -- [Jane_syntax] depends rather - crucially on [Ast_helper]. However, this just recurses looking for - constructors and variables, so it *should* be fine even so. If - Jane-syntax embeddings ever change so that this breaks, we'll need to - resolve this knot. *) match t.ptyp_desc with - | Ptyp_any -> Ptyp_any - | Ptyp_var x -> + | Ptyp_any jkind -> + let jkind = Option.map loop_jkind jkind in + Ptyp_any jkind + | Ptyp_var (x, jkind) -> + let jkind = Option.map loop_jkind jkind in check_variable var_names t.ptyp_loc x; - Ptyp_var x + Ptyp_var (x, jkind) | Ptyp_arrow (label,core_type,core_type',modes,modes') -> Ptyp_arrow(label, loop core_type, loop core_type', modes, modes') | Ptyp_tuple lst -> @@ -106,27 +106,28 @@ module Typ = struct Ptyp_unboxed_tuple (List.map (fun (l, t) -> l, loop t) lst) | Ptyp_constr( { txt = Longident.Lident s }, []) when List.mem s var_names -> - Ptyp_var s + Ptyp_var (s, None) | Ptyp_constr(longident, lst) -> Ptyp_constr(longident, List.map loop lst) | Ptyp_object (lst, o) -> Ptyp_object (List.map loop_object_field lst, o) | Ptyp_class (longident, lst) -> Ptyp_class (longident, List.map loop lst) - (* A Ptyp_alias might be a jkind annotation (that is, it might have - attributes which mean it should be interpreted as a - [Jane_syntax.Layouts.Ltyp_alias]), but the code here still has the - correct behavior. *) - | Ptyp_alias(core_type, alias) -> - check_variable var_names alias.loc alias.txt; - Ptyp_alias(loop core_type, alias) + | Ptyp_alias(core_type, alias, jkind) -> + let jkind = Option.map loop_jkind jkind in + check_variable_opt var_names alias; + Ptyp_alias(loop core_type, alias, jkind) | Ptyp_variant(row_field_list, flag, lbl_lst_option) -> Ptyp_variant(List.map loop_row_field row_field_list, flag, lbl_lst_option) - | Ptyp_poly(string_lst, core_type) -> - List.iter (fun v -> - check_variable var_names t.ptyp_loc v.txt) string_lst; - Ptyp_poly(string_lst, loop core_type) + | Ptyp_poly(var_lst, core_type) -> + let var_lst = + List.map (fun (v, jkind) -> + let jkind = Option.map loop_jkind jkind in + check_variable var_names t.ptyp_loc v.txt; + v, jkind) var_lst + in + Ptyp_poly(var_lst, loop core_type) | Ptyp_package(longident,lst) -> Ptyp_package(longident,List.map (fun (n,typ) -> (n,loop typ) ) lst) | Ptyp_open (mod_ident, core_type) -> @@ -135,6 +136,17 @@ module Typ = struct Ptyp_extension (s, arg) in {t with ptyp_desc = desc} + and loop_jkind jkind = + let pjkind_desc = + match jkind.pjkind_desc with + | Default as x -> x + | Abbreviation _ as x -> x + | Mod (jkind, modes) -> Mod (loop_jkind jkind, modes) + | With (jkind, typ) -> With (loop_jkind jkind, loop typ) + | Kind_of typ -> Kind_of (loop typ) + | Product jkinds -> Product (List.map loop_jkind jkinds) + in + { jkind with pjkind_desc } and loop_row_field field = let prf_desc = match field.prf_desc with | Rtag(label,flag,lst) -> @@ -174,7 +186,7 @@ module Pat = struct let construct ?loc ?attrs a b = mk ?loc ?attrs (Ppat_construct (a, b)) let variant ?loc ?attrs a b = mk ?loc ?attrs (Ppat_variant (a, b)) let record ?loc ?attrs a b = mk ?loc ?attrs (Ppat_record (a, b)) - let array ?loc ?attrs a = mk ?loc ?attrs (Ppat_array a) + let array ?loc ?attrs a b = mk ?loc ?attrs (Ppat_array (a, b)) let or_ ?loc ?attrs a b = mk ?loc ?attrs (Ppat_or (a, b)) let constraint_ ?loc ?attrs a b c = mk ?loc ?attrs (Ppat_constraint (a, b, c)) let type_ ?loc ?attrs a = mk ?loc ?attrs (Ppat_type a) @@ -207,7 +219,7 @@ module Exp = struct let record ?loc ?attrs a b = mk ?loc ?attrs (Pexp_record (a, b)) let field ?loc ?attrs a b = mk ?loc ?attrs (Pexp_field (a, b)) let setfield ?loc ?attrs a b c = mk ?loc ?attrs (Pexp_setfield (a, b, c)) - let array ?loc ?attrs a = mk ?loc ?attrs (Pexp_array a) + let array ?loc ?attrs a b = mk ?loc ?attrs (Pexp_array (a, b)) let ifthenelse ?loc ?attrs a b c = mk ?loc ?attrs (Pexp_ifthenelse (a, b, c)) let sequence ?loc ?attrs a b = mk ?loc ?attrs (Pexp_sequence (a, b)) let while_ ?loc ?attrs a b = mk ?loc ?attrs (Pexp_while (a, b)) @@ -224,7 +236,7 @@ module Exp = struct let lazy_ ?loc ?attrs a = mk ?loc ?attrs (Pexp_lazy a) let poly ?loc ?attrs a b = mk ?loc ?attrs (Pexp_poly (a, b)) let object_ ?loc ?attrs a = mk ?loc ?attrs (Pexp_object a) - let newtype ?loc ?attrs a b = mk ?loc ?attrs (Pexp_newtype (a, b)) + let newtype ?loc ?attrs a b c = mk ?loc ?attrs (Pexp_newtype (a, b, c)) let pack ?loc ?attrs a = mk ?loc ?attrs (Pexp_pack a) let open_ ?loc ?attrs a b = mk ?loc ?attrs (Pexp_open (a, b)) let letop ?loc ?attrs let_ ands body = @@ -232,6 +244,7 @@ module Exp = struct let extension ?loc ?attrs a = mk ?loc ?attrs (Pexp_extension a) let unreachable ?loc ?attrs () = mk ?loc ?attrs Pexp_unreachable let stack ?loc ?attrs e = mk ?loc ?attrs (Pexp_stack e) + let comprehension ?loc ?attrs e = mk ?loc ?attrs (Pexp_comprehension e) let case lhs ?guard rhs = { @@ -261,6 +274,7 @@ module Mty = struct let with_ ?loc ?attrs a b = mk ?loc ?attrs (Pmty_with (a, b)) let typeof_ ?loc ?attrs a = mk ?loc ?attrs (Pmty_typeof a) let extension ?loc ?attrs a = mk ?loc ?attrs (Pmty_extension a) + let strengthen ?loc ?attrs a b = mk ?loc ?attrs (Pmty_strengthen (a, b)) end module Mod = struct @@ -277,6 +291,7 @@ module Mod = struct let constraint_ ?loc ?attrs m mty = mk ?loc ?attrs (Pmod_constraint (m, mty)) let unpack ?loc ?attrs e = mk ?loc ?attrs (Pmod_unpack e) let extension ?loc ?attrs a = mk ?loc ?attrs (Pmod_extension a) + let instance ?loc ?attrs a = mk ?loc ?attrs (Pmod_instance a) end module Sig = struct @@ -297,6 +312,7 @@ module Sig = struct let class_ ?loc a = mk ?loc (Psig_class a) let class_type ?loc a = mk ?loc (Psig_class_type a) let extension ?loc ?(attrs = []) a = mk ?loc (Psig_extension (a, attrs)) + let kind_abbrev ?loc a b = mk ?loc (Psig_kind_abbrev (a, b)) let attribute ?loc a = mk ?loc (Psig_attribute a) let text txt = let f_txt = List.filter (fun ds -> docstring_body ds <> "") txt in @@ -305,6 +321,11 @@ module Sig = struct f_txt end +module Sg = struct + let mk ?(loc = !default_loc) ?(modalities = []) a = + {psg_items = a; psg_modalities = modalities; psg_loc = loc} +end + module Str = struct let mk ?(loc = !default_loc) d = {pstr_desc = d; pstr_loc = loc} @@ -322,6 +343,7 @@ module Str = struct let class_type ?loc a = mk ?loc (Pstr_class_type a) let include_ ?loc a = mk ?loc (Pstr_include a) let extension ?loc ?(attrs = []) a = mk ?loc (Pstr_extension (a, attrs)) + let kind_abbrev ?loc a b = mk ?loc (Pstr_kind_abbrev (a, b)) let attribute ?loc a = mk ?loc (Pstr_attribute a) let text txt = let f_txt = List.filter (fun ds -> docstring_body ds <> "") txt in @@ -540,6 +562,7 @@ module Type = struct ?(kind = Ptype_abstract) ?(priv = Public) ?manifest + ?jkind_annotation name = { ptype_name = name; @@ -549,6 +572,7 @@ module Type = struct ptype_private = priv; ptype_manifest = manifest; ptype_attributes = add_text_attrs text (add_docs_attrs docs attrs); + ptype_jkind_annotation = jkind_annotation; ptype_loc = loc; } diff --git a/upstream/ocaml_flambda/parsing/ast_helper.mli b/upstream/ocaml_flambda/parsing/ast_helper.mli index 24c565a55..93b77d9a3 100644 --- a/upstream/ocaml_flambda/parsing/ast_helper.mli +++ b/upstream/ocaml_flambda/parsing/ast_helper.mli @@ -68,8 +68,9 @@ module Typ : val mk: ?loc:loc -> ?attrs:attrs -> core_type_desc -> core_type val attr: core_type -> attribute -> core_type - val any: ?loc:loc -> ?attrs:attrs -> unit -> core_type - val var: ?loc:loc -> ?attrs:attrs -> string -> core_type + val any: ?loc:loc -> ?attrs:attrs -> jkind_annotation option -> core_type + val var: ?loc:loc -> ?attrs:attrs -> string -> jkind_annotation option + -> core_type val arrow: ?loc:loc -> ?attrs:attrs -> arg_label -> core_type -> core_type -> mode with_loc list -> mode with_loc list -> core_type val tuple: ?loc:loc -> ?attrs:attrs -> (string option * core_type) list -> core_type @@ -79,11 +80,13 @@ module Typ : val object_: ?loc:loc -> ?attrs:attrs -> object_field list -> closed_flag -> core_type val class_: ?loc:loc -> ?attrs:attrs -> lid -> core_type list -> core_type - val alias: ?loc:loc -> ?attrs:attrs -> core_type -> string with_loc - -> core_type + val alias: ?loc:loc -> ?attrs:attrs -> core_type -> string with_loc option + -> jkind_annotation option -> core_type + (* Invariant: One of the options must be [Some]. *) val variant: ?loc:loc -> ?attrs:attrs -> row_field list -> closed_flag -> label list option -> core_type - val poly: ?loc:loc -> ?attrs:attrs -> str list -> core_type -> core_type + val poly: ?loc:loc -> ?attrs:attrs -> + (str * jkind_annotation option) list -> core_type -> core_type val package: ?loc:loc -> ?attrs:attrs -> lid -> (lid * core_type) list -> core_type val open_ : ?loc:loc -> ?attrs:attrs -> lid -> core_type -> core_type @@ -123,7 +126,8 @@ module Pat: val variant: ?loc:loc -> ?attrs:attrs -> label -> pattern option -> pattern val record: ?loc:loc -> ?attrs:attrs -> (lid * pattern) list -> closed_flag -> pattern - val array: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern + val array: ?loc:loc -> ?attrs:attrs -> mutable_flag -> pattern list -> + pattern val or_: ?loc:loc -> ?attrs:attrs -> pattern -> pattern -> pattern val constraint_: ?loc:loc -> ?attrs:attrs -> pattern -> core_type option -> mode with_loc list -> pattern @@ -165,7 +169,8 @@ module Exp: val field: ?loc:loc -> ?attrs:attrs -> expression -> lid -> expression val setfield: ?loc:loc -> ?attrs:attrs -> expression -> lid -> expression -> expression - val array: ?loc:loc -> ?attrs:attrs -> expression list -> expression + val array: ?loc:loc -> ?attrs:attrs -> mutable_flag -> expression list -> + expression val ifthenelse: ?loc:loc -> ?attrs:attrs -> expression -> expression -> expression option -> expression val sequence: ?loc:loc -> ?attrs:attrs -> expression -> expression @@ -193,7 +198,8 @@ module Exp: val poly: ?loc:loc -> ?attrs:attrs -> expression -> core_type option -> expression val object_: ?loc:loc -> ?attrs:attrs -> class_structure -> expression - val newtype: ?loc:loc -> ?attrs:attrs -> str -> expression -> expression + val newtype: ?loc:loc -> ?attrs:attrs -> str -> jkind_annotation option -> + expression -> expression val pack: ?loc:loc -> ?attrs:attrs -> module_expr -> expression val open_: ?loc:loc -> ?attrs:attrs -> open_declaration -> expression -> expression @@ -202,6 +208,8 @@ module Exp: val extension: ?loc:loc -> ?attrs:attrs -> extension -> expression val unreachable: ?loc:loc -> ?attrs:attrs -> unit -> expression val stack : ?loc:loc -> ?attrs:attrs -> expression -> expression + val comprehension : + ?loc:loc -> ?attrs:attrs -> comprehension_expression -> expression val case: pattern -> ?guard:expression -> expression -> case val binding_op: str -> pattern -> expression -> loc -> binding_op @@ -220,11 +228,14 @@ module Type: val mk: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?text:text -> ?params:(core_type * (variance * injectivity)) list -> ?cstrs:(core_type * core_type * loc) list -> - ?kind:type_kind -> ?priv:private_flag -> ?manifest:core_type -> str -> + ?kind:type_kind -> ?priv:private_flag -> ?manifest:core_type -> + ?jkind_annotation:jkind_annotation -> + str -> type_declaration val constructor: ?loc:loc -> ?attrs:attrs -> ?info:info -> - ?vars:str list -> ?args:constructor_arguments -> ?res:core_type -> + ?vars:(str * jkind_annotation option) list -> + ?args:constructor_arguments -> ?res:core_type -> str -> constructor_declaration @@ -250,7 +261,8 @@ module Te: str -> extension_constructor_kind -> extension_constructor val decl: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?info:info -> - ?vars:str list -> ?args:constructor_arguments -> ?res:core_type -> + ?vars:(str * jkind_annotation option) list -> + ?args:constructor_arguments -> ?res:core_type -> str -> extension_constructor val rebind: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?info:info -> @@ -274,6 +286,8 @@ module Mty: with_constraint list -> module_type val typeof_: ?loc:loc -> ?attrs:attrs -> module_expr -> module_type val extension: ?loc:loc -> ?attrs:attrs -> extension -> module_type + val strengthen: ?loc:loc -> ?attrs:attrs -> module_type -> lid -> + module_type end (** Module expressions *) @@ -293,6 +307,7 @@ module Mod: module_expr val unpack: ?loc:loc -> ?attrs:attrs -> expression -> module_expr val extension: ?loc:loc -> ?attrs:attrs -> extension -> module_expr + val instance: ?loc:loc -> ?attrs:attrs -> module_instance -> module_expr end (** Signature items *) @@ -317,9 +332,17 @@ module Sig: val class_type: ?loc:loc -> class_type_declaration list -> signature_item val extension: ?loc:loc -> ?attrs:attrs -> extension -> signature_item val attribute: ?loc:loc -> attribute -> signature_item + val kind_abbrev: ?loc:loc -> label with_loc -> jkind_annotation -> + signature_item val text: text -> signature_item list end +module Sg: + sig + val mk : ?loc:loc -> ?modalities:modality with_loc list -> + signature_item list -> signature + end + (** Structure items *) module Str: sig @@ -339,6 +362,8 @@ module Str: val class_type: ?loc:loc -> class_type_declaration list -> structure_item val include_: ?loc:loc -> include_declaration -> structure_item val extension: ?loc:loc -> ?attrs:attrs -> extension -> structure_item + val kind_abbrev: ?loc:loc -> label with_loc -> jkind_annotation -> + structure_item val attribute: ?loc:loc -> attribute -> structure_item val text: text -> structure_item list end diff --git a/upstream/ocaml_flambda/parsing/ast_invariants.ml b/upstream/ocaml_flambda/parsing/ast_invariants.ml index 7a828e282..80f6416ca 100644 --- a/upstream/ocaml_flambda/parsing/ast_invariants.ml +++ b/upstream/ocaml_flambda/parsing/ast_invariants.ml @@ -20,6 +20,7 @@ let err = Syntaxerr.ill_formed_ast let empty_record loc = err loc "Records cannot be empty." let invalid_tuple loc = err loc "Tuples must have at least 2 components." +let invalid_alias loc = err loc "Alias types must have a name or a jkind." let empty_open_tuple_pat loc = err loc "Open tuple patterns must have at least one component." let short_closed_tuple_pat loc = @@ -53,27 +54,16 @@ let iterator = | Ptype_record [] -> empty_record loc | _ -> () in - let jtyp _self (jtyp : Jane_syntax.Core_type.t) = - match jtyp with - | Jtyp_layout (Ltyp_var _ | Ltyp_poly _ | Ltyp_alias _) -> () - in let typ self ty = super.typ self ty; let loc = ty.ptyp_loc in - match Jane_syntax.Core_type.of_ast ty with - | Some (jtyp_, _attrs) -> jtyp self jtyp_ - | None -> match ty.ptyp_desc with | Ptyp_tuple ([] | [_]) -> invalid_tuple loc | Ptyp_package (_, cstrs) -> List.iter (fun (id, _) -> simple_longident id) cstrs + | Ptyp_alias (_, None, None) -> invalid_alias loc | _ -> () in - let jpat _self (jpat : Jane_syntax.Pattern.t) = - match jpat with - | Jpat_immutable_array (Iapat_immutable_array _)-> () - | Jpat_layout (Lpat_constant _) -> () - in let pat self pat = begin match pat.ppat_desc with | Ppat_construct (_, Some (_, ({ppat_desc = Ppat_tuple _} as p))) @@ -83,9 +73,6 @@ let iterator = super.pat self pat end; let loc = pat.ppat_loc in - match Jane_syntax.Pattern.of_ast pat with - | Some (jpat_, _attrs) -> jpat self jpat_ - | None -> match pat.ppat_desc with | Ppat_tuple (lt, op) -> begin match lt, op with @@ -110,18 +97,6 @@ let iterator = end | _ -> () in - let jexpr _self loc (jexp : Jane_syntax.Expression.t) = - match jexp with - | Jexp_comprehension - ( Cexp_list_comprehension {clauses = []; body = _} - | Cexp_array_comprehension (_, {clauses = []; body = _}) ) - -> - empty_comprehension loc - | Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout _ - -> () - in let expr self exp = begin match exp.pexp_desc with | Pexp_construct (_, Some ({pexp_desc = Pexp_tuple _} as e)) @@ -131,9 +106,6 @@ let iterator = super.expr self exp end; let loc = exp.pexp_loc in - match Jane_syntax.Expression.of_ast exp with - | Some (jexp, _attrs) -> jexpr self exp.pexp_loc jexp - | None -> match exp.pexp_desc with | Pexp_tuple ([] | [_]) -> invalid_tuple loc | Pexp_record ([], _) -> empty_record loc @@ -154,6 +126,11 @@ let iterator = | { pparam_desc = Pparam_val _ } -> false) params then function_without_value_parameters loc + | Pexp_comprehension + ( Pcomp_list_comprehension {pcomp_clauses = []} + | Pcomp_array_comprehension (_, {pcomp_clauses = []}) ) + -> + empty_comprehension loc | _ -> () in let extension_constructor self ec = diff --git a/upstream/ocaml_flambda/parsing/ast_iterator.ml b/upstream/ocaml_flambda/parsing/ast_iterator.ml index a56250d44..f757b051c 100644 --- a/upstream/ocaml_flambda/parsing/ast_iterator.ml +++ b/upstream/ocaml_flambda/parsing/ast_iterator.ml @@ -44,37 +44,30 @@ type iterator = { constructor_declaration: iterator -> constructor_declaration -> unit; directive_argument: iterator -> directive_argument -> unit; expr: iterator -> expression -> unit; - expr_jane_syntax: iterator -> Jane_syntax.Expression.t -> unit; extension: iterator -> extension -> unit; extension_constructor: iterator -> extension_constructor -> unit; include_declaration: iterator -> include_declaration -> unit; include_description: iterator -> include_description -> unit; - jkind_annotation:iterator -> Jane_syntax.Jkind.t -> unit; + jkind_annotation:iterator -> jkind_annotation -> unit; label_declaration: iterator -> label_declaration -> unit; location: iterator -> Location.t -> unit; module_binding: iterator -> module_binding -> unit; module_declaration: iterator -> module_declaration -> unit; module_substitution: iterator -> module_substitution -> unit; module_expr: iterator -> module_expr -> unit; - module_expr_jane_syntax: iterator -> Jane_syntax.Module_expr.t -> unit; module_type: iterator -> module_type -> unit; module_type_declaration: iterator -> module_type_declaration -> unit; - module_type_jane_syntax: iterator -> Jane_syntax.Module_type.t -> unit; open_declaration: iterator -> open_declaration -> unit; open_description: iterator -> open_description -> unit; pat: iterator -> pattern -> unit; - pat_jane_syntax: iterator -> Jane_syntax.Pattern.t -> unit; payload: iterator -> payload -> unit; signature: iterator -> signature -> unit; signature_item: iterator -> signature_item -> unit; - signature_item_jane_syntax: iterator -> Jane_syntax.Signature_item.t -> unit; structure: iterator -> structure -> unit; structure_item: iterator -> structure_item -> unit; - structure_item_jane_syntax: iterator -> Jane_syntax.Structure_item.t -> unit; toplevel_directive: iterator -> toplevel_directive -> unit; toplevel_phrase: iterator -> toplevel_phrase -> unit; typ: iterator -> core_type -> unit; - typ_jane_syntax: iterator -> Jane_syntax.Core_type.t -> unit; row_field: iterator -> row_field -> unit; object_field: iterator -> object_field -> unit; type_declaration: iterator -> type_declaration -> unit; @@ -97,9 +90,6 @@ let iter_tuple3 f1 f2 f3 (x, y, z) = f1 x; f2 y; f3 z let iter_opt f = function None -> () | Some x -> f x let iter_loc sub {loc; txt = _} = sub.location sub loc -let iter_loc_txt sub f { loc; txt } = - sub.location sub loc; - f sub txt module T = struct (* Type expressions for the core language *) @@ -126,41 +116,20 @@ module T = struct | Otag (_, t) -> sub.typ sub t | Oinherit t -> sub.typ sub t - let jkind_annotation sub = - iter_loc_txt sub sub.jkind_annotation - - let bound_var sub (_, jkind) = match jkind with + let bound_var sub (name, jkind) = + iter_loc sub name; + match jkind with | None -> () - | Some annot -> jkind_annotation sub annot - - let iter_jst_layout sub : Jane_syntax.Layouts.core_type -> _ = function - | Ltyp_var { name = _; jkind } -> - iter_loc_txt sub sub.jkind_annotation jkind - | Ltyp_poly { bound_vars; inner_type } -> - List.iter (bound_var sub) bound_vars; - sub.typ sub inner_type - | Ltyp_alias { aliased_type; name; jkind } -> - sub.typ sub aliased_type; - iter_opt (iter_loc sub) name; - iter_loc_txt sub sub.jkind_annotation jkind + | Some annot -> sub.jkind_annotation sub annot let iter_labeled_tuple sub tl = List.iter (iter_snd (sub.typ sub)) tl - let iter_jst sub : Jane_syntax.Core_type.t -> _ = function - | Jtyp_layout typ -> iter_jst_layout sub typ - - let iter sub ({ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} - as typ) = + let iter sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = sub.location sub loc; - match Jane_syntax.Core_type.of_ast typ with - | Some (jtyp, attrs) -> - sub.attributes sub attrs; - sub.typ_jane_syntax sub jtyp - | None -> sub.attributes sub attrs; match desc with - | Ptyp_any - | Ptyp_var _ -> () + | Ptyp_any jkind + | Ptyp_var (_, jkind) -> Option.iter (sub.jkind_annotation sub) jkind | Ptyp_arrow (_lab, t1, t2, m1, m2) -> sub.typ sub t1; sub.typ sub t2; sub.modes sub m1; sub.modes sub m2 @@ -172,10 +141,13 @@ module T = struct List.iter (object_field sub) ol | Ptyp_class (lid, tl) -> iter_loc sub lid; List.iter (sub.typ sub) tl - | Ptyp_alias (t, _) -> sub.typ sub t + | Ptyp_alias (t, _, jkind) -> + sub.typ sub t; + Option.iter (sub.jkind_annotation sub) jkind | Ptyp_variant (rl, _b, _ll) -> List.iter (row_field sub) rl - | Ptyp_poly (_, t) -> + | Ptyp_poly (bound_vars, t) -> + List.iter (bound_var sub) bound_vars; sub.typ sub t; | Ptyp_package (lid, l) -> iter_loc sub lid; @@ -186,19 +158,12 @@ module T = struct | Ptyp_extension x -> sub.extension sub x let iter_type_declaration sub - ({ptype_name; ptype_params; ptype_cstrs; + {ptype_name; ptype_params; ptype_cstrs; ptype_kind; ptype_private = _; ptype_manifest; ptype_attributes; - ptype_loc} as ty_decl) = - let ptype_attributes = - match Jane_syntax.Layouts.of_type_declaration ty_decl with - | Some (jkind, attrs) -> - iter_loc_txt sub sub.jkind_annotation jkind; - attrs - | None -> ptype_attributes - in + ptype_loc} = iter_loc sub ptype_name; List.iter (iter_fst (sub.typ sub)) ptype_params; List.iter @@ -246,31 +211,19 @@ module T = struct let iter_extension_constructor_kind sub = function Pext_decl(vars, ctl, cto )-> - List.iter (iter_loc sub) vars; + List.iter (bound_var sub) vars; iter_constructor_arguments sub ctl; iter_opt (sub.typ sub) cto | Pext_rebind li -> iter_loc sub li - let iter_extension_constructor_jst sub : - Jane_syntax.Extension_constructor.t -> _ = function - | Jext_layout (Lext_decl (vls, ctl, cto)) -> - List.iter (bound_var sub) vls; - iter_constructor_arguments sub ctl; - iter_opt (sub.typ sub) cto - let iter_extension_constructor sub - ({pext_name; + {pext_name; pext_kind; pext_loc; - pext_attributes} as ext) = + pext_attributes} = iter_loc sub pext_name; sub.location sub pext_loc; - match Jane_syntax.Extension_constructor.of_ast ext with - | Some (jext, attrs) -> - sub.attributes sub attrs; - iter_extension_constructor_jst sub jext - | None -> iter_extension_constructor_kind sub pext_kind; sub.attributes sub pext_attributes @@ -319,14 +272,8 @@ let iter_functor_param sub = function module MT = struct (* Type expressions for the module language *) - let iter sub - ({pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} as mty) = + let iter sub {pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} = sub.location sub loc; - match Jane_syntax.Module_type.of_ast mty with - | Some (jmty, attrs) -> - sub.attributes sub attrs; - sub.module_type_jane_syntax sub jmty - | None -> sub.attributes sub attrs; match desc with | Pmty_ident s -> iter_loc sub s @@ -340,6 +287,9 @@ module MT = struct List.iter (sub.with_constraint sub) l | Pmty_typeof me -> sub.module_expr sub me | Pmty_extension x -> sub.extension sub x + | Pmty_strengthen (mty, mod_id) -> + sub.module_type sub mty; + iter_loc sub mod_id let iter_with_constraint sub = function | Pwith_type (lid, d) -> @@ -355,21 +305,8 @@ module MT = struct | Pwith_modtypesubst (lid, mty) -> iter_loc sub lid; sub.module_type sub mty - let iter_sig_layout sub - : Jane_syntax.Layouts.signature_item -> unit = function - | Lsig_kind_abbrev (name, jkind) -> - iter_loc sub name; - iter_loc_txt sub sub.jkind_annotation jkind - - let iter_signature_item_jst sub : Jane_syntax.Signature_item.t -> unit = - function - | Jsig_layout sigi -> iter_sig_layout sub sigi - - let iter_signature_item sub ({psig_desc = desc; psig_loc = loc} as sigi) = + let iter_signature_item sub {psig_desc = desc; psig_loc = loc} = sub.location sub loc; - match Jane_syntax.Signature_item.of_ast sigi with - | Some jsigi -> sub.signature_item_jane_syntax sub jsigi - | None -> match desc with | Psig_value vd -> sub.value_description sub vd | Psig_type (_, l) @@ -393,38 +330,18 @@ module MT = struct sub.attributes sub attrs; sub.extension sub x | Psig_attribute x -> sub.attribute sub x - - let iter_jane_syntax sub : Jane_syntax.Module_type.t -> _ = function - | Jmty_strengthen { mty; mod_id } -> - iter sub mty; - iter_loc sub mod_id + | Psig_kind_abbrev (name, jkind) -> + iter_loc sub name; + sub.jkind_annotation sub jkind end module M = struct (* Value expressions for the module language *) - module I = Jane_syntax.Instances - - let iter_instance _sub : I.instance -> _ = function - | _ -> - (* CR lmaurer: Implement this. Might want to change the [instance] type to have - Ids with locations in them rather than just raw strings. *) - () - - let iter_instance_expr sub : I.module_expr -> _ = function - | Imod_instance i -> iter_instance sub i - - let iter_ext sub : Jane_syntax.Module_expr.t -> _ = function - | Emod_instance i -> iter_instance_expr sub i - - let iter sub - ({pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} as expr) = + let iter sub {pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} = sub.location sub loc; sub.attributes sub attrs; - match Jane_syntax.Module_expr.of_ast expr with - | Some ext -> sub.module_expr_jane_syntax sub ext - | None -> match desc with | Pmod_ident x -> iter_loc sub x | Pmod_structure str -> sub.structure sub str @@ -440,22 +357,12 @@ module M = struct sub.module_expr sub m; sub.module_type sub mty | Pmod_unpack e -> sub.expr sub e | Pmod_extension x -> sub.extension sub x + | Pmod_instance _ -> () + (* CR lmaurer: Implement this. Might want to change the [instance] type + to have Ids with locations in them rather than just raw strings. *) - let iter_str_layout sub - : Jane_syntax.Layouts.structure_item -> unit = function - | Lstr_kind_abbrev (name, jkind) -> - iter_loc sub name; - iter_loc_txt sub sub.jkind_annotation jkind - - let iter_structure_item_jst sub : Jane_syntax.Structure_item.t -> unit = - function - | Jstr_layout stri -> iter_str_layout sub stri - - let iter_structure_item sub ({pstr_loc = loc; pstr_desc = desc} as stri) = + let iter_structure_item sub {pstr_loc = loc; pstr_desc = desc} = sub.location sub loc; - match Jane_syntax.Structure_item.of_ast stri with - | Some jstri -> sub.structure_item_jane_syntax sub jstri - | None -> match desc with | Pstr_eval (x, attrs) -> sub.attributes sub attrs; sub.expr sub x @@ -475,54 +382,37 @@ module M = struct | Pstr_extension (x, attrs) -> sub.attributes sub attrs; sub.extension sub x | Pstr_attribute x -> sub.attribute sub x + | Pstr_kind_abbrev (name, jkind) -> + iter_loc sub name; + sub.jkind_annotation sub jkind end -(* A no-op, but makes it clearer which jane syntax cases should have the same - handling as core-language cases. *) -let iter_constant = () - module E = struct (* Value expressions for the core language *) - module C = Jane_syntax.Comprehensions - module IA = Jane_syntax.Immutable_arrays - module L = Jane_syntax.Layouts - - let iter_iterator sub : C.iterator -> _ = function - | Range { start; stop; direction = _ } -> + let iter_iterator sub = function + | Pcomp_range { start; stop; direction = _ } -> sub.expr sub start; sub.expr sub stop - | In expr -> sub.expr sub expr + | Pcomp_in expr -> sub.expr sub expr let iter_clause_binding sub - ({ pattern; iterator; attributes } : - C.clause_binding) = - sub.pat sub pattern; - iter_iterator sub iterator; - sub.attributes sub attributes - - let iter_clause sub : C.clause -> _ = function - | For cbs -> List.iter (iter_clause_binding sub) cbs - | When expr -> sub.expr sub expr - - let iter_comp sub - ({ body; clauses } : C.comprehension) = - sub.expr sub body; - List.iter (iter_clause sub) clauses - - let iter_comp_exp sub : C.expression -> _ = function - | Cexp_list_comprehension comp -> iter_comp sub comp - | Cexp_array_comprehension (_mut, comp) -> iter_comp sub comp - - let iter_iarr_exp sub : IA.expression -> _ = function - | Iaexp_immutable_array elts -> - List.iter (sub.expr sub) elts - - let iter_layout_exp sub : L.expression -> _ = function - | Lexp_constant _ -> iter_constant - | Lexp_newtype (_str, jkind, inner_expr) -> - iter_loc_txt sub sub.jkind_annotation jkind; - sub.expr sub inner_expr + { pcomp_cb_pattern; pcomp_cb_iterator; pcomp_cb_attributes } = + sub.pat sub pcomp_cb_pattern; + iter_iterator sub pcomp_cb_iterator; + sub.attributes sub pcomp_cb_attributes + + let iter_clause sub = function + | Pcomp_for cbs -> List.iter (iter_clause_binding sub) cbs + | Pcomp_when expr -> sub.expr sub expr + + let iter_comp sub { pcomp_body; pcomp_clauses } = + sub.expr sub pcomp_body; + List.iter (iter_clause sub) pcomp_clauses + + let iter_comp_exp sub = function + | Pcomp_list_comprehension comp -> iter_comp sub comp + | Pcomp_array_comprehension (_mut, comp) -> iter_comp sub comp let iter_function_param sub : function_param -> _ = fun { pparam_loc = loc; pparam_desc = desc } -> @@ -533,7 +423,7 @@ module E = struct sub.pat sub pat | Pparam_newtype (newtype, jkind) -> iter_loc sub newtype; - iter_opt (iter_loc_txt sub sub.jkind_annotation) jkind + Option.iter (sub.jkind_annotation sub) jkind let iter_function_constraint sub : function_constraint -> _ = (* Enable warning 9 to ensure that the record pattern doesn't miss any @@ -557,23 +447,12 @@ module E = struct let iter_labeled_tuple sub el = List.iter (iter_snd (sub.expr sub)) el - let iter_jst sub : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension comp_exp -> iter_comp_exp sub comp_exp - | Jexp_immutable_array iarr_exp -> iter_iarr_exp sub iarr_exp - | Jexp_layout layout_exp -> iter_layout_exp sub layout_exp - - let iter sub - ({pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} as expr)= + let iter sub {pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} = sub.location sub loc; - match Jane_syntax.Expression.of_ast expr with - | Some (jexp, attrs) -> - sub.attributes sub attrs; - sub.expr_jane_syntax sub jexp - | None -> sub.attributes sub attrs; match desc with | Pexp_ident x -> iter_loc sub x - | Pexp_constant _ -> iter_constant + | Pexp_constant _ -> () | Pexp_let (_r, vbs, e) -> List.iter (sub.value_binding sub) vbs; sub.expr sub e @@ -600,7 +479,7 @@ module E = struct | Pexp_setfield (e1, lid, e2) -> sub.expr sub e1; iter_loc sub lid; sub.expr sub e2 - | Pexp_array el -> List.iter (sub.expr sub) el + | Pexp_array (_mut, el) -> List.iter (sub.expr sub) el | Pexp_ifthenelse (e1, e2, e3) -> sub.expr sub e1; sub.expr sub e2; iter_opt (sub.expr sub) e3 @@ -635,7 +514,10 @@ module E = struct | Pexp_poly (e, t) -> sub.expr sub e; iter_opt (sub.typ sub) t | Pexp_object cls -> sub.class_structure sub cls - | Pexp_newtype (_s, e) -> sub.expr sub e + | Pexp_newtype (s, jkind, e) -> + iter_loc sub s; + Option.iter (sub.jkind_annotation sub) jkind; + sub.expr sub e | Pexp_pack me -> sub.module_expr sub me | Pexp_open (o, e) -> sub.open_declaration sub o; sub.expr sub e @@ -646,6 +528,7 @@ module E = struct | Pexp_extension x -> sub.extension sub x | Pexp_unreachable -> () | Pexp_stack e -> sub.expr sub e + | Pexp_comprehension e -> iter_comp_exp sub e let iter_binding_op sub {pbop_op; pbop_pat; pbop_exp; pbop_loc} = iter_loc sub pbop_op; @@ -658,32 +541,16 @@ end module P = struct (* Patterns *) - module IA = Jane_syntax.Immutable_arrays - - let iter_iapat sub : IA.pattern -> _ = function - | Iapat_immutable_array elts -> - List.iter (sub.pat sub) elts - let iter_labeled_tuple sub pl = List.iter (iter_snd (sub.pat sub)) pl - let iter_jst sub : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array iapat -> iter_iapat sub iapat - | Jpat_layout (Lpat_constant _) -> iter_constant - - let iter sub - ({ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} as pat) = + let iter sub {ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} = sub.location sub loc; - match Jane_syntax.Pattern.of_ast pat with - | Some (jpat, attrs) -> - sub.attributes sub attrs; - sub.pat_jane_syntax sub jpat - | None -> sub.attributes sub attrs; match desc with | Ppat_any -> () | Ppat_var s -> iter_loc sub s | Ppat_alias (p, s) -> sub.pat sub p; iter_loc sub s - | Ppat_constant _ -> iter_constant + | Ppat_constant _ -> () | Ppat_interval _ -> () | Ppat_tuple (pl, _) -> iter_labeled_tuple sub pl | Ppat_unboxed_tuple (pl, _) -> iter_labeled_tuple sub pl @@ -697,7 +564,7 @@ module P = struct | Ppat_variant (_l, p) -> iter_opt (sub.pat sub) p | Ppat_record (lpl, _cf) -> List.iter (iter_tuple (iter_loc sub) (sub.pat sub)) lpl - | Ppat_array pl -> List.iter (sub.pat sub) pl + | Ppat_array (_mut, pl) -> List.iter (sub.pat sub) pl | Ppat_or (p1, p2) -> sub.pat sub p1; sub.pat sub p2 | Ppat_constraint (p, t, m) -> sub.pat sub p; Option.iter (sub.typ sub) t; sub.modes sub m; @@ -777,14 +644,15 @@ let default_iterator = { structure = (fun this l -> List.iter (this.structure_item this) l); structure_item = M.iter_structure_item; - structure_item_jane_syntax = M.iter_structure_item_jst; module_expr = M.iter; - module_expr_jane_syntax = M.iter_ext; - signature = (fun this l -> List.iter (this.signature_item this) l); + signature = + (fun this {psg_loc; psg_items; psg_modalities} -> + this.location this psg_loc; + this.modalities this psg_modalities; + List.iter (this.signature_item this) psg_items + ); signature_item = MT.iter_signature_item; - signature_item_jane_syntax = MT.iter_signature_item_jst; module_type = MT.iter; - module_type_jane_syntax = MT.iter_jane_syntax; with_constraint = MT.iter_with_constraint; class_declaration = (fun this -> CE.class_infos this (this.class_expr this)); @@ -801,7 +669,6 @@ let default_iterator = type_declaration = T.iter_type_declaration; type_kind = T.iter_type_kind; typ = T.iter; - typ_jane_syntax = T.iter_jst; row_field = T.row_field; object_field = T.object_field; type_extension = T.iter_type_extension; @@ -818,9 +685,7 @@ let default_iterator = ); pat = P.iter; - pat_jane_syntax = P.iter_jst; expr = E.iter; - expr_jane_syntax = E.iter_jst; binding_op = E.iter_binding_op; module_declaration = @@ -902,22 +767,14 @@ let default_iterator = ); constructor_declaration = - (fun this ({pcd_name; pcd_vars; pcd_args; - pcd_res; pcd_loc; pcd_attributes} as pcd) -> + (fun this {pcd_name; pcd_vars; pcd_args; + pcd_res; pcd_loc; pcd_attributes} -> iter_loc this pcd_name; - let attrs = - match Jane_syntax.Layouts.of_constructor_declaration pcd with - | None -> - List.iter (iter_loc this) pcd_vars; - pcd_attributes - | Some (vars_jkinds, attrs) -> - List.iter (T.bound_var this) vars_jkinds; - attrs - in + List.iter (T.bound_var this) pcd_vars; T.iter_constructor_arguments this pcd_args; iter_opt (this.typ this) pcd_res; this.location this pcd_loc; - this.attributes this attrs + this.attributes this pcd_attributes ); label_declaration = @@ -965,18 +822,19 @@ let default_iterator = ); jkind_annotation = - (fun this -> function - | Default -> () - | Abbreviation s -> - iter_loc this (s : Jane_syntax.Jkind.Const.t :> _ loc) - | Mod (t, mode_list) -> - this.jkind_annotation this t; - this.modes this mode_list - | With (t, ty) -> - this.jkind_annotation this t; - this.typ this ty - | Kind_of ty -> this.typ this ty - | Product ts -> List.iter (this.jkind_annotation this) ts); + (fun this { pjkind_loc; pjkind_desc } -> + this.location this pjkind_loc; + match pjkind_desc with + | Default -> () + | Abbreviation (_ : string) -> () + | Mod (t, mode_list) -> + this.jkind_annotation this t; + this.modes this mode_list + | With (t, ty) -> + this.jkind_annotation this t; + this.typ this ty + | Kind_of ty -> this.typ this ty + | Product ts -> List.iter (this.jkind_annotation this) ts); directive_argument = (fun this a -> diff --git a/upstream/ocaml_flambda/parsing/ast_iterator.mli b/upstream/ocaml_flambda/parsing/ast_iterator.mli index 711c52403..235da8f20 100644 --- a/upstream/ocaml_flambda/parsing/ast_iterator.mli +++ b/upstream/ocaml_flambda/parsing/ast_iterator.mli @@ -47,37 +47,30 @@ type iterator = { constructor_declaration: iterator -> constructor_declaration -> unit; directive_argument: iterator -> directive_argument -> unit; expr: iterator -> expression -> unit; - expr_jane_syntax : iterator -> Jane_syntax.Expression.t -> unit; extension: iterator -> extension -> unit; extension_constructor: iterator -> extension_constructor -> unit; include_declaration: iterator -> include_declaration -> unit; include_description: iterator -> include_description -> unit; - jkind_annotation: iterator -> Jane_syntax.Jkind.t -> unit; + jkind_annotation: iterator -> jkind_annotation -> unit; label_declaration: iterator -> label_declaration -> unit; location: iterator -> Location.t -> unit; module_binding: iterator -> module_binding -> unit; module_declaration: iterator -> module_declaration -> unit; module_substitution: iterator -> module_substitution -> unit; module_expr: iterator -> module_expr -> unit; - module_expr_jane_syntax: iterator -> Jane_syntax.Module_expr.t -> unit; module_type: iterator -> module_type -> unit; module_type_declaration: iterator -> module_type_declaration -> unit; - module_type_jane_syntax: iterator -> Jane_syntax.Module_type.t -> unit; open_declaration: iterator -> open_declaration -> unit; open_description: iterator -> open_description -> unit; pat: iterator -> pattern -> unit; - pat_jane_syntax: iterator -> Jane_syntax.Pattern.t -> unit; payload: iterator -> payload -> unit; signature: iterator -> signature -> unit; signature_item: iterator -> signature_item -> unit; - signature_item_jane_syntax: iterator -> Jane_syntax.Signature_item.t -> unit; structure: iterator -> structure -> unit; structure_item: iterator -> structure_item -> unit; - structure_item_jane_syntax: iterator -> Jane_syntax.Structure_item.t -> unit; toplevel_directive: iterator -> toplevel_directive -> unit; toplevel_phrase: iterator -> toplevel_phrase -> unit; typ: iterator -> core_type -> unit; - typ_jane_syntax: iterator -> Jane_syntax.Core_type.t -> unit; row_field: iterator -> row_field -> unit; object_field: iterator -> object_field -> unit; type_declaration: iterator -> type_declaration -> unit; diff --git a/upstream/ocaml_flambda/parsing/ast_mapper.ml b/upstream/ocaml_flambda/parsing/ast_mapper.ml index 342fbfdcb..0e8074ece 100644 --- a/upstream/ocaml_flambda/parsing/ast_mapper.ml +++ b/upstream/ocaml_flambda/parsing/ast_mapper.ml @@ -57,8 +57,7 @@ type mapper = { -> extension_constructor; include_declaration: mapper -> include_declaration -> include_declaration; include_description: mapper -> include_description -> include_description; - jkind_annotation: - mapper -> Jane_syntax.Jkind.t -> Jane_syntax.Jkind.t; + jkind_annotation: mapper -> jkind_annotation -> jkind_annotation; label_declaration: mapper -> label_declaration -> label_declaration; location: mapper -> Location.t -> Location.t; module_binding: mapper -> module_binding -> module_binding; @@ -86,22 +85,6 @@ type mapper = { value_binding: mapper -> value_binding -> value_binding; value_description: mapper -> value_description -> value_description; with_constraint: mapper -> with_constraint -> with_constraint; - - expr_jane_syntax: - mapper -> Jane_syntax.Expression.t -> Jane_syntax.Expression.t; - extension_constructor_jane_syntax: - mapper -> - Jane_syntax.Extension_constructor.t -> Jane_syntax.Extension_constructor.t; - module_type_jane_syntax: mapper - -> Jane_syntax.Module_type.t -> Jane_syntax.Module_type.t; - module_expr_jane_syntax: mapper - -> Jane_syntax.Module_expr.t -> Jane_syntax.Module_expr.t; - pat_jane_syntax: mapper -> Jane_syntax.Pattern.t -> Jane_syntax.Pattern.t; - signature_item_jane_syntax: mapper -> - Jane_syntax.Signature_item.t -> Jane_syntax.Signature_item.t; - structure_item_jane_syntax: mapper -> - Jane_syntax.Structure_item.t -> Jane_syntax.Structure_item.t; - typ_jane_syntax: mapper -> Jane_syntax.Core_type.t -> Jane_syntax.Core_type.t; } let map_fst f (x, y) = (f x, y) @@ -111,16 +94,16 @@ let map_tuple3 f1 f2 f3 (x, y, z) = (f1 x, f2 y, f3 z) let map_opt f = function None -> None | Some x -> Some (f x) let map_loc sub {loc; txt} = {loc = sub.location sub loc; txt} -let map_loc_txt sub f {loc; txt} = - {loc = sub.location sub loc; txt = f sub txt} module C = struct (* Constants *) let map sub c = match c with | Pconst_integer _ + | Pconst_unboxed_integer _ | Pconst_char _ | Pconst_float _ + | Pconst_unboxed_float _ -> c | Pconst_string (s, loc, quotation_delimiter) -> let loc = sub.location sub loc in @@ -159,49 +142,25 @@ module T = struct let var_jkind sub (name, jkind_opt) = let name = map_loc sub name in let jkind_opt = - map_opt (map_loc_txt sub sub.jkind_annotation) jkind_opt + map_opt (sub.jkind_annotation sub) jkind_opt in (name, jkind_opt) let map_bound_vars sub bound_vars = List.map (var_jkind sub) bound_vars - let map_jst_layouts sub : - Jane_syntax.Layouts.core_type -> Jane_syntax.Layouts.core_type = - function - | Ltyp_var { name; jkind } -> - let jkind = map_loc_txt sub sub.jkind_annotation jkind in - Ltyp_var { name; jkind } - | Ltyp_poly { bound_vars; inner_type } -> - let bound_vars = map_bound_vars sub bound_vars in - let inner_type = sub.typ sub inner_type in - Ltyp_poly { bound_vars; inner_type } - | Ltyp_alias { aliased_type; name; jkind } -> - let aliased_type = sub.typ sub aliased_type in - let name = map_opt (map_loc sub) name in - let jkind = map_loc_txt sub sub.jkind_annotation jkind in - Ltyp_alias { aliased_type; name; jkind } - let map_labeled_tuple sub tl = List.map (map_snd (sub.typ sub)) tl - let map_jst sub : Jane_syntax.Core_type.t -> Jane_syntax.Core_type.t = - function - | Jtyp_layout typ -> Jtyp_layout (map_jst_layouts sub typ) - - let map sub ({ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} - as typ) = + let map sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = let open Typ in let loc = sub.location sub loc in - match Jane_syntax.Core_type.of_ast typ with - | Some (jtyp, attrs) -> begin - let attrs = sub.attributes sub attrs in - let jtyp = sub.typ_jane_syntax sub jtyp in - Jane_syntax.Core_type.core_type_of jtyp ~loc ~attrs - end - | None -> let attrs = sub.attributes sub attrs in match desc with - | Ptyp_any -> any ~loc ~attrs () - | Ptyp_var s -> var ~loc ~attrs s + | Ptyp_any jkind -> + let jkind = map_opt (sub.jkind_annotation sub) jkind in + any ~loc ~attrs jkind + | Ptyp_var (s, jkind) -> + let jkind = map_opt (sub.jkind_annotation sub) jkind in + var ~loc ~attrs s jkind | Ptyp_arrow (lab, t1, t2, m1, m2) -> arrow ~loc ~attrs lab (sub.typ sub t1) (sub.typ sub t2) (sub.modes sub m1) (sub.modes sub m2) | Ptyp_tuple tyl -> tuple ~loc ~attrs (map_labeled_tuple sub tyl) @@ -213,13 +172,21 @@ module T = struct object_ ~loc ~attrs (List.map (object_field sub) l) o | Ptyp_class (lid, tl) -> class_ ~loc ~attrs (map_loc sub lid) (List.map (sub.typ sub) tl) - | Ptyp_alias (t, s) -> - let s = map_loc sub s in - alias ~loc ~attrs (sub.typ sub t) s + | Ptyp_alias (t, s, jkind) -> + let s = map_opt (map_loc sub) s in + let jkind = map_opt (sub.jkind_annotation sub) jkind in + alias ~loc ~attrs (sub.typ sub t) s jkind | Ptyp_variant (rl, b, ll) -> variant ~loc ~attrs (List.map (row_field sub) rl) b ll - | Ptyp_poly (sl, t) -> poly ~loc ~attrs - (List.map (map_loc sub) sl) (sub.typ sub t) + | Ptyp_poly (sl, t) -> + let sl = + List.map (fun (var, jkind) -> + map_loc sub var, + map_opt (sub.jkind_annotation sub) jkind) + sl + in + let t = sub.typ sub t in + poly ~loc ~attrs sl t | Ptyp_package (lid, l) -> package ~loc ~attrs (map_loc sub lid) (List.map (map_tuple (map_loc sub) (sub.typ sub)) l) @@ -228,32 +195,28 @@ module T = struct | Ptyp_extension x -> extension ~loc ~attrs (sub.extension sub x) let map_type_declaration sub - ({ptype_name; ptype_params; ptype_cstrs; + {ptype_name; ptype_params; ptype_cstrs; ptype_kind; ptype_private; ptype_manifest; ptype_attributes; - ptype_loc} as tyd) = + ptype_jkind_annotation; + ptype_loc} = let loc = sub.location sub ptype_loc in - let jkind, ptype_attributes = - match Jane_syntax.Layouts.of_type_declaration tyd with - | None -> None, ptype_attributes - | Some (jkind, attributes) -> - let jkind = map_loc_txt sub sub.jkind_annotation jkind in - Some jkind, attributes + let ptype_jkind_annotation = + map_opt (sub.jkind_annotation sub) ptype_jkind_annotation in let attrs = sub.attributes sub ptype_attributes in - Jane_syntax.Layouts.type_declaration_of ~loc ~attrs (map_loc sub ptype_name) + Type.mk ~loc ~attrs (map_loc sub ptype_name) ~params:(List.map (map_fst (sub.typ sub)) ptype_params) ~priv:ptype_private ~cstrs:(List.map (map_tuple3 (sub.typ sub) (sub.typ sub) (sub.location sub)) ptype_cstrs) ~kind:(sub.type_kind sub ptype_kind) - ~manifest:(map_opt (sub.typ sub) ptype_manifest) - ~jkind + ?manifest:(map_opt (sub.typ sub) ptype_manifest) ~docs:Docstrings.empty_docs - ~text:None + ?jkind_annotation:ptype_jkind_annotation let map_type_kind sub = function | Ptype_abstract -> Ptype_abstract @@ -294,37 +257,21 @@ module T = struct Te.mk_exception ~loc ~attrs (sub.extension_constructor sub ptyexn_constructor) - let map_extension_constructor_jst sub : - Jane_syntax.Extension_constructor.t -> Jane_syntax.Extension_constructor.t = - function - | Jext_layout (Lext_decl(vars, args, res)) -> - let vars = map_bound_vars sub vars in - let args = map_constructor_arguments sub args in - let res = map_opt (sub.typ sub) res in - Jext_layout (Lext_decl(vars, args, res)) - let map_extension_constructor_kind sub = function Pext_decl(vars, ctl, cto) -> - Pext_decl(List.map (map_loc sub) vars, + Pext_decl(map_bound_vars sub vars, map_constructor_arguments sub ctl, map_opt (sub.typ sub) cto) | Pext_rebind li -> Pext_rebind (map_loc sub li) let map_extension_constructor sub - ({pext_name; + {pext_name; pext_kind; pext_loc; - pext_attributes} as ext) = + pext_attributes} = let loc = sub.location sub pext_loc in let name = map_loc sub pext_name in - match Jane_syntax.Extension_constructor.of_ast ext with - | Some (jext, attrs) -> - let attrs = sub.attributes sub attrs in - let jext = sub.extension_constructor_jane_syntax sub jext in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~name ~attrs jext - | None -> let attrs = sub.attributes sub pext_attributes in Te.constructor ~loc ~attrs name @@ -378,17 +325,9 @@ let map_functor_param sub = function module MT = struct (* Type expressions for the module language *) - let map sub - ({pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} as mty) = + let map sub {pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} = let open Mty in let loc = sub.location sub loc in - match Jane_syntax.Module_type.of_ast mty with - | Some (jmty, attrs) -> begin - let attrs = sub.attributes sub attrs in - Jane_syntax.Module_type.mty_of ~loc ~attrs - (sub.module_type_jane_syntax sub jmty) - end - | None -> let attrs = sub.attributes sub attrs in match desc with | Pmty_ident s -> ident ~loc ~attrs (map_loc sub s) @@ -403,6 +342,10 @@ module MT = struct (List.map (sub.with_constraint sub) l) | Pmty_typeof me -> typeof_ ~loc ~attrs (sub.module_expr sub me) | Pmty_extension x -> extension ~loc ~attrs (sub.extension sub x) + | Pmty_strengthen (mty, mod_id) -> + strengthen ~loc ~attrs + (sub.module_type sub mty) + (map_loc sub mod_id) let map_with_constraint sub = function | Pwith_type (lid, d) -> @@ -418,32 +361,9 @@ module MT = struct | Pwith_modtypesubst (lid, mty) -> Pwith_modtypesubst (map_loc sub lid, sub.module_type sub mty) - module L = Jane_syntax.Layouts - - let map_sig_layout sub : L.signature_item -> L.signature_item = - function - | Lsig_kind_abbrev (name, jkind) -> - Lsig_kind_abbrev ( - map_loc sub name, - map_loc_txt sub sub.jkind_annotation jkind - ) - - let map_signature_item_jst sub : - Jane_syntax.Signature_item.t -> Jane_syntax.Signature_item.t = - function - | Jsig_layout sigi -> - Jsig_layout (map_sig_layout sub sigi) - - let map_signature_item sub ({psig_desc = desc; psig_loc = loc} as sigi) = + let map_signature_item sub {psig_desc = desc; psig_loc = loc} = let open Sig in let loc = sub.location sub loc in - match Jane_syntax.Signature_item.of_ast sigi with - | Some jsigi -> begin - match sub.signature_item_jane_syntax sub jsigi with - | Jsig_layout sigi -> - Jane_syntax.Layouts.sig_item_of ~loc sigi - end - | None -> match desc with | Psig_value vd -> value ~loc (sub.value_description sub vd) | Psig_type (rf, l) -> @@ -470,44 +390,19 @@ module MT = struct let attrs = sub.attributes sub attrs in extension ~loc ~attrs (sub.extension sub x) | Psig_attribute x -> attribute ~loc (sub.attribute sub x) - - let map_jane_syntax sub : - Jane_syntax.Module_type.t -> Jane_syntax.Module_type.t = function - | Jmty_strengthen { mty; mod_id } -> - let mty = sub.module_type sub mty in - let mod_id = map_loc sub mod_id in - Jmty_strengthen { mty; mod_id } + | Psig_kind_abbrev (name, jkind) -> + kind_abbrev + ~loc + (map_loc sub name) + (sub.jkind_annotation sub jkind) end module M = struct - module I = Jane_syntax.Instances - - (* Value expressions for the module language *) - let map_instance _sub : I.instance -> I.instance = function - | i -> - (* CR lmaurer: Implement this. Might want to change the [instance] type to have - Ids with locations in them rather than just raw strings. *) - i - - let map_instance_expr sub : I.module_expr -> I.module_expr = function - | Imod_instance i -> Imod_instance (map_instance sub i) - - let map_ext sub : Jane_syntax.Module_expr.t -> Jane_syntax.Module_expr.t = - function - | Emod_instance i -> Emod_instance (map_instance_expr sub i) - - let map sub - ({pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} as mexpr) = + let map sub {pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} = let open Mod in let loc = sub.location sub loc in let attrs = sub.attributes sub attrs in - match Jane_syntax.Module_expr.of_ast mexpr with - | Some ext -> begin - match sub.module_expr_jane_syntax sub ext with - | Emod_instance i -> Jane_syntax.Instances.module_expr_of ~loc i - end - | None -> match desc with | Pmod_ident x -> ident ~loc ~attrs (map_loc sub x) | Pmod_structure str -> structure ~loc ~attrs (sub.structure sub str) @@ -524,33 +419,14 @@ module M = struct (sub.module_type sub mty) | Pmod_unpack e -> unpack ~loc ~attrs (sub.expr sub e) | Pmod_extension x -> extension ~loc ~attrs (sub.extension sub x) + | Pmod_instance x -> + (* CR lmaurer: Implement this. Might want to change the [instance] type + to have Ids with locations in them rather than just raw strings. *) + instance ~loc ~attrs x - module L = Jane_syntax.Layouts - - let map_str_layout sub : L.structure_item -> L.structure_item = - function - | Lstr_kind_abbrev (name, jkind) -> - Lstr_kind_abbrev ( - map_loc sub name, - map_loc_txt sub sub.jkind_annotation jkind - ) - - let map_structure_item_jst sub : - Jane_syntax.Structure_item.t -> Jane_syntax.Structure_item.t = - function - | Jstr_layout stri -> - Jstr_layout (map_str_layout sub stri) - - let map_structure_item sub ({pstr_loc = loc; pstr_desc = desc} as stri) = + let map_structure_item sub {pstr_loc = loc; pstr_desc = desc} = let open Str in let loc = sub.location sub loc in - match Jane_syntax.Structure_item.of_ast stri with - | Some jstri -> begin - match sub.structure_item_jane_syntax sub jstri with - | Jstr_layout stri -> - Jane_syntax.Layouts.str_item_of ~loc stri - end - | None -> match desc with | Pstr_eval (x, attrs) -> let attrs = sub.attributes sub attrs in @@ -572,15 +448,16 @@ module M = struct let attrs = sub.attributes sub attrs in extension ~loc ~attrs (sub.extension sub x) | Pstr_attribute x -> attribute ~loc (sub.attribute sub x) + | Pstr_kind_abbrev (name, jkind) -> + kind_abbrev + ~loc + (map_loc sub name) + (sub.jkind_annotation sub jkind) end module E = struct (* Value expressions for the core language *) - module C = Jane_syntax.Comprehensions - module IA = Jane_syntax.Immutable_arrays - module L = Jane_syntax.Layouts - let map_function_param sub { pparam_loc = loc; pparam_desc = desc } = let loc = sub.location sub loc in let desc = @@ -590,7 +467,7 @@ module E = struct | Pparam_newtype (newtype, jkind) -> Pparam_newtype ( map_loc sub newtype - , map_opt (map_loc_txt sub sub.jkind_annotation) jkind + , map_opt (sub.jkind_annotation sub) jkind ) in { pparam_loc = loc; pparam_desc = desc } @@ -613,70 +490,38 @@ module E = struct type_constraint = map_type_constraint sub type_constraint; } - let map_iterator sub : C.iterator -> C.iterator = function - | Range { start; stop; direction } -> - Range { start = sub.expr sub start; - stop = sub.expr sub stop; - direction } - | In expr -> In (sub.expr sub expr) - - let map_clause_binding sub : C.clause_binding -> C.clause_binding = function - | { pattern; iterator; attributes } -> - { pattern = sub.pat sub pattern; - iterator = map_iterator sub iterator; - attributes = sub.attributes sub attributes } - - let map_clause sub : C.clause -> C.clause = function - | For cbs -> For (List.map (map_clause_binding sub) cbs) - | When expr -> When (sub.expr sub expr) - - let map_comp sub : C.comprehension -> C.comprehension = function - | { body; clauses } -> { body = sub.expr sub body; - clauses = List.map (map_clause sub) clauses } - - let map_cexp sub : C.expression -> C.expression = function - | Cexp_list_comprehension comp -> - Cexp_list_comprehension (map_comp sub comp) - | Cexp_array_comprehension (mut, comp) -> - Cexp_array_comprehension (mut, map_comp sub comp) - - let map_iaexp sub : IA.expression -> IA.expression = function - | Iaexp_immutable_array elts -> - Iaexp_immutable_array (List.map (sub.expr sub) elts) - - let map_unboxed_constant_exp _sub : L.constant -> L.constant = function - (* We can't reasonably call [sub.constant] because it might return a kind - of constant we don't know how to unbox. - *) - | (Float _ | Integer _) as x -> x - - let map_layout_exp sub : L.expression -> L.expression = function - | Lexp_constant x -> Lexp_constant (map_unboxed_constant_exp sub x) - | Lexp_newtype (str, jkind, inner_expr) -> - let str = map_loc sub str in - let jkind = map_loc_txt sub sub.jkind_annotation jkind in - let inner_expr = sub.expr sub inner_expr in - Lexp_newtype (str, jkind, inner_expr) + let map_iterator sub = function + | Pcomp_range { start; stop; direction } -> + Pcomp_range { start = sub.expr sub start; + stop = sub.expr sub stop; + direction } + | Pcomp_in expr -> Pcomp_in (sub.expr sub expr) + + let map_clause_binding sub = function + | { pcomp_cb_pattern; pcomp_cb_iterator; pcomp_cb_attributes } -> + { pcomp_cb_pattern = sub.pat sub pcomp_cb_pattern; + pcomp_cb_iterator = map_iterator sub pcomp_cb_iterator; + pcomp_cb_attributes = sub.attributes sub pcomp_cb_attributes } + + let map_clause sub = function + | Pcomp_for cbs -> Pcomp_for (List.map (map_clause_binding sub) cbs) + | Pcomp_when expr -> Pcomp_when (sub.expr sub expr) + + let map_comp sub = function + | { pcomp_body; pcomp_clauses } -> + { pcomp_body = sub.expr sub pcomp_body; + pcomp_clauses = List.map (map_clause sub) pcomp_clauses } + + let map_cexp sub = function + | Pcomp_list_comprehension comp -> + Pcomp_list_comprehension (map_comp sub comp) + | Pcomp_array_comprehension (mut, comp) -> + Pcomp_array_comprehension (mut, map_comp sub comp) let map_ltexp sub el = List.map (map_snd (sub.expr sub)) el - - let map_jst sub : Jane_syntax.Expression.t -> Jane_syntax.Expression.t = - function - | Jexp_comprehension x -> Jexp_comprehension (map_cexp sub x) - | Jexp_immutable_array x -> Jexp_immutable_array (map_iaexp sub x) - | Jexp_layout x -> Jexp_layout (map_layout_exp sub x) - - let map sub - ({pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} as exp) = + let map sub {pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} = let open Exp in let loc = sub.location sub loc in - match Jane_syntax.Expression.of_ast exp with - | Some (jexp, attrs) -> begin - let attrs = sub.attributes sub attrs in - Jane_syntax.Expression.expr_of ~loc ~attrs - (sub.expr_jane_syntax sub jexp) - end - | None -> let attrs = sub.attributes sub attrs in match desc with | Pexp_ident x -> ident ~loc ~attrs (map_loc sub x) @@ -710,7 +555,7 @@ module E = struct | Pexp_setfield (e1, lid, e2) -> setfield ~loc ~attrs (sub.expr sub e1) (map_loc sub lid) (sub.expr sub e2) - | Pexp_array el -> array ~loc ~attrs (List.map (sub.expr sub) el) + | Pexp_array (mut, el) -> array ~loc ~attrs mut (List.map (sub.expr sub) el) | Pexp_ifthenelse (e1, e2, e3) -> ifthenelse ~loc ~attrs (sub.expr sub e1) (sub.expr sub e2) (map_opt (sub.expr sub) e3) @@ -746,8 +591,10 @@ module E = struct | Pexp_poly (e, t) -> poly ~loc ~attrs (sub.expr sub e) (map_opt (sub.typ sub) t) | Pexp_object cls -> object_ ~loc ~attrs (sub.class_structure sub cls) - | Pexp_newtype (s, e) -> - newtype ~loc ~attrs (map_loc sub s) (sub.expr sub e) + | Pexp_newtype (s, jkind, e) -> + newtype ~loc ~attrs (map_loc sub s) + (map_opt (sub.jkind_annotation sub) jkind) + (sub.expr sub e) | Pexp_pack me -> pack ~loc ~attrs (sub.module_expr sub me) | Pexp_open (o, e) -> open_ ~loc ~attrs (sub.open_declaration sub o) (sub.expr sub e) @@ -757,6 +604,7 @@ module E = struct | Pexp_extension x -> extension ~loc ~attrs (sub.extension sub x) | Pexp_unreachable -> unreachable ~loc ~attrs () | Pexp_stack e -> stack ~loc ~attrs (sub.expr sub e) + | Pexp_comprehension c -> comprehension ~loc ~attrs (map_cexp sub c) let map_binding_op sub {pbop_op; pbop_pat; pbop_exp; pbop_loc} = let open Exp in @@ -771,36 +619,11 @@ end module P = struct (* Patterns *) - module IA = Jane_syntax.Immutable_arrays - module L = Jane_syntax.Layouts - - let map_iapat sub : IA.pattern -> IA.pattern = function - | Iapat_immutable_array elts -> - Iapat_immutable_array (List.map (sub.pat sub) elts) - - let map_unboxed_constant_pat _sub : L.constant -> L.constant = function - (* We can't reasonably call [sub.constant] because it might return a kind - of constant we don't know how to unbox. - *) - | Float _ | Integer _ as x -> x - let map_ltpat sub pl = List.map (map_snd (sub.pat sub)) pl - let map_jst sub : Jane_syntax.Pattern.t -> Jane_syntax.Pattern.t = function - | Jpat_immutable_array x -> Jpat_immutable_array (map_iapat sub x) - | Jpat_layout (Lpat_constant x) -> - Jpat_layout (Lpat_constant (map_unboxed_constant_pat sub x)) - - let map sub - ({ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} as pat) = + let map sub {ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} = let open Pat in let loc = sub.location sub loc in - match Jane_syntax.Pattern.of_ast pat with - | Some (jpat, attrs) -> begin - let attrs = sub.attributes sub attrs in - Jane_syntax.Pattern.pat_of ~loc ~attrs (sub.pat_jane_syntax sub jpat) - end - | None -> let attrs = sub.attributes sub attrs in match desc with | Ppat_any -> any ~loc ~attrs () @@ -821,7 +644,7 @@ module P = struct | Ppat_record (lpl, cf) -> record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub.pat sub)) lpl) cf - | Ppat_array pl -> array ~loc ~attrs (List.map (sub.pat sub) pl) + | Ppat_array (mut, pl) -> array ~loc ~attrs mut (List.map (sub.pat sub) pl) | Ppat_or (p1, p2) -> or_ ~loc ~attrs (sub.pat sub p1) (sub.pat sub p2) | Ppat_constraint (p, t, m) -> constraint_ ~loc ~attrs (sub.pat sub p) (Option.map (sub.typ sub) t) (sub.modes sub m) @@ -846,10 +669,10 @@ module CE = struct | Pcl_structure s -> structure ~loc ~attrs (sub.class_structure sub s) | Pcl_fun (lab, e, p, ce) -> - (fun_ ~loc ~attrs lab + fun_ ~loc ~attrs lab (map_opt (sub.expr sub) e) (sub.pat sub p) - (sub.class_expr sub ce) [@alert "-prefer_jane_syntax"]) + (sub.class_expr sub ce) | Pcl_apply (ce, l) -> apply ~loc ~attrs (sub.class_expr sub ce) (List.map (map_snd (sub.expr sub)) l) @@ -910,8 +733,13 @@ let default_mapper = structure = (fun this l -> List.map (this.structure_item this) l); structure_item = M.map_structure_item; module_expr = M.map; - module_expr_jane_syntax = M.map_ext; - signature = (fun this l -> List.map (this.signature_item this) l); + signature = + (fun this {psg_items; psg_modalities; psg_loc} -> + let psg_modalities = this.modalities this psg_modalities in + let psg_items = List.map (this.signature_item this) psg_items in + let psg_loc = this.location this psg_loc in + {psg_items; psg_modalities; psg_loc} + ); signature_item = MT.map_signature_item; module_type = MT.map; with_constraint = MT.map_with_constraint; @@ -1040,23 +868,16 @@ let default_mapper = constructor_declaration = - (fun this ({pcd_name; pcd_vars; pcd_args; - pcd_res; pcd_loc; pcd_attributes} as pcd) -> + (fun this {pcd_name; pcd_vars; pcd_args; + pcd_res; pcd_loc; pcd_attributes} -> let name = map_loc this pcd_name in let args = T.map_constructor_arguments this pcd_args in let res = map_opt (this.typ this) pcd_res in let loc = this.location this pcd_loc in - match Jane_syntax.Layouts.of_constructor_declaration pcd with - | None -> - let vars = List.map (map_loc this) pcd_vars in - let attrs = this.attributes this pcd_attributes in - Type.constructor name ~vars ~args ?res ~loc ~attrs - | Some (vars_jkinds, attributes) -> - let vars_jkinds = List.map (T.var_jkind this) vars_jkinds in - let attrs = this.attributes this attributes in - Jane_syntax.Layouts.constructor_declaration_of - name ~vars_jkinds ~args ~res ~loc ~attrs - ~info:Docstrings.empty_info + let vars = List.map (T.var_jkind this) pcd_vars in + let attrs = this.attributes this pcd_attributes in + Type.constructor name ~vars ~args ?res ~loc ~attrs + ~info:Docstrings.empty_info ); label_declaration = @@ -1102,29 +923,20 @@ let default_mapper = | PPat (x, g) -> PPat (this.pat this x, map_opt (this.expr this) g) ); - jkind_annotation = (fun this -> - let open Jane_syntax in - function - | Default -> Default - | Abbreviation s -> - let {txt; loc} = - map_loc this s - in - Abbreviation (Jkind.Const.mk txt loc) - | Mod (t, mode_list) -> - Mod (this.jkind_annotation this t, this.modes this mode_list) - | With (t, ty) -> - With (this.jkind_annotation this t, this.typ this ty) - | Kind_of ty -> Kind_of (this.typ this ty) - | Product ts -> Product (List.map (this.jkind_annotation this) ts)); - - expr_jane_syntax = E.map_jst; - extension_constructor_jane_syntax = T.map_extension_constructor_jst; - module_type_jane_syntax = MT.map_jane_syntax; - pat_jane_syntax = P.map_jst; - signature_item_jane_syntax = MT.map_signature_item_jst; - structure_item_jane_syntax = M.map_structure_item_jst; - typ_jane_syntax = T.map_jst; + jkind_annotation = (fun this { pjkind_loc; pjkind_desc } -> + let pjkind_loc = this.location this pjkind_loc in + let pjkind_desc = + match pjkind_desc with + | Default -> Default + | Abbreviation (s : string) -> Abbreviation s + | Mod (t, mode_list) -> + Mod (this.jkind_annotation this t, this.modes this mode_list) + | With (t, ty) -> + With (this.jkind_annotation this t, this.typ this ty) + | Kind_of ty -> Kind_of (this.typ this ty) + | Product ts -> Product (List.map (this.jkind_annotation this) ts) + in + { pjkind_loc; pjkind_desc }); modes = (fun this m -> List.map (map_loc this) m); @@ -1216,6 +1028,7 @@ module PpxContext = struct make_list (make_pair make_string (fun x -> x)) (String.Map.bindings !cookies) + (* CR zqian: add [psg_attributes] to `Parsetree.signature`, and use that. *) let mk fields = { attr_name = { txt = "ocaml.ppx.context"; loc = Location.none }; @@ -1388,26 +1201,28 @@ let apply_lazy ~source ~target mapper = let fields = PpxContext.update_cookies fields in Str.attribute (PpxContext.mk fields) :: ast in - let iface ast = - let fields, ast = - match ast with + let iface {psg_items; psg_modalities; psg_loc} = + let fields, psg_items = + match psg_items with | {psig_desc = Psig_attribute ({attr_name = {txt = "ocaml.ppx.context"}; attr_payload = x; attr_loc = _})} :: l -> PpxContext.get_fields x, l - | _ -> [], ast + | _ -> [], psg_items in PpxContext.restore fields; - let ast = + let {psg_items; psg_modalities; psg_loc} = try let mapper = mapper () in - mapper.signature mapper ast + mapper.signature mapper {psg_items; psg_modalities; psg_loc} with exn -> - [{psig_desc = Psig_extension (extension_of_exn exn, []); - psig_loc = Location.none}] + { psg_items = [{psig_desc = Psig_extension (extension_of_exn exn, []); + psig_loc = Location.none}]; + psg_modalities = []; psg_loc = Location.none } in let fields = PpxContext.update_cookies fields in - Sig.attribute (PpxContext.mk fields) :: ast + let psg_items = Sig.attribute (PpxContext.mk fields) :: psg_items in + {psg_items; psg_modalities; psg_loc} in let ic = open_in_bin source in @@ -1447,7 +1262,7 @@ let drop_ppx_context_str ~restore = function items | items -> items -let drop_ppx_context_sig ~restore = function +let drop_ppx_context_sig_items ~restore = function | {psig_desc = Psig_attribute {attr_name = {Location.txt = "ocaml.ppx.context"}; attr_payload = a; @@ -1458,12 +1273,19 @@ let drop_ppx_context_sig ~restore = function items | items -> items +let drop_ppx_context_sig ~restore {psg_items; psg_modalities; psg_loc} = + let psg_items = drop_ppx_context_sig_items ~restore psg_items in + {psg_items; psg_modalities; psg_loc} + let add_ppx_context_str ~tool_name ast = Ast_helper.Str.attribute (ppx_context ~tool_name ()) :: ast -let add_ppx_context_sig ~tool_name ast = - Ast_helper.Sig.attribute (ppx_context ~tool_name ()) :: ast +let add_ppx_context_sig_items ~tool_name ast = + Ast_helper.Sig.attribute (ppx_context ~tool_name ()) :: ast +let add_ppx_context_sig ~tool_name {psg_items; psg_modalities; psg_loc} = + let psg_items = add_ppx_context_sig_items ~tool_name psg_items in + {psg_items; psg_modalities; psg_loc} let apply ~source ~target mapper = apply_lazy ~source ~target (fun () -> mapper) diff --git a/upstream/ocaml_flambda/parsing/ast_mapper.mli b/upstream/ocaml_flambda/parsing/ast_mapper.mli index b171cbcaf..c3bd5effb 100644 --- a/upstream/ocaml_flambda/parsing/ast_mapper.mli +++ b/upstream/ocaml_flambda/parsing/ast_mapper.mli @@ -92,8 +92,7 @@ type mapper = { thus the thing being included might be a functor and not a plain module type *) - jkind_annotation: - mapper -> Jane_syntax.Jkind.t -> Jane_syntax.Jkind.t; + jkind_annotation: mapper -> jkind_annotation -> jkind_annotation; label_declaration: mapper -> label_declaration -> label_declaration; location: mapper -> Location.t -> Location.t; module_binding: mapper -> module_binding -> module_binding; @@ -121,22 +120,6 @@ type mapper = { value_binding: mapper -> value_binding -> value_binding; value_description: mapper -> value_description -> value_description; with_constraint: mapper -> with_constraint -> with_constraint; - - expr_jane_syntax: - mapper -> Jane_syntax.Expression.t -> Jane_syntax.Expression.t; - extension_constructor_jane_syntax: - mapper -> - Jane_syntax.Extension_constructor.t -> Jane_syntax.Extension_constructor.t; - module_type_jane_syntax: mapper -> - Jane_syntax.Module_type.t -> Jane_syntax.Module_type.t; - module_expr_jane_syntax: mapper -> - Jane_syntax.Module_expr.t -> Jane_syntax.Module_expr.t; - pat_jane_syntax: mapper -> Jane_syntax.Pattern.t -> Jane_syntax.Pattern.t; - signature_item_jane_syntax: mapper -> - Jane_syntax.Signature_item.t -> Jane_syntax.Signature_item.t; - structure_item_jane_syntax: mapper -> - Jane_syntax.Structure_item.t -> Jane_syntax.Structure_item.t; - typ_jane_syntax: mapper -> Jane_syntax.Core_type.t -> Jane_syntax.Core_type.t; } (** A mapper record implements one "method" per syntactic category, using an open recursion style: each method takes as its first @@ -220,6 +203,9 @@ val add_ppx_context_sig: tool_name:string -> Parsetree.signature -> Parsetree.signature (** Same as [add_ppx_context_str], but for signatures. *) +val add_ppx_context_sig_items: + tool_name:string -> Parsetree.signature_item list -> Parsetree.signature_item list + val drop_ppx_context_str: restore:bool -> Parsetree.structure -> Parsetree.structure (** Drop the ocaml.ppx.context attribute from a structure. If @@ -230,6 +216,9 @@ val drop_ppx_context_sig: restore:bool -> Parsetree.signature -> Parsetree.signature (** Same as [drop_ppx_context_str], but for signatures. *) +val drop_ppx_context_sig_items: + restore:bool -> Parsetree.signature_item list -> Parsetree.signature_item list + (** {1 Cookies} *) (** Cookies are used to pass information from a ppx processor to diff --git a/upstream/ocaml_flambda/parsing/builtin_attributes.ml b/upstream/ocaml_flambda/parsing/builtin_attributes.ml index 4da53931a..f5a1fb02f 100644 --- a/upstream/ocaml_flambda/parsing/builtin_attributes.ml +++ b/upstream/ocaml_flambda/parsing/builtin_attributes.ml @@ -116,8 +116,14 @@ let builtin_attrs = ; "no_mutable_implied_modalities" ; "or_null_reexport" ; "no_recursive_modalities" + ; "jane.non_erasable.instances" ] +let builtin_attrs = + let tbl = Hashtbl.create 128 in + List.iter (fun attr -> Hashtbl.add tbl attr ()) builtin_attrs; + tbl + let drop_ocaml_attr_prefix s = let len = String.length s in if String.starts_with ~prefix:"ocaml." s && len > 6 then @@ -125,42 +131,7 @@ let drop_ocaml_attr_prefix s = else s -(* nroberts: When we upstream the builtin-attribute whitelisting, we shouldn't - upstream the "jane" prefix. - - Internally, we use "jane.*" to encode our changes to the parsetree, - and our compiler should not drop these attributes. - - Upstream, ppxes may produce attributes with the "jane.*" prefix. - The upstream compiler does not use these attributes. We want it to be - able to drop these attributes without a warning. - - It's an error for an upstream ppx to create an attribute that corresponds to - a *non-erasable* Jane language extension, like list comprehensions, which - should never reach the upstream compiler. So, we distinguish that in the - attribute prefix: upstream ppxlib will error out if it sees a ppx creating a - "jane.non_erasable" attribute and be happy to accept a "jane.erasable" - attribute. Meanwhile, an internal patched version of ppxlib will be happy for - a ppx to produce either of these attributes. -*) -let builtin_attr_prefixes = - [ "jane" - ] - -let is_builtin_attr = - let builtin_attrs = - let tbl = Hashtbl.create 128 in - List.iter - (fun attr -> Hashtbl.add tbl attr ()) - (builtin_attr_prefixes @ builtin_attrs); - tbl - in - let builtin_attr_prefixes_with_trailing_dot = - List.map (fun x -> x ^ ".") builtin_attr_prefixes - in - fun s -> - Hashtbl.mem builtin_attrs (drop_ocaml_attr_prefix s) - || List.exists - (fun prefix -> String.starts_with ~prefix s) - builtin_attr_prefixes_with_trailing_dot +let is_builtin_attr s = Hashtbl.mem builtin_attrs (drop_ocaml_attr_prefix s) type current_phase = Parser | Invariant_check @@ -352,14 +323,14 @@ let check_deprecated_mutable_inclusion ~def ~use loc attrs1 attrs2 s = Location.deprecated ~def ~use loc (Printf.sprintf "mutating field %s" (cat s txt)) -let rec attrs_of_sig = function +let rec attrs_of_sig_items = function | {psig_desc = Psig_attribute a} :: tl -> - a :: attrs_of_sig tl + a :: attrs_of_sig_items tl | _ -> [] -let alerts_of_sig ~mark sg = - let a = attrs_of_sig sg in +let alerts_of_sig ~mark {psg_items; _} = + let a = attrs_of_sig_items psg_items in if mark then mark_alerts_used a; alerts_of_attrs a @@ -661,13 +632,19 @@ let has_local_opt attrs = let has_layout_poly attrs = has_attribute "layout_poly" attrs +let curry_attr_name = "extension.curry" + let has_curry attrs = - has_attribute Jane_syntax.Arrow_curry.curry_attr_name attrs + has_attribute curry_attr_name attrs || has_attribute "curry" attrs let has_or_null_reexport attrs = has_attribute "or_null_reexport" attrs +let curry_attr loc = + Ast_helper.Attr.mk ~loc:Location.none (Location.mkloc curry_attr_name loc) (PStr []) +;; + let tailcall attr = let has_nontail = has_attribute "nontail" attr in let tail_attrs = select_attributes ["tail", Return] attr in diff --git a/upstream/ocaml_flambda/parsing/builtin_attributes.mli b/upstream/ocaml_flambda/parsing/builtin_attributes.mli index ad1863309..189b6eede 100644 --- a/upstream/ocaml_flambda/parsing/builtin_attributes.mli +++ b/upstream/ocaml_flambda/parsing/builtin_attributes.mli @@ -201,6 +201,14 @@ val has_boxed: Parsetree.attributes -> bool val parse_standard_interface_attributes : Parsetree.attribute -> unit val parse_standard_implementation_attributes : Parsetree.attribute -> unit +(** The attribute placed on the inner [Ptyp_arrow] node in [x -> (y -> z)] + (meaning the [y -> z] node) to indicate parenthesization. This is relevant + for locals, as [local_ x -> (y -> z)] is different than + [local_ x -> y -> z]. +*) +val curry_attr_name : string +val curry_attr : Location.t -> Parsetree.attribute + val has_no_mutable_implied_modalities: Parsetree.attributes -> bool val has_local_opt: Parsetree.attributes -> bool val has_layout_poly: Parsetree.attributes -> bool diff --git a/upstream/ocaml_flambda/parsing/depend.ml b/upstream/ocaml_flambda/parsing/depend.ml index a6f6a563a..dec2f0a42 100644 --- a/upstream/ocaml_flambda/parsing/depend.ml +++ b/upstream/ocaml_flambda/parsing/depend.ml @@ -93,21 +93,10 @@ let handle_extension ext = | _ -> () -(* CR layouts: Remember to add this when jkinds can have module - prefixes. *) -let add_jkind _bv (_jkind : Jane_syntax.Jkind.annotation) = () - -let add_vars_jkinds bv vars_jkinds = - let add_one (_, jkind) = Option.iter (add_jkind bv) jkind in - List.iter add_one vars_jkinds - let rec add_type bv ty = - match Jane_syntax.Core_type.of_ast ty with - | Some (jty, _attrs) -> add_type_jst bv jty - | None -> match ty.ptyp_desc with - Ptyp_any -> () - | Ptyp_var _ -> () + Ptyp_any jkind + | Ptyp_var (_, jkind) -> Option.iter (add_jkind bv) jkind | Ptyp_arrow(_, t1, t2, _, _) -> add_type bv t1; add_type bv t2 | Ptyp_tuple tl -> add_type_labeled_tuple bv tl | Ptyp_unboxed_tuple tl -> add_type_labeled_tuple bv tl @@ -118,33 +107,24 @@ let rec add_type bv ty = | Otag (_, t) -> add_type bv t | Oinherit t -> add_type bv t) fl | Ptyp_class(c, tl) -> add bv c; List.iter (add_type bv) tl - | Ptyp_alias(t, _) -> add_type bv t + | Ptyp_alias(t, _, jkind) -> + add_type bv t; + Option.iter (add_jkind bv) jkind | Ptyp_variant(fl, _, _) -> List.iter (fun {prf_desc; _} -> match prf_desc with | Rtag(_, _, stl) -> List.iter (add_type bv) stl | Rinherit sty -> add_type bv sty) fl - | Ptyp_poly(_, t) -> add_type bv t + | Ptyp_poly(bound_vars, t) -> + add_vars_jkinds bv bound_vars; + add_type bv t | Ptyp_package pt -> add_package_type bv pt | Ptyp_open (mod_ident, t) -> let bv = open_module bv mod_ident.txt in add_type bv t | Ptyp_extension e -> handle_extension e -and add_type_jst bv : Jane_syntax.Core_type.t -> _ = function - | Jtyp_layout typ -> add_type_jst_layouts bv typ - -and add_type_jst_layouts bv : Jane_syntax.Layouts.core_type -> _ = function - | Ltyp_var { name = _; jkind } -> - add_jkind bv jkind - | Ltyp_poly { bound_vars; inner_type } -> - add_vars_jkinds bv bound_vars; - add_type bv inner_type - | Ltyp_alias { aliased_type; name = _; jkind } -> - add_type bv aliased_type; - add_jkind bv jkind - and add_type_labeled_tuple bv tl = List.iter (fun (_, ty) -> add_type bv ty) tl @@ -152,6 +132,25 @@ and add_package_type bv (lid, l) = add bv lid; List.iter (add_type bv) (List.map (fun (_, e) -> e) l) +(* CR layouts: Remember to add this when jkinds can have module + prefixes. *) +and add_jkind bv (jkind : jkind_annotation) = + match jkind.pjkind_desc with + | Default -> () + | Abbreviation _ -> () + | Mod (jkind, (_ : modes)) -> add_jkind bv jkind + | With (jkind, typ) -> + add_jkind bv jkind; + add_type bv typ + | Kind_of typ -> + add_type bv typ + | Product jkinds -> + List.iter (fun jkind -> add_jkind bv jkind) jkinds + +and add_vars_jkinds bv vars_jkinds = + let add_one (_, jkind) = Option.iter (add_jkind bv) jkind in + List.iter add_one vars_jkinds + let add_opt add_fn bv = function None -> () | Some x -> add_fn bv x @@ -178,19 +177,10 @@ let add_type_declaration bv td = | Ptype_open -> () in add_tkind td.ptype_kind -let add_extension_constructor_jst bv : - Jane_syntax.Extension_constructor.t -> _ = function - | Jext_layout (Lext_decl (vars_jkinds, args, res)) -> - add_vars_jkinds bv vars_jkinds; - add_constructor_arguments bv args; - Option.iter (add_type bv) res - let add_extension_constructor bv ext = - match Jane_syntax.Extension_constructor.of_ast ext with - | Some (jext, _attrs) -> add_extension_constructor_jst bv jext - | None -> match ext.pext_kind with - Pext_decl(_, args, rty) -> + Pext_decl(vars_jkinds, args, rty) -> + add_vars_jkinds bv vars_jkinds; add_constructor_arguments bv args; Option.iter (add_type bv) rty | Pext_rebind lid -> add bv lid @@ -204,14 +194,7 @@ let add_type_exception bv te = let pattern_bv = ref String.Map.empty -(* A no-op, but makes it clearer which jane syntax cases should have the same - handling as core-language cases. *) -let add_constant = () - let rec add_pattern bv pat = - match Jane_syntax.Pattern.of_ast pat with - | Some (jpat, _attrs) -> add_pattern_jane_syntax bv jpat - | None -> match pat.ppat_desc with Ppat_any -> () | Ppat_var _ -> () @@ -227,7 +210,7 @@ let rec add_pattern bv pat = bv opt | Ppat_record(pl, _) -> List.iter (fun (lbl, p) -> add bv lbl; add_pattern bv p) pl - | Ppat_array pl -> List.iter (add_pattern bv) pl + | Ppat_array (_, pl) -> List.iter (add_pattern bv) pl | Ppat_or(p1, p2) -> add_pattern bv p1; add_pattern bv p2 | Ppat_constraint(p, ty, _) -> add_pattern bv p; @@ -241,10 +224,6 @@ let rec add_pattern bv pat = | Ppat_open ( m, p) -> let bv = open_module bv m.txt in add_pattern bv p | Ppat_exception p -> add_pattern bv p | Ppat_extension e -> handle_extension e -and add_pattern_jane_syntax bv : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array (Iapat_immutable_array pl) -> - List.iter (add_pattern bv) pl - | Jpat_layout (Lpat_constant _) -> add_constant and add_pattern_labeled_tuple bv labeled_pl = List.iter (fun (_, p) -> add_pattern bv p) labeled_pl @@ -255,12 +234,9 @@ let add_pattern bv pat = !pattern_bv let rec add_expr bv exp = - match Jane_syntax.Expression.of_ast exp with - | Some (jexp, _attrs) -> add_expr_jane_syntax bv jexp - | None -> match exp.pexp_desc with Pexp_ident l -> add bv l - | Pexp_constant _ -> add_constant + | Pexp_constant _ -> () | Pexp_let(rf, pel, e) -> let bv = add_bindings rf bv pel in add_expr bv e | Pexp_function (params, constraint_, body) -> @@ -280,7 +256,7 @@ let rec add_expr bv exp = add_opt add_expr bv opte | Pexp_field(e, fld) -> add_expr bv e; add bv fld | Pexp_setfield(e1, fld, e2) -> add_expr bv e1; add bv fld; add_expr bv e2 - | Pexp_array el -> List.iter (add_expr bv) el + | Pexp_array (_, el) -> List.iter (add_expr bv) el | Pexp_ifthenelse(e1, e2, opte3) -> add_expr bv e1; add_expr bv e2; add_opt add_expr bv opte3 | Pexp_sequence(e1, e2) -> add_expr bv e1; add_expr bv e2 @@ -312,7 +288,9 @@ let rec add_expr bv exp = | Pexp_poly (e, t) -> add_expr bv e; add_opt add_type bv t | Pexp_object { pcstr_self = pat; pcstr_fields = fieldl } -> let bv = add_pattern bv pat in List.iter (add_class_field bv) fieldl - | Pexp_newtype (_, e) -> add_expr bv e + | Pexp_newtype (_, jkind, e) -> + Option.iter (add_jkind bv) jkind; + add_expr bv e | Pexp_pack m -> add_module_expr bv m | Pexp_open (o, e) -> let bv = open_declaration bv o in @@ -336,55 +314,36 @@ let rec add_expr bv exp = | Pexp_extension e -> handle_extension e | Pexp_stack e -> add_expr bv e | Pexp_unreachable -> () + | Pexp_comprehension x -> add_comprehension_expr bv x -and add_expr_jane_syntax bv : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension x -> add_comprehension_expr bv x - | Jexp_immutable_array x -> add_immutable_array_expr bv x - | Jexp_layout x -> add_layout_expr bv x - -and add_comprehension_expr bv : Jane_syntax.Comprehensions.expression -> _ = - function - | Cexp_list_comprehension comp -> add_comprehension bv comp - | Cexp_array_comprehension (_, comp) -> add_comprehension bv comp +and add_comprehension_expr bv = function + | Pcomp_list_comprehension comp -> add_comprehension bv comp + | Pcomp_array_comprehension (_, comp) -> add_comprehension bv comp -and add_comprehension bv - ({ body; clauses } : Jane_syntax.Comprehensions.comprehension) = - let bv = List.fold_left add_comprehension_clause bv clauses in - add_expr bv body +and add_comprehension bv { pcomp_body; pcomp_clauses } = + let bv = List.fold_left add_comprehension_clause bv pcomp_clauses in + add_expr bv pcomp_body -and add_comprehension_clause bv : Jane_syntax.Comprehensions.clause -> _ = - function +and add_comprehension_clause bv = function (* fold_left here is a little suspicious, because the different clauses should be interpreted in parallel. But this treatment echoes the treatment in [Pexp_let] (in [add_bindings]). *) - | For cbs -> List.fold_left add_comprehension_clause_binding bv cbs - | When expr -> add_expr bv expr; bv + | Pcomp_for cbs -> List.fold_left add_comprehension_clause_binding bv cbs + | Pcomp_when expr -> add_expr bv expr; bv and add_comprehension_clause_binding bv - ({ pattern; iterator; attributes = _ } : - Jane_syntax.Comprehensions.clause_binding) = - let bv = add_pattern bv pattern in - add_comprehension_iterator bv iterator; + { pcomp_cb_pattern; pcomp_cb_iterator; pcomp_cb_attributes = _ } = + let bv = add_pattern bv pcomp_cb_pattern in + add_comprehension_iterator bv pcomp_cb_iterator; bv -and add_comprehension_iterator bv : Jane_syntax.Comprehensions.iterator -> _ = - function - | Range { start; stop; direction = _ } -> +and add_comprehension_iterator bv = function + | Pcomp_range { start; stop; direction = _ } -> add_expr bv start; add_expr bv stop - | In expr -> + | Pcomp_in expr -> add_expr bv expr -and add_immutable_array_expr bv : Jane_syntax.Immutable_arrays.expression -> _ = - function - | Iaexp_immutable_array exprs -> List.iter (add_expr bv) exprs - -and add_layout_expr bv : Jane_syntax.Layouts.expression -> _ = function - | Lexp_constant _ -> add_constant - | Lexp_newtype (_, jkind, inner_expr) -> - add_jkind bv jkind; - add_expr bv inner_expr - and add_labeled_tuple_expr bv el = List.iter (add_expr bv) (List.map snd el) and add_function_param bv param = @@ -439,9 +398,6 @@ and add_binding_op bv bv' pbop = add_pattern bv' pbop.pbop_pat and add_modtype bv mty = - match Jane_syntax.Module_type.of_ast mty with - | Some (jmty, _attrs) -> add_modtype_jane_syntax bv jmty - | None -> match mty.pmty_desc with Pmty_ident l -> add bv l | Pmty_alias l -> add_module_path bv l @@ -471,11 +427,9 @@ and add_modtype bv mty = cstrl | Pmty_typeof m -> add_module_expr bv m | Pmty_extension e -> handle_extension e - -and add_modtype_jane_syntax bv : Jane_syntax.Module_type.t -> _ = function - | Jmty_strengthen { mty; mod_id } -> - add_modtype bv mty; - add_module_path bv mod_id + | Pmty_strengthen (mty, mod_id) -> + add_modtype bv mty; + add_module_path bv mod_id and add_module_alias bv l = (* If we are in delayed dependencies mode, we delay the dependencies @@ -489,9 +443,6 @@ and add_module_alias bv l = | _ -> add_module_path bv l; bound (* cannot delay *) and add_modtype_binding bv mty = - match Jane_syntax.Module_type.of_ast mty with - | Some (jmty, _attrs) -> add_modtype_jane_syntax_binding bv jmty - | None -> match mty.pmty_desc with Pmty_alias l -> add_module_alias bv l @@ -499,22 +450,19 @@ and add_modtype_binding bv mty = make_node (add_signature_binding bv s) | Pmty_typeof modl -> add_module_binding bv modl + | Pmty_strengthen (mty, mod_id) -> + (* treat like a [with] constraint *) + add_modtype bv mty; + add_module_path bv mod_id; + bound | _ -> add_modtype bv mty; bound -and add_modtype_jane_syntax_binding bv : Jane_syntax.Module_type.t -> _ = - function - | Jmty_strengthen { mty; mod_id } -> - (* treat like a [with] constraint *) - add_modtype bv mty; - add_module_path bv mod_id; - bound - and add_signature bv sg = ignore (add_signature_binding bv sg) and add_signature_binding bv sg = - snd (List.fold_left add_sig_item (bv, String.Map.empty) sg) + snd (List.fold_left add_sig_item (bv, String.Map.empty) sg.psg_items) (* When we merge [include functor] upstream this can get re-inlined *) and add_include_description (bv, m) incl = @@ -523,14 +471,7 @@ and add_include_description (bv, m) incl = let add = String.Map.fold String.Map.add m' in (add bv, add m) -and add_sig_item_jst (bv, m) : Jane_syntax.Signature_item.t -> _ = function - | Jsig_layout (Lsig_kind_abbrev (_, jkind)) -> - add_jkind bv jkind; (bv, m) - and add_sig_item (bv, m) item = - match Jane_syntax.Signature_item.of_ast item with - | Some jitem -> add_sig_item_jst (bv, m) jitem - | None -> match item.psig_desc with Psig_value vd -> add_type bv vd.pval_type; (bv, m) @@ -582,6 +523,8 @@ and add_sig_item (bv, m) item = | Psig_extension (e, _) -> handle_extension e; (bv, m) + | Psig_kind_abbrev (_, jkind) -> + add_jkind bv jkind; (bv, m) and open_description bv od = let Node(s, m) = add_module_alias bv od.popen_expr in @@ -626,6 +569,15 @@ and add_module_expr bv modl = add_expr bv e | Pmod_extension e -> handle_extension e + | Pmod_instance instance -> + add_instance bv instance + +and add_instance bv { pmod_instance_head; pmod_instance_args } = + add_path bv (Lident pmod_instance_head); + List.iter (fun (name, arg) -> + add_path bv (Lident name); + add_instance bv arg) + pmod_instance_args and add_class_type bv cty = match cty.pcty_desc with @@ -675,14 +627,7 @@ and add_include_declaration (bv, m) incl = let add = String.Map.fold String.Map.add m' in (add bv, add m) -and add_struct_item_jst (bv, m) : Jane_syntax.Structure_item.t -> _ = function - | Jstr_layout (Lstr_kind_abbrev (_name, jkind)) -> - add_jkind bv jkind; (bv, m) - and add_struct_item (bv, m) item : _ String.Map.t * _ String.Map.t = - match Jane_syntax.Structure_item.of_ast item with - | Some jitem -> add_struct_item_jst (bv, m) jitem - | None -> match item.pstr_desc with Pstr_eval (e, _attrs) -> add_expr bv e; (bv, m) @@ -737,6 +682,8 @@ and add_struct_item (bv, m) item : _ String.Map.t * _ String.Map.t = | Pstr_extension (e, _) -> handle_extension e; (bv, m) + | Pstr_kind_abbrev (_name, jkind) -> + add_jkind bv jkind; (bv, m) and add_use_file bv top_phrs = ignore (List.fold_left add_top_phrase bv top_phrs) diff --git a/upstream/ocaml_flambda/parsing/jane_syntax.ml b/upstream/ocaml_flambda/parsing/jane_syntax.ml index 27991985e..e69de29bb 100644 --- a/upstream/ocaml_flambda/parsing/jane_syntax.ml +++ b/upstream/ocaml_flambda/parsing/jane_syntax.ml @@ -1,1522 +0,0 @@ -open Asttypes -open Parsetree -open Jane_syntax_parsing - -(** We carefully regulate which bindings we import from [Language_extension] - to ensure that we can import this file into the Jane Street internal - repo with no changes. -*) -module Language_extension = struct - include Language_extension_kernel - - include ( - Language_extension : - Language_extension_kernel.Language_extension_for_jane_syntax) -end - -(* Suppress the unused module warning so it's easy to keep around the - shadowing even if we delete use sites of the module. *) -module _ = Language_extension - -(****************************************) -(* Helpers used just within this module *) - -module type Extension = sig - val feature : Feature.t -end - -module Ast_of (AST : AST) (Ext : Extension) : sig - (* Wrap a bit of AST with a jane-syntax annotation *) - val wrap_jane_syntax : - string list -> - (* these strings describe the bit of new syntax *) - ?payload:payload -> - AST.ast -> - AST.ast -end = struct - let wrap_jane_syntax suffixes ?payload to_be_wrapped = - AST.make_jane_syntax Ext.feature suffixes ?payload to_be_wrapped -end - -module Of_ast (Ext : Extension) : sig - type unwrapped := string list * payload * attributes - - (* Find and remove a jane-syntax attribute marker, throwing an exception - if the attribute name does not have the right format or extension. *) - val unwrap_jane_syntax_attributes_exn : - loc:Location.t -> attributes -> unwrapped -end = struct - let extension_string = Feature.extension_component Ext.feature - - module Desugaring_error = struct - type error = - | Not_this_embedding of Embedded_name.t - | Non_embedding - - let report_error ~loc = function - | Not_this_embedding name -> - Location.errorf ~loc - "Tried to desugar the embedded term %a@ as belonging to the %s \ - extension" - Embedded_name.pp_quoted_name name extension_string - | Non_embedding -> - Location.errorf ~loc - "Tried to desugar a non-embedded expression@ as belonging to the %s \ - extension" - extension_string - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise ~loc err = raise (Error (loc, err)) - end - - let unwrap_jane_syntax_attributes attrs : (_, Desugaring_error.error) result = - match find_and_remove_jane_syntax_attribute attrs with - | Some (ext_name, _loc, payload, attrs) -> ( - match Jane_syntax_parsing.Embedded_name.components ext_name with - | extension_occur :: names - when String.equal extension_occur extension_string -> - Ok (names, payload, attrs) - | _ -> Error (Not_this_embedding ext_name)) - | None -> Error Non_embedding - - let unwrap_jane_syntax_attributes_exn ~loc attrs = - match unwrap_jane_syntax_attributes attrs with - | Ok x -> x - | Error error -> Desugaring_error.raise ~loc error -end - -(******************************************************************************) -(** Individual language extension modules *) - -(* Note [Check for immutable extension in comprehensions code] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - When we spot a comprehension for an immutable array, we need to make sure - that both [comprehensions] and [immutable_arrays] are enabled. But our - general mechanism for checking for enabled extensions (in [of_ast]) won't - work well here: it triggers when converting from - e.g. [[%jane.non_erasable.comprehensions.array] ...] to the - comprehensions-specific AST. But if we spot a - [[%jane.non_erasable.comprehensions.immutable]], there is no expression to - translate. So we just check for the immutable arrays extension when - processing a comprehension expression for an immutable array. - - Note [Wrapping with make_entire_jane_syntax] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - The topmost node in the encoded AST must always look like e.g. - [%jane.non_erasable.comprehensions]. (More generally, - [%jane.ERASABILITY.FEATURE] or [@jane.ERASABILITY.FEATURE].) This allows the - decoding machinery to know what extension is being used and what function to - call to do the decoding. Accordingly, during encoding, after doing the hard - work of converting the extension syntax tree into e.g. Parsetree.expression, - we need to make a final step of wrapping the result in a [%jane.*.xyz] node. - Ideally, this step would be done by part of our general structure, like we - separate [of_ast] and [of_ast_internal] in the decode structure; this design - would make it structurally impossible/hard to forget taking this final step. - - However, the final step is only one line of code (a call to - [make_entire_jane_syntax]), but yet the name of the feature varies, as does - the type of the payload. It would thus take several lines of code to execute - this command otherwise, along with dozens of lines to create the structure in - the first place. And so instead we just manually call - [make_entire_jane_syntax] and refer to this Note as a reminder to authors of - future syntax features to remember to do this wrapping. - - Note [Outer attributes at end] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - The order of attributes matters for several reasons: - - If the user writes attributes on a Jane Street OCaml construct, where - should those appear with respect to the Jane Syntax attribute that - introduces the construct? - - Some Jane Syntax embeddings use attributes, and sometimes an AST node will - have multiple Jane Syntax-related attributes on it. Which attribute should - Jane Syntax interpret first? - - Both of these questions are settled by a convention where attributes - appearing later in an attribute list are considered to be "outer" to - attributes appearing earlier. (ppxlib adopted this convention, and thus we - need to as well for compatibility.) - - - User-written attributes appear later in the attribute list than - a Jane Syntax attribute that introduces a syntactic construct. - - If multiple Jane Syntax attributes appear on an AST node, the ones - appearing later in the attribute list should be interpreted first. -*) - -module type Payload_protocol = sig - type t - - module Encode : sig - val as_payload : t loc -> payload - - val list_as_payload : t loc list -> payload - - val option_list_as_payload : t loc option list -> payload - end - - module Decode : sig - val from_payload : loc:Location.t -> payload -> t loc - - val list_from_payload : loc:Location.t -> payload -> t loc list - - val option_list_from_payload : - loc:Location.t -> payload -> t loc option list - end -end - -module type Structure_item_encodable = sig - type t - - val of_structure_item : structure_item -> t loc option - - val to_structure_item : t loc -> structure_item - - (** For error messages: a name that can be used to identify the - [t] being converted to and from string, and its indefinite - article (either "a" or "an"). - *) - val indefinite_article_and_name : string * string -end - -module type Stringable = sig - type t - - val of_string : string -> t option - - val to_string : t -> string - - (** For error messages: a name that can be used to identify the - [t] being converted to and from string, and its indefinite - article (either "a" or "an"). - *) - val indefinite_article_and_name : string * string -end - -module Make_structure_item_encodable_of_stringable (Stringable : Stringable) : - Structure_item_encodable with type t = Stringable.t = struct - include Stringable - - let to_structure_item t_loc = - let string = Stringable.to_string t_loc.txt in - let expr = - Ast_helper.Exp.ident (Location.mkloc (Longident.Lident string) t_loc.loc) - in - { pstr_desc = Pstr_eval (expr, []); pstr_loc = Location.none } - - let of_structure_item = function - | { pstr_desc = Pstr_eval ({ pexp_desc = Pexp_ident payload_lid; _ }, _) } - -> ( - match Stringable.of_string (Longident.last payload_lid.txt) with - | Some t -> Some (Location.mkloc t payload_lid.loc) - | None -> None) - | _ -> None -end - -module Make_payload_protocol_of_structure_item_encodable - (Encodable : Structure_item_encodable) : - Payload_protocol with type t := Encodable.t = struct - module Encode = struct - let structure_item_of_none = - { pstr_desc = - Pstr_attribute - { attr_name = Location.mknoloc "jane.none"; - attr_payload = PStr []; - attr_loc = Location.none - }; - pstr_loc = Location.none - } - - let as_payload t_loc = PStr [Encodable.to_structure_item t_loc] - - let list_as_payload t_locs = - let items = List.map Encodable.to_structure_item t_locs in - PStr items - - let option_list_as_payload t_locs = - let items = - List.map - (function - | None -> structure_item_of_none - | Some t_loc -> Encodable.to_structure_item t_loc) - t_locs - in - PStr items - end - - module Desugaring_error = struct - type error = Unknown_payload of payload - - let report_error ~loc = function - | Unknown_payload payload -> - let indefinite_article, name = Encodable.indefinite_article_and_name in - Location.errorf ~loc "Attribute payload does not name %s %s:@;%a" - indefinite_article name (Printast.payload 0) payload - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise ~loc err = raise (Error (loc, err)) - end - - module Decode = struct - (* Avoid exporting a definition that raises [Unexpected]. *) - open struct - exception Unexpected - - let is_none_structure_item = function - | { pstr_desc = Pstr_attribute { attr_name = { txt = "jane.none" } } } - -> - true - | _ -> false - - let from_structure_item item = - match Encodable.of_structure_item item with - | Some t_loc -> t_loc - | None -> raise Unexpected - - let from_payload payload = - match payload with - | PStr [item] -> from_structure_item item - | _ -> raise Unexpected - - let list_from_payload payload = - match payload with - | PStr items -> List.map (fun item -> from_structure_item item) items - | _ -> raise Unexpected - - let option_list_from_payload payload = - match payload with - | PStr items -> - List.map - (fun item -> - if is_none_structure_item item - then None - else Some (from_structure_item item)) - items - | _ -> raise Unexpected - end - - let from_payload ~loc payload : _ loc = - try from_payload payload - with Unexpected -> Desugaring_error.raise ~loc (Unknown_payload payload) - - let list_from_payload ~loc payload : _ list = - try list_from_payload payload - with Unexpected -> Desugaring_error.raise ~loc (Unknown_payload payload) - - let option_list_from_payload ~loc payload : _ list = - try option_list_from_payload payload - with Unexpected -> Desugaring_error.raise ~loc (Unknown_payload payload) - end -end - -module Make_payload_protocol_of_stringable (Stringable : Stringable) : - Payload_protocol with type t := Stringable.t = - Make_payload_protocol_of_structure_item_encodable - (Make_structure_item_encodable_of_stringable (Stringable)) - -module Arrow_curry = struct - let curry_attr_name = "extension.curry" - - let curry_attr loc = - Ast_helper.Attr.mk ~loc:Location.none - (Location.mkloc curry_attr_name loc) - (PStr []) -end - -(* only used for [Jkind] below *) -module Mode = struct - module Protocol = Make_payload_protocol_of_stringable (struct - type t = mode - - let indefinite_article_and_name = "a", "mode" - - let to_string (Mode s) = s - - let of_string' s = Mode s - - let of_string s = Some (of_string' s) - end) - - let list_as_payload = Protocol.Encode.list_as_payload - - let list_from_payload = Protocol.Decode.list_from_payload -end - -module Jkind = struct - module Const : sig - type t = Parsetree.jkind_const_annotation - - val mk : string -> Location.t -> t - - val of_structure_item : structure_item -> t option - - val to_structure_item : t -> structure_item - end = struct - type raw = string - - module Protocol = Make_structure_item_encodable_of_stringable (struct - type t = raw - - let indefinite_article_and_name = "a", "primitive kind" - - let to_string t = t - - let of_string t = Some t - end) - - type t = raw loc - - let mk txt loc : t = { txt; loc } - - let of_structure_item = Protocol.of_structure_item - - let to_structure_item = Protocol.to_structure_item - end - - type t = Parsetree.jkind_annotation = - | Default - | Abbreviation of Const.t - | Mod of t * modes - | With of t * core_type - | Kind_of of core_type - | Product of t list - - type annotation = t loc - - let indefinite_article_and_name = "a", "kind" - - let prefix = "jane.erasable.layouts." - - let struct_item_of_attr attr = - { pstr_desc = Pstr_attribute attr; pstr_loc = Location.none } - - let struct_item_to_attr item = - match item with - | { pstr_desc = Pstr_attribute attr; _ } -> Some attr - | _ -> None - - let struct_item_of_type ty = - { pstr_desc = - Pstr_type - (Recursive, [Ast_helper.Type.mk ~manifest:ty (Location.mknoloc "t")]); - pstr_loc = Location.none - } - - let struct_item_to_type item = - match item with - | { pstr_desc = Pstr_type (Recursive, [decl]); _ } -> decl.ptype_manifest - | _ -> None - - let struct_item_of_list name list loc = - struct_item_of_attr - { attr_name = Location.mknoloc (prefix ^ name); - attr_payload = PStr list; - attr_loc = loc - } - - let struct_item_to_list item = - let strip_prefix s = - let prefix_len = String.length prefix in - String.sub s prefix_len (String.length s - prefix_len) - in - match item with - | { pstr_desc = - Pstr_attribute - { attr_name = name; attr_payload = PStr list; attr_loc = loc }; - _ - } - when String.starts_with ~prefix name.txt -> - Some (strip_prefix name.txt, list, loc) - | _ -> None - - let rec to_structure_item t_loc = - let to_structure_item t = to_structure_item (Location.mknoloc t) in - match t_loc.txt with - | Default -> struct_item_of_list "default" [] t_loc.loc - | Abbreviation c -> - struct_item_of_list "abbrev" [Const.to_structure_item c] t_loc.loc - | Mod (t, modes) -> - let mode_list_item = - struct_item_of_attr - { attr_name = Location.mknoloc (prefix ^ "mod"); - attr_payload = Mode.list_as_payload modes; - attr_loc = Location.none - } - in - struct_item_of_list "mod" [to_structure_item t; mode_list_item] t_loc.loc - | With (t, ty) -> - struct_item_of_list "with" - [to_structure_item t; struct_item_of_type ty] - t_loc.loc - | Kind_of ty -> - struct_item_of_list "kind_of" [struct_item_of_type ty] t_loc.loc - | Product ts -> - struct_item_of_list "product" (List.map to_structure_item ts) t_loc.loc - - let rec of_structure_item item = - let bind = Option.bind in - let ret loc v = Some (Location.mkloc v loc) in - match struct_item_to_list item with - | Some ("default", [], loc) -> ret loc Default - | Some ("mod", [item_of_t; item_of_mode_expr], loc) -> - bind (of_structure_item item_of_t) (fun { txt = t } -> - bind (struct_item_to_attr item_of_mode_expr) (fun attr -> - let modes = Mode.list_from_payload ~loc attr.attr_payload in - ret loc (Mod (t, modes)))) - | Some ("with", [item_of_t; item_of_ty], loc) -> - bind (of_structure_item item_of_t) (fun { txt = t } -> - bind (struct_item_to_type item_of_ty) (fun ty -> - ret loc (With (t, ty)))) - | Some ("kind_of", [item_of_ty], loc) -> - bind (struct_item_to_type item_of_ty) (fun ty -> ret loc (Kind_of ty)) - | Some ("abbrev", [item], loc) -> - bind (Const.of_structure_item item) (fun c -> ret loc (Abbreviation c)) - | Some ("product", items, loc) -> - bind (Misc.Stdlib.List.map_option of_structure_item items) (fun tls -> - ret loc (Product (List.map (fun tl -> tl.txt) tls))) - | Some _ | None -> None -end - -(** Jkind annotations' encoding as attribute payload, used in both n-ary - functions and jkinds. *) -module Jkind_annotation : sig - include Payload_protocol with type t := Jkind.t - - module Decode : sig - include module type of Decode - - val bound_vars_from_vars_and_payload : - loc:Location.t -> - string Location.loc list -> - payload -> - (string Location.loc * Jkind.annotation option) list - end -end = struct - module Protocol = Make_payload_protocol_of_structure_item_encodable (Jkind) - - (*******************************************************) - (* Conversions with a payload *) - - module Encode = Protocol.Encode - - module Decode = struct - include Protocol.Decode - - module Desugaring_error = struct - type error = - | Wrong_number_of_jkinds of int * Jkind.annotation option list - - let report_error ~loc = function - | Wrong_number_of_jkinds (n, _jkinds) -> - Location.errorf ~loc - "Wrong number of kinds in an kind attribute;@;expecting %i." n - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise ~loc err = raise (Error (loc, err)) - end - - let bound_vars_from_vars_and_payload ~loc var_names payload = - let jkinds = option_list_from_payload ~loc payload in - try List.combine var_names jkinds - with - (* seems silly to check the length in advance when [combine] does *) - | Invalid_argument _ -> - Desugaring_error.raise ~loc - (Wrong_number_of_jkinds (List.length var_names, jkinds)) - end -end - -(** List and array comprehensions *) -module Comprehensions = struct - module Ext = struct - let feature : Feature.t = Language_extension Comprehensions - end - - module Ast_of = Ast_of (Expression) (Ext) - module Of_ast = Of_ast (Ext) - include Ext - - type iterator = - | Range of - { start : expression; - stop : expression; - direction : direction_flag - } - | In of expression - - type clause_binding = - { pattern : pattern; - iterator : iterator; - attributes : attribute list - } - - type clause = - | For of clause_binding list - | When of expression - - type comprehension = - { body : expression; - clauses : clause list - } - - type expression = - | Cexp_list_comprehension of comprehension - | Cexp_array_comprehension of mutable_flag * comprehension - - (* The desugared-to-OCaml version of comprehensions is described by the - following BNF, where [{% '...' | expr %}] refers to the result of - [Expression.make_jane_syntax] (via [comprehension_expr]) as described at - the top of [jane_syntax_parsing.mli]. - - {v - comprehension ::= - | {% 'comprehension.list' | '[' clauses ']' %} - | {% 'comprehension.array' | '[|' clauses '|]' %} - - clauses ::= - | {% 'comprehension.for' | 'let' iterator+ 'in' clauses %} - | {% 'comprehension.when' | expr ';' clauses %} - | {% 'comprehension.body' | expr %} - - iterator ::= - | pattern '=' {% 'comprehension.for.range.upto' | expr ',' expr %} - | pattern '=' {% 'comprehension.for.range.downto' | expr ',' expr %} - | pattern '=' {% 'comprehension.for.in' | expr %} - v} - *) - - (** First, we define how to go from the nice AST to the OCaml AST; this is - the [expr_of_...] family of expressions, culminating in - [expr_of_comprehension_expr]. *) - - let expr_of_iterator = function - | Range { start; stop; direction } -> - Ast_of.wrap_jane_syntax - [ "for"; - "range"; - (match direction with Upto -> "upto" | Downto -> "downto") ] - (Ast_helper.Exp.tuple [None, start; None, stop]) - | In seq -> Ast_of.wrap_jane_syntax ["for"; "in"] seq - - let expr_of_clause_binding { pattern; iterator; attributes } = - Ast_helper.Vb.mk ~attrs:attributes pattern (expr_of_iterator iterator) - - let expr_of_clause clause rest = - match clause with - | For iterators -> - Ast_of.wrap_jane_syntax ["for"] - (Ast_helper.Exp.let_ Nonrecursive - (List.map expr_of_clause_binding iterators) - rest) - | When cond -> - Ast_of.wrap_jane_syntax ["when"] (Ast_helper.Exp.sequence cond rest) - - let expr_of_comprehension ~type_ { body; clauses } = - (* We elect to wrap the body in a new AST node (here, [Pexp_lazy]) - because it makes it so there is no AST node that can carry multiple Jane - Syntax-related attributes in addition to user-written attributes. This - choice simplifies the definition of [comprehension_expr_of_expr], as - part of its contract is threading through the user-written attributes - on the outermost node. - *) - Ast_of.wrap_jane_syntax type_ - (Ast_helper.Exp.lazy_ - (List.fold_right expr_of_clause clauses - (Ast_of.wrap_jane_syntax ["body"] body))) - - let expr_of ~loc cexpr = - (* See Note [Wrapping with make_entire_jane_syntax] *) - Expression.make_entire_jane_syntax ~loc feature (fun () -> - match cexpr with - | Cexp_list_comprehension comp -> - expr_of_comprehension ~type_:["list"] comp - | Cexp_array_comprehension (amut, comp) -> - expr_of_comprehension - ~type_: - [ "array"; - (match amut with - | Mutable -> "mutable" - | Immutable -> "immutable") ] - comp) - - (** Then, we define how to go from the OCaml AST to the nice AST; this is - the [..._of_expr] family of expressions, culminating in - [comprehension_expr_of_expr]. *) - - module Desugaring_error = struct - type error = - | Has_payload of payload - | Bad_comprehension_embedding of string list - | No_clauses - - let report_error ~loc = function - | Has_payload payload -> - Location.errorf ~loc - "Comprehensions attribute has an unexpected payload:@;%a" - (Printast.payload 0) payload - | Bad_comprehension_embedding subparts -> - Location.errorf ~loc - "Unknown, unexpected, or malformed@ comprehension embedded term %a" - Embedded_name.pp_quoted_name - (Embedded_name.of_feature feature subparts) - | No_clauses -> - Location.errorf ~loc "Tried to desugar a comprehension with no clauses" - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise expr err = raise (Error (expr.pexp_loc, err)) - end - - (* Returns the expression node with the outermost Jane Syntax-related - attribute removed. *) - let expand_comprehension_extension_expr expr = - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc:expr.pexp_loc - expr.pexp_attributes - in - match payload with - | PStr [] -> names, { expr with pexp_attributes = attributes } - | _ -> Desugaring_error.raise expr (Has_payload payload) - - let iterator_of_expr expr = - match expand_comprehension_extension_expr expr with - | ( ["for"; "range"; "upto"], - { pexp_desc = Pexp_tuple [(None, start); (None, stop)]; _ } ) -> - Range { start; stop; direction = Upto } - | ( ["for"; "range"; "downto"], - { pexp_desc = Pexp_tuple [(None, start); (None, stop)]; _ } ) -> - Range { start; stop; direction = Downto } - | ["for"; "in"], seq -> In seq - | bad, _ -> Desugaring_error.raise expr (Bad_comprehension_embedding bad) - - let clause_binding_of_vb { pvb_pat; pvb_expr; pvb_attributes; pvb_loc = _ } = - { pattern = pvb_pat; - iterator = iterator_of_expr pvb_expr; - attributes = pvb_attributes - } - - let add_clause clause comp = { comp with clauses = clause :: comp.clauses } - - let comprehension_of_expr = - let rec raw_comprehension_of_expr expr = - match expand_comprehension_extension_expr expr with - | ["for"], { pexp_desc = Pexp_let (Nonrecursive, iterators, rest); _ } -> - add_clause - (For (List.map clause_binding_of_vb iterators)) - (raw_comprehension_of_expr rest) - | ["when"], { pexp_desc = Pexp_sequence (cond, rest); _ } -> - add_clause (When cond) (raw_comprehension_of_expr rest) - | ["body"], body -> { body; clauses = [] } - | bad, _ -> Desugaring_error.raise expr (Bad_comprehension_embedding bad) - in - fun expr -> - match raw_comprehension_of_expr expr with - | { body = _; clauses = [] } -> Desugaring_error.raise expr No_clauses - | comp -> comp - - (* Returns remaining unconsumed attributes on outermost expression *) - let comprehension_expr_of_expr expr = - let name, wrapper = expand_comprehension_extension_expr expr in - let comp = - match name, wrapper.pexp_desc with - | ["list"], Pexp_lazy comp -> - Cexp_list_comprehension (comprehension_of_expr comp) - | ["array"; "mutable"], Pexp_lazy comp -> - Cexp_array_comprehension (Mutable, comprehension_of_expr comp) - | ["array"; "immutable"], Pexp_lazy comp -> - (* assert_extension_enabled: - See Note [Check for immutable extension in comprehensions code] *) - assert_extension_enabled ~loc:expr.pexp_loc Immutable_arrays (); - Cexp_array_comprehension (Immutable, comprehension_of_expr comp) - | bad, _ -> Desugaring_error.raise expr (Bad_comprehension_embedding bad) - in - comp, wrapper.pexp_attributes -end - -(** Immutable arrays *) -module Immutable_arrays = struct - type nonrec expression = Iaexp_immutable_array of expression list - - type nonrec pattern = Iapat_immutable_array of pattern list - - let feature : Feature.t = Language_extension Immutable_arrays - - let expr_of ~loc = function - | Iaexp_immutable_array elts -> - (* See Note [Wrapping with make_entire_jane_syntax] *) - Expression.make_entire_jane_syntax ~loc feature (fun () -> - Ast_helper.Exp.array elts) - - (* Returns remaining unconsumed attributes *) - let of_expr expr = - match expr.pexp_desc with - | Pexp_array elts -> Iaexp_immutable_array elts, expr.pexp_attributes - | _ -> failwith "Malformed immutable array expression" - - let pat_of ~loc = function - | Iapat_immutable_array elts -> - (* See Note [Wrapping with make_entire_jane_syntax] *) - Pattern.make_entire_jane_syntax ~loc feature (fun () -> - Ast_helper.Pat.array elts) - - (* Returns remaining unconsumed attributes *) - let of_pat pat = - match pat.ppat_desc with - | Ppat_array elts -> Iapat_immutable_array elts, pat.ppat_attributes - | _ -> failwith "Malformed immutable array pattern" -end - -(** Module strengthening *) -module Strengthen = struct - type nonrec module_type = - { mty : Parsetree.module_type; - mod_id : Longident.t Location.loc - } - - let feature : Feature.t = Language_extension Module_strengthening - - (* Encoding: [S with M] becomes [functor (_ : S) -> (module M)], where - the [(module M)] is a [Pmty_alias]. This isn't syntax we can write, but - [(module M)] can be the inferred type for [M], so this should be fine. *) - - let mty_of ~loc { mty; mod_id } = - (* See Note [Wrapping with make_entire_jane_syntax] *) - Module_type.make_entire_jane_syntax ~loc feature (fun () -> - Ast_helper.Mty.functor_ - (Named (Location.mknoloc None, mty)) - (Ast_helper.Mty.alias mod_id)) - - (* Returns remaining unconsumed attributes *) - let of_mty mty = - match mty.pmty_desc with - | Pmty_functor (Named (_, mty), { pmty_desc = Pmty_alias mod_id }) -> - { mty; mod_id }, mty.pmty_attributes - | _ -> failwith "Malformed strengthened module type" -end - -(** Layouts *) -module Layouts = struct - module Ext = struct - let feature : Feature.t = Language_extension Layouts - end - - include Ext - module Of_ast = Of_ast (Ext) - - type constant = - | Float of string * char option - | Integer of string * char - - type nonrec expression = - | Lexp_constant of constant - | Lexp_newtype of string loc * Jkind.annotation * expression - - type nonrec pattern = Lpat_constant of constant - - type nonrec core_type = - | Ltyp_var of - { name : string option; - jkind : Jkind.annotation - } - | Ltyp_poly of - { bound_vars : (string loc * Jkind.annotation option) list; - inner_type : core_type - } - | Ltyp_alias of - { aliased_type : core_type; - name : string loc option; - jkind : Jkind.annotation - } - - type nonrec extension_constructor = - | Lext_decl of - (string Location.loc * Jkind.annotation option) list - * constructor_arguments - * Parsetree.core_type option - - type signature_item = - | Lsig_kind_abbrev of string Location.loc * Jkind.annotation - - type structure_item = - | Lstr_kind_abbrev of string Location.loc * Jkind.annotation - - (*******************************************************) - (* Errors *) - - module Desugaring_error = struct - type error = - | Unexpected_wrapped_type of Parsetree.core_type - | Unexpected_wrapped_ext of Parsetree.extension_constructor - | Unexpected_attribute of string list - | No_integer_suffix - | Unexpected_constant of Parsetree.constant - | Unexpected_wrapped_expr of Parsetree.expression - | Unexpected_wrapped_pat of Parsetree.pattern - - (* Most things here are unprintable because we can't reference any - [Printast] functions that aren't exposed by the upstream compiler, as we - want this file to be compatible with the upstream compiler; see Note - [Buildable with upstream] in jane_syntax.mli for details. *) - let report_error ~loc = function - | Unexpected_wrapped_type _typ -> - Location.errorf ~loc "Layout attribute on wrong core type" - | Unexpected_wrapped_ext _ext -> - Location.errorf ~loc "Layout attribute on wrong extension constructor" - | Unexpected_attribute names -> - Location.errorf ~loc - "Layout extension does not understand these attribute names:@;[%a]" - (Format.pp_print_list - ~pp_sep:(fun ppf () -> Format.fprintf ppf ";@ ") - Format.pp_print_text) - names - | No_integer_suffix -> - Location.errorf ~loc - "All unboxed integers require a suffix to determine their size." - | Unexpected_constant _c -> - Location.errorf ~loc "Unexpected unboxed constant" - | Unexpected_wrapped_expr expr -> - Location.errorf ~loc "Layout attribute on wrong expression:@;%a" - (Printast.expression 0) expr - | Unexpected_wrapped_pat _pat -> - Location.errorf ~loc "Layout attribute on wrong pattern" - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise ~loc err = raise (Error (loc, err)) - end - - module Encode = Jkind_annotation.Encode - module Decode = Jkind_annotation.Decode - - (*******************************************************) - (* Constants *) - - let constant_of = function - | Float (x, suffix) -> Pconst_float (x, suffix) - | Integer (x, suffix) -> Pconst_integer (x, Some suffix) - - let of_constant ~loc = function - | Pconst_float (x, suffix) -> Float (x, suffix) - | Pconst_integer (x, Some suffix) -> Integer (x, suffix) - | Pconst_integer (_, None) -> Desugaring_error.raise ~loc No_integer_suffix - | const -> Desugaring_error.raise ~loc (Unexpected_constant const) - - (*******************************************************) - (* Encoding expressions *) - - let expr_of ~loc expr = - let module Ast_of = Ast_of (Expression) (Ext) in - (* See Note [Wrapping with make_entire_jane_syntax] *) - Expression.make_entire_jane_syntax ~loc feature (fun () -> - match expr with - | Lexp_constant c -> - let constant = constant_of c in - Ast_of.wrap_jane_syntax ["unboxed"] - @@ Ast_helper.Exp.constant constant - | Lexp_newtype (name, jkind, inner_expr) -> - let payload = Encode.as_payload jkind in - Ast_of.wrap_jane_syntax ["newtype"] ~payload - @@ Ast_helper.Exp.newtype name inner_expr) - - (*******************************************************) - (* Desugaring expressions *) - - let of_expr expr = - let loc = expr.pexp_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc expr.pexp_attributes - in - let lexpr = - match names with - | ["unboxed"] -> ( - match expr.pexp_desc with - | Pexp_constant const -> Lexp_constant (of_constant ~loc const) - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_expr expr)) - | ["newtype"] -> ( - let jkind = Decode.from_payload ~loc payload in - match expr.pexp_desc with - | Pexp_newtype (name, inner_expr) -> - Lexp_newtype (name, jkind, inner_expr) - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_expr expr)) - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - lexpr, attributes - - (*******************************************************) - (* Encoding patterns *) - - let pat_of ~loc t = - Pattern.make_entire_jane_syntax ~loc feature (fun () -> - match t with - | Lpat_constant c -> - let constant = constant_of c in - Ast_helper.Pat.constant constant) - - (*******************************************************) - (* Desugaring patterns *) - - let of_pat pat = - let loc = pat.ppat_loc in - let lpat = - match pat.ppat_desc with - | Ppat_constant const -> Lpat_constant (of_constant ~loc const) - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_pat pat) - in - lpat, pat.ppat_attributes - - (*******************************************************) - (* Encoding types *) - - module Type_of = Ast_of (Core_type) (Ext) - - let type_of ~loc typ = - let exception No_wrap_necessary of Parsetree.core_type in - try - (* See Note [Wrapping with make_entire_jane_syntax] *) - Core_type.make_entire_jane_syntax ~loc feature (fun () -> - match typ with - | Ltyp_var { name; jkind } -> ( - let payload = Encode.as_payload jkind in - Type_of.wrap_jane_syntax ["var"] ~payload - @@ - match name with - | None -> Ast_helper.Typ.any ~loc () - | Some name -> Ast_helper.Typ.var ~loc name) - | Ltyp_poly { bound_vars; inner_type } -> - let var_names, jkinds = List.split bound_vars in - (* Pass the loc because we don't want a ghost location here *) - let tpoly = Ast_helper.Typ.poly ~loc var_names inner_type in - if List.for_all Option.is_none jkinds - then raise (No_wrap_necessary tpoly) - else - let payload = Encode.option_list_as_payload jkinds in - Type_of.wrap_jane_syntax ["poly"] ~payload tpoly - | Ltyp_alias { aliased_type; name; jkind } -> - let payload = Encode.as_payload jkind in - let has_name, inner_typ = - match name with - | None -> "anon", aliased_type - | Some name -> "named", Ast_helper.Typ.alias aliased_type name - in - Type_of.wrap_jane_syntax ["alias"; has_name] ~payload inner_typ) - with No_wrap_necessary result_type -> result_type - - (*******************************************************) - (* Desugaring types *) - - let of_type typ = - let loc = typ.ptyp_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc typ.ptyp_attributes - in - let lty = - match names with - | ["var"] -> ( - let jkind = Decode.from_payload ~loc payload in - match typ.ptyp_desc with - | Ptyp_any -> Ltyp_var { name = None; jkind } - | Ptyp_var name -> Ltyp_var { name = Some name; jkind } - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_type typ)) - | ["poly"] -> ( - match typ.ptyp_desc with - | Ptyp_poly (var_names, inner_type) -> - let bound_vars = - Decode.bound_vars_from_vars_and_payload ~loc var_names payload - in - Ltyp_poly { bound_vars; inner_type } - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_type typ)) - | ["alias"; "anon"] -> - let jkind = Decode.from_payload ~loc payload in - Ltyp_alias - { aliased_type = { typ with ptyp_attributes = attributes }; - name = None; - jkind - } - | ["alias"; "named"] -> ( - let jkind = Decode.from_payload ~loc payload in - match typ.ptyp_desc with - | Ptyp_alias (inner_typ, name) -> - Ltyp_alias { aliased_type = inner_typ; name = Some name; jkind } - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_type typ)) - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - lty, attributes - - (*******************************************************) - (* Encoding extension constructor *) - - module Ext_ctor_of = Ast_of (Extension_constructor) (Ext) - - let extension_constructor_of ~loc ~name ?info ?docs ext = - (* using optional parameters to hook into existing defaulting - in [Ast_helper.Te.decl], which seems unwise to duplicate *) - let exception No_wrap_necessary of Parsetree.extension_constructor in - try - (* See Note [Wrapping with make_entire_jane_syntax] *) - Extension_constructor.make_entire_jane_syntax ~loc feature (fun () -> - match ext with - | Lext_decl (bound_vars, args, res) -> - let vars, jkinds = List.split bound_vars in - let ext_ctor = - (* Pass ~loc here, because the constructor declaration is - not a ghost *) - Ast_helper.Te.decl ~loc ~vars ~args ?info ?docs ?res name - in - if List.for_all Option.is_none jkinds - then raise (No_wrap_necessary ext_ctor) - else - let payload = Encode.option_list_as_payload jkinds in - Ext_ctor_of.wrap_jane_syntax ["ext"] ~payload ext_ctor) - with No_wrap_necessary ext_ctor -> ext_ctor - - (*******************************************************) - (* Desugaring extension constructor *) - - let of_extension_constructor ext = - let loc = ext.pext_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc ext.pext_attributes - in - let lext = - match names with - | ["ext"] -> ( - match ext.pext_kind with - | Pext_decl (var_names, args, res) -> - let bound_vars = - Decode.bound_vars_from_vars_and_payload ~loc var_names payload - in - Lext_decl (bound_vars, args, res) - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_ext ext)) - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - lext, attributes - - (*********************************************************) - (* Constructing a [constructor_declaration] with jkinds *) - - module Ctor_decl_of = Ast_of (Constructor_declaration) (Ext) - - let constructor_declaration_of ~loc ~attrs ~info ~vars_jkinds ~args ~res name - = - let vars, jkinds = List.split vars_jkinds in - let ctor_decl = - Ast_helper.Type.constructor ~loc ~info ~vars ~args ?res name - in - let ctor_decl = - if List.for_all Option.is_none jkinds - then ctor_decl - else - let payload = Encode.option_list_as_payload jkinds in - Constructor_declaration.make_entire_jane_syntax ~loc feature (fun () -> - Ctor_decl_of.wrap_jane_syntax ["vars"] ~payload ctor_decl) - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> ctor_decl - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { ctor_decl with pcd_attributes = ctor_decl.pcd_attributes @ attrs } - - let of_constructor_declaration_internal (feat : Feature.t) ctor_decl = - match feat with - | Language_extension Layouts -> - let loc = ctor_decl.pcd_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc ctor_decl.pcd_attributes - in - let vars_jkinds = - match names with - | ["vars"] -> - Decode.bound_vars_from_vars_and_payload ~loc ctor_decl.pcd_vars - payload - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - Some (vars_jkinds, attributes) - | _ -> None - - let of_constructor_declaration = - Constructor_declaration.make_of_ast - ~of_ast_internal:of_constructor_declaration_internal - - (*********************************************************) - (* Constructing a [type_declaration] with jkinds *) - - module Type_decl_of = Ast_of (Type_declaration) (Ext) - - let type_declaration_of ~loc ~attrs ~docs ~text ~params ~cstrs ~kind ~priv - ~manifest ~jkind name = - let type_decl = - Ast_helper.Type.mk ~loc ~docs ?text ~params ~cstrs ~kind ~priv ?manifest - name - in - let type_decl = - match jkind with - | None -> type_decl - | Some jkind -> - Type_declaration.make_entire_jane_syntax ~loc feature (fun () -> - let payload = Encode.as_payload jkind in - Type_decl_of.wrap_jane_syntax ["annot"] ~payload type_decl) - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> type_decl - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { type_decl with ptype_attributes = type_decl.ptype_attributes @ attrs } - - let of_type_declaration_internal (feat : Feature.t) type_decl = - match feat with - | Language_extension Layouts -> - let loc = type_decl.ptype_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc type_decl.ptype_attributes - in - let jkind_annot = - match names with - | ["annot"] -> Decode.from_payload ~loc payload - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - Some (jkind_annot, attributes) - | _ -> None - - let of_type_declaration = - Type_declaration.make_of_ast ~of_ast_internal:of_type_declaration_internal - - (*********************************************************) - (* Constructing a [signature_item] for kind_abbrev *) - - let attr_name_of { txt = name; loc } = - let embed = Embedded_name.of_feature feature ["kind_abbrev"; name] in - Location.mkloc (Embedded_name.to_string embed) loc - - let of_attr_name { txt = attr_name; loc } = - let name = - match Embedded_name.of_string attr_name with - | Some (Ok embed) -> ( - match Embedded_name.components embed with - | _ :: ["kind_abbrev"; name] -> name - | _ -> failwith "Malformed [kind_abbrev] attribute") - | None | Some (Error _) -> failwith "Malformed [kind_abbrev] attribute" - in - Location.mkloc name loc - - let sig_item_of ~loc = function - | Lsig_kind_abbrev (name, jkind) -> - (* See Note [Wrapping with make_entire_jane_syntax] *) - Signature_item.make_entire_jane_syntax ~loc feature (fun () -> - let payload = Encode.as_payload jkind in - Ast_helper.Sig.attribute - (Ast_helper.Attr.mk (attr_name_of name) payload)) - - let of_sig_item sigi = - match sigi.psig_desc with - | Psig_attribute { attr_name; attr_payload; _ } -> - Lsig_kind_abbrev - ( of_attr_name attr_name, - Decode.from_payload ~loc:sigi.psig_loc attr_payload ) - | _ -> failwith "Malformed [kind_abbrev] in signature" - - let str_item_of ~loc = function - | Lstr_kind_abbrev (name, jkind) -> - (* See Note [Wrapping with make_entire_jane_syntax] *) - Structure_item.make_entire_jane_syntax ~loc feature (fun () -> - let payload = Encode.as_payload jkind in - Ast_helper.Str.attribute - (Ast_helper.Attr.mk (attr_name_of name) payload)) - - let of_str_item stri = - match stri.pstr_desc with - | Pstr_attribute { attr_name; attr_payload; _ } -> - Lstr_kind_abbrev - ( of_attr_name attr_name, - Decode.from_payload ~loc:stri.pstr_loc attr_payload ) - | _ -> failwith "Malformed [kind_abbrev] in structure" -end - -module Instances = struct - type instance = - { head : string; - args : (string * instance) list - } - - type module_expr = Imod_instance of instance - - let feature : Feature.t = Language_extension Instances - - let module_expr_of_string ~loc str = - Ast_helper.Mod.ident ~loc { txt = Lident str; loc } - - let rec module_expr_of_instance ~loc { head; args } = - let head = module_expr_of_string ~loc head in - match args with - | [] -> head - | _ -> - let args = - List.concat_map - (fun (param, value) -> - let param = module_expr_of_string ~loc param in - let value = module_expr_of_instance ~loc value in - [param; value]) - args - in - List.fold_left (Ast_helper.Mod.apply ~loc) head args - - let module_expr_of ~loc = function - | Imod_instance instance -> - Module_expr.make_entire_jane_syntax ~loc feature (fun () -> - module_expr_of_instance ~loc instance) - - let head_of_ident (lid : Longident.t Location.loc) = - match lid with - | { txt = Lident s; loc = _ } -> s - | _ -> failwith "Malformed instance identifier" - - let gather_args mexpr = - let rec loop mexpr rev_acc = - match mexpr.pmod_desc with - | Pmod_apply (f, v) -> ( - match f.pmod_desc with - | Pmod_apply (f, n) -> loop f ((n, v) :: rev_acc) - | _ -> failwith "Malformed instance identifier") - | head -> head, List.rev rev_acc - in - loop mexpr [] - - let string_of_module_expr mexpr = - match mexpr.pmod_desc with - | Pmod_ident i -> head_of_ident i - | _ -> failwith "Malformed instance identifier" - - let rec instance_of_module_expr mexpr = - match gather_args mexpr with - | Pmod_ident i, args -> - let head = head_of_ident i in - let args = List.map instances_of_arg_pair args in - { head; args } - | _ -> failwith "Malformed instance identifier" - - and instances_of_arg_pair (n, v) = - string_of_module_expr n, instance_of_module_expr v - - let of_module_expr mexpr = Imod_instance (instance_of_module_expr mexpr) -end - -(******************************************************************************) -(** The interface to our novel syntax, which we export *) - -module type AST = sig - type t - - type ast - - val of_ast : ast -> t option -end - -module Core_type = struct - type t = Jtyp_layout of Layouts.core_type - - let of_ast_internal (feat : Feature.t) typ = - match feat with - | Language_extension Layouts -> - let typ, attrs = Layouts.of_type typ in - Some (Jtyp_layout typ, attrs) - | _ -> None - - let of_ast = Core_type.make_of_ast ~of_ast_internal - - let core_type_of ~loc ~attrs t = - let core_type = match t with Jtyp_layout x -> Layouts.type_of ~loc x in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> core_type - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { core_type with ptyp_attributes = core_type.ptyp_attributes @ attrs } -end - -module Constructor_argument = struct - type t = | - - let of_ast_internal (feat : Feature.t) _carg = match feat with _ -> None - - let of_ast = Constructor_argument.make_of_ast ~of_ast_internal -end - -module Expression = struct - type t = - | Jexp_comprehension of Comprehensions.expression - | Jexp_immutable_array of Immutable_arrays.expression - | Jexp_layout of Layouts.expression - - let of_ast_internal (feat : Feature.t) expr = - match feat with - | Language_extension Comprehensions -> - let expr, attrs = Comprehensions.comprehension_expr_of_expr expr in - Some (Jexp_comprehension expr, attrs) - | Language_extension Immutable_arrays -> - let expr, attrs = Immutable_arrays.of_expr expr in - Some (Jexp_immutable_array expr, attrs) - | Language_extension Layouts -> - let expr, attrs = Layouts.of_expr expr in - Some (Jexp_layout expr, attrs) - | _ -> None - - let of_ast = Expression.make_of_ast ~of_ast_internal - - let expr_of ~loc ~attrs t = - let expr = - match t with - | Jexp_comprehension x -> Comprehensions.expr_of ~loc x - | Jexp_immutable_array x -> Immutable_arrays.expr_of ~loc x - | Jexp_layout x -> Layouts.expr_of ~loc x - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> expr - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { expr with pexp_attributes = expr.pexp_attributes @ attrs } -end - -module Pattern = struct - type t = - | Jpat_immutable_array of Immutable_arrays.pattern - | Jpat_layout of Layouts.pattern - - let of_ast_internal (feat : Feature.t) pat = - match feat with - | Language_extension Immutable_arrays -> - let expr, attrs = Immutable_arrays.of_pat pat in - Some (Jpat_immutable_array expr, attrs) - | Language_extension Layouts -> - let pat, attrs = Layouts.of_pat pat in - Some (Jpat_layout pat, attrs) - | _ -> None - - let of_ast = Pattern.make_of_ast ~of_ast_internal - - let pat_of ~loc ~attrs t = - let pat = - match t with - | Jpat_immutable_array x -> Immutable_arrays.pat_of ~loc x - | Jpat_layout x -> Layouts.pat_of ~loc x - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> pat - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { pat with ppat_attributes = pat.ppat_attributes @ attrs } -end - -module Module_type = struct - type t = Jmty_strengthen of Strengthen.module_type - - let of_ast_internal (feat : Feature.t) mty = - match feat with - | Language_extension Module_strengthening -> - let mty, attrs = Strengthen.of_mty mty in - Some (Jmty_strengthen mty, attrs) - | _ -> None - - let of_ast = Module_type.make_of_ast ~of_ast_internal - - let mty_of ~loc ~attrs t = - let mty = match t with Jmty_strengthen x -> Strengthen.mty_of ~loc x in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> mty - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { mty with pmty_attributes = mty.pmty_attributes @ attrs } -end - -module Module_expr = struct - type t = Emod_instance of Instances.module_expr - - let of_ast_internal (feat : Feature.t) sigi = - match feat with - | Language_extension Instances -> - Some (Emod_instance (Instances.of_module_expr sigi)) - | _ -> None - - let of_ast = Module_expr.make_of_ast ~of_ast_internal -end - -module Signature_item = struct - type t = Jsig_layout of Layouts.signature_item - - let of_ast_internal (feat : Feature.t) sigi = - match feat with - | Language_extension Layouts -> - Some (Jsig_layout (Layouts.of_sig_item sigi)) - | _ -> None - - let of_ast = Signature_item.make_of_ast ~of_ast_internal -end - -module Structure_item = struct - type t = Jstr_layout of Layouts.structure_item - - let of_ast_internal (feat : Feature.t) stri = - match feat with - | Language_extension Layouts -> - Some (Jstr_layout (Layouts.of_str_item stri)) - | _ -> None - - let of_ast = Structure_item.make_of_ast ~of_ast_internal -end - -module Extension_constructor = struct - type t = Jext_layout of Layouts.extension_constructor - - let of_ast_internal (feat : Feature.t) ext = - match feat with - | Language_extension Layouts -> - let ext, attrs = Layouts.of_extension_constructor ext in - Some (Jext_layout ext, attrs) - | _ -> None - - let of_ast = Extension_constructor.make_of_ast ~of_ast_internal - - let extension_constructor_of ~loc ~name ~attrs ?info ?docs t = - let ext_ctor = - match t with - | Jext_layout lext -> - Layouts.extension_constructor_of ~loc ~name ?info ?docs lext - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> ext_ctor - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { ext_ctor with pext_attributes = ext_ctor.pext_attributes @ attrs } -end diff --git a/upstream/ocaml_flambda/parsing/jane_syntax.mli b/upstream/ocaml_flambda/parsing/jane_syntax.mli index 676b7b745..e69de29bb 100644 --- a/upstream/ocaml_flambda/parsing/jane_syntax.mli +++ b/upstream/ocaml_flambda/parsing/jane_syntax.mli @@ -1,474 +0,0 @@ -(** Syntax for Jane Street's novel syntactic features. This module provides - three things: - - 1. First-class ASTs for all syntax introduced by our language extensions, - plus one for built-in features; these are split out into a different - module each ([Comprehensions], etc.). - - 2. A first-class AST for each OCaml AST, unifying all our novel syntactic - features in modules named after the syntactic category - ([Expression.t], etc.). - - 3. A way to interpret these values as terms of the coresponding OCaml ASTs, - and to match on terms of those OCaml ASTs to see if they're terms from - our novel syntax. - - We keep our novel syntax separate so that we can avoid having to modify the - existing AST, as this would break compatibility with every existing ppx and - other such tooling. - - For details on the rationale behind this approach (and for some of the gory - details), see [Jane_syntax_parsing]. *) - -(******************************************************************************) - -(* Note [Buildable with upstream] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - We want to make sure that the various [Jane_*] modules, along with - [Language_extension_kernel] and a small stub for [Language_extension], are - buildable with the upstream compiler and compiler-libs. This allows us to - import these files into compatibility libraries such as - {{:https://github.com/janestreet/ppxlib_jane}ppxlib_jane}. We have CI tests - which ensure that this property is maintained. - - It is possible that at some point we'll really need to depend on new - functionality we provide elsewhere in the compiler; at that point, we can - look into providing stub implementations of these modules for use with the - upstream compiler instead. For now, though, this is sufficient. -*) - -(*********************************************) -(* Individual features *) - -(** The ASTs for list and array comprehensions *) -module Comprehensions : sig - type iterator = - | Range of - { start : Parsetree.expression; - stop : Parsetree.expression; - direction : Asttypes.direction_flag - } - (** "= START to STOP" (direction = Upto) - "= START downto STOP" (direction = Downto) *) - | In of Parsetree.expression (** "in EXPR" *) - - (* In [Typedtree], the [pattern] moves into the [iterator]. *) - - (** [@...] PAT (in/=) ... *) - type clause_binding = - { pattern : Parsetree.pattern; - iterator : iterator; - attributes : Parsetree.attribute list - } - - type clause = - | For of clause_binding list - (** "for PAT (in/=) ... and PAT (in/=) ... and ..."; must be nonempty *) - | When of Parsetree.expression (** "when EXPR" *) - - type comprehension = - { body : Parsetree.expression; - (** The body/generator of the comprehension *) - clauses : clause list - (** The clauses of the comprehension; must be nonempty *) - } - - type expression = - | Cexp_list_comprehension of comprehension (** [BODY ...CLAUSES...] *) - | Cexp_array_comprehension of Asttypes.mutable_flag * comprehension - (** [|BODY ...CLAUSES...|] (flag = Mutable) - [:BODY ...CLAUSES...:] (flag = Immutable) - (only allowed with [-extension immutable_arrays]) *) - - val expr_of : loc:Location.t -> expression -> Parsetree.expression -end - -(** The ASTs for immutable arrays. When we merge this upstream, we'll merge - these into the existing [P{exp,pat}_array] constructors by adding a - [mutable_flag] argument (just as we did with [T{exp,pat}_array]). *) -module Immutable_arrays : sig - type expression = - | Iaexp_immutable_array of Parsetree.expression list - (** [: E1; ...; En :] *) - - type pattern = - | Iapat_immutable_array of Parsetree.pattern list (** [: P1; ...; Pn :] **) - - val expr_of : loc:Location.t -> expression -> Parsetree.expression - - val pat_of : loc:Location.t -> pattern -> Parsetree.pattern -end - -(** The attribute placed on the inner [Ptyp_arrow] node in [x -> (y -> z)] - (meaning the [y -> z] node) to indicate parenthesization. This is relevant - for locals, as [local_ x -> (y -> z)] is different than - [local_ x -> y -> z]. -*) -module Arrow_curry : sig - val curry_attr_name : string - - val curry_attr : Location.t -> Parsetree.attribute -end - -module Jkind : sig - module Const : sig - (** Constant jkind *) - - (** Represent a user-written kind primitive/abbreviation, - containing a string and its location *) - type t = Parsetree.jkind_const_annotation - - (** Constructs a jkind constant *) - val mk : string -> Location.t -> t - end - - type t = Parsetree.jkind_annotation = - | Default - | Abbreviation of Const.t - | Mod of t * Parsetree.modes - | With of t * Parsetree.core_type - | Kind_of of Parsetree.core_type - | Product of t list - - type annotation = t Location.loc -end - -(** The ASTs for module type strengthening. *) -module Strengthen : sig - type module_type = - { mty : Parsetree.module_type; - mod_id : Longident.t Location.loc - } - - val mty_of : loc:Location.t -> module_type -> Parsetree.module_type -end - -(** The ASTs for jkinds and other unboxed-types features *) -module Layouts : sig - type constant = - | Float of string * char option - | Integer of string * char - - type nonrec expression = - (* examples: [ #2.0 ] or [ #42L ] *) - (* This is represented as an attribute wrapping a [Pexp_constant] node. *) - | Lexp_constant of constant - (* [fun (type a : immediate) -> ...] *) - (* This is represented as an attribute wrapping a [Pexp_newtype] node. *) - | Lexp_newtype of - string Location.loc * Jkind.annotation * Parsetree.expression - - type nonrec pattern = - (* examples: [ #2.0 ] or [ #42L ] *) - (* This is represented as an attribute wrapping a [Ppat_constant] node. *) - | Lpat_constant of constant - - type nonrec core_type = - (* ['a : immediate] or [_ : float64] *) - (* This is represented by an attribute wrapping either a [Ptyp_any] or - a [Ptyp_var] node. *) - | Ltyp_var of - { name : string option; - jkind : Jkind.annotation - } - (* [('a : immediate) 'b 'c ('d : value). 'a -> 'b -> 'c -> 'd] *) - (* This is represented by an attribute wrapping a [Ptyp_poly] node. *) - (* This is used instead of [Ptyp_poly] only where there is at least one - actual jkind annotation. If there is a polytype with no jkind - annotations at all, [Ptyp_poly] is used instead. This saves space in the - parsed representation and guarantees that we don't accidentally try to - require the layouts extension. *) - | Ltyp_poly of - { bound_vars : (string Location.loc * Jkind.annotation option) list; - inner_type : Parsetree.core_type - } - (* [ty as ('a : immediate)] *) - (* This is represented by an attribute wrapping either a [Ptyp_alias] node - or, in the [ty as (_ : jkind)] case, the annotated type itself, with no - intervening [type_desc]. *) - | Ltyp_alias of - { aliased_type : Parsetree.core_type; - name : string Location.loc option; - jkind : Jkind.annotation - } - - type nonrec extension_constructor = - (* [ 'a ('b : immediate) ('c : float64). 'a * 'b * 'c -> exception ] *) - (* This is represented as an attribute on a [Pext_decl] node. *) - (* Like [Ltyp_poly], this is used only when there is at least one jkind - annotation. Otherwise, we will have a [Pext_decl]. *) - | Lext_decl of - (string Location.loc * Jkind.annotation option) list - * Parsetree.constructor_arguments - * Parsetree.core_type option - - type signature_item = - | Lsig_kind_abbrev of string Location.loc * Jkind.annotation - - type structure_item = - | Lstr_kind_abbrev of string Location.loc * Jkind.annotation - - val expr_of : loc:Location.t -> expression -> Parsetree.expression - - val pat_of : loc:Location.t -> pattern -> Parsetree.pattern - - val type_of : loc:Location.t -> core_type -> Parsetree.core_type - - val extension_constructor_of : - loc:Location.t -> - name:string Location.loc -> - ?info:Docstrings.info -> - ?docs:Docstrings.docs -> - extension_constructor -> - Parsetree.extension_constructor - - (** See also [Ast_helper.Type.constructor], which is a direct inspiration for - the interface here. *) - val constructor_declaration_of : - loc:Location.t -> - attrs:Parsetree.attributes -> - info:Docstrings.info -> - vars_jkinds:(string Location.loc * Jkind.annotation option) list -> - args:Parsetree.constructor_arguments -> - res:Parsetree.core_type option -> - string Location.loc -> - Parsetree.constructor_declaration - - (** Extract the jkinds from a [constructor_declaration]; returns leftover - attributes along with the annotated variables. Unlike other pieces - of jane-syntax, users of this function will still have to process - the remaining pieces of the original [constructor_declaration]. *) - val of_constructor_declaration : - Parsetree.constructor_declaration -> - ((string Location.loc * Jkind.annotation option) list - * Parsetree.attributes) - option - - (** See also [Ast_helper.Type.mk], which is a direct inspiration for - the interface here. *) - val type_declaration_of : - loc:Location.t -> - attrs:Parsetree.attributes -> - docs:Docstrings.docs -> - text:Docstrings.text option -> - params: - (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list -> - cstrs:(Parsetree.core_type * Parsetree.core_type * Location.t) list -> - kind:Parsetree.type_kind -> - priv:Asttypes.private_flag -> - manifest:Parsetree.core_type option -> - jkind:Jkind.annotation option -> - string Location.loc -> - Parsetree.type_declaration - - val sig_item_of : loc:Location.t -> signature_item -> Parsetree.signature_item - - val str_item_of : loc:Location.t -> structure_item -> Parsetree.structure_item - - (** Extract the jkind annotation from a [type_declaration]; returns - leftover attributes. Similar to [of_constructor_declaration] in the - sense that users of this function will have to process the remaining - pieces of the original [type_declaration]. - *) - val of_type_declaration : - Parsetree.type_declaration -> - (Jkind.annotation * Parsetree.attributes) option -end - -module Instances : sig - (** The name of an instance module. Gets converted to [Global.Name.t] in the - flambda-backend compiler. *) - type instance = - { head : string; - args : (string * instance) list - } - - type module_expr = Imod_instance of instance - - val module_expr_of : loc:Location.t -> module_expr -> Parsetree.module_expr -end - -(******************************************) -(* General facility, which we export *) - -(** The module type of our extended ASTs for our novel syntax, instantiated once - for each syntactic category. We tend to call the pattern-matching functions - here with unusual indentation, not indenting the [None] branch further so as - to avoid merge conflicts with upstream. *) -module type AST = sig - (** The AST for all our Jane Street syntax; one constructor per feature that - extends the given syntactic category. Some extensions are handled - separately and thus are not listed here. - - This type will be something like [jane_syntax_ast * Parsetree.attributes] - in cases where the Jane Syntax encoding of the AST uses attributes. In - these cases, the [Parsetree.attributes] are the *rest* of the attributes - after removing Jane Syntax-related attributes. Callers of [of_ast] should - refer to these attributes rather than, for example, [pexp_attributes]. - *) - type t - - (** The corresponding OCaml AST *) - type ast - - (** Given an OCaml AST node, check to see if it corresponds to an embedded - term from our novel syntax. If it does, as long as the feature isn't a - disabled language extension, then return it; if it's not a piece of novel - syntax, return [None]; if it's an embedded term from a disabled language - extension, raise an error. - - AN IMPORTANT NOTE: The design of this function is careful to make merge - conflicts with upstream less likely: we want no edits at all -- not even - indentation -- to surrounding code. This is why we return a [t option], - not some structure that could include the [ast_desc] if there is no - extension. - - Indentation: we *do not change the indentation level* when we match on - this function's result! E.g. from [type_expect_] in [typecore.ml]: - - {[ - match Jane_syntax.Expression.of_ast sexp with - | Some jexp -> - type_expect_jane_syntax - ~loc - ~env - ~expected_mode - ~ty_expected - ~explanation - ~attributes:sexp.pexp_attributes - jexp - | None -> match sexp.pexp_desc with - | Pexp_ident lid -> - let path, mode, desc, kind = type_ident env ~recarg lid in - (* ... *) - | Pexp_constant(Pconst_string (str, _, _) as cst) -> - register_allocation expected_mode; - (* ... *) - | (* ... *) - | Pexp_unreachable -> - re { exp_desc = Texp_unreachable; - exp_loc = loc; exp_extra = []; - exp_type = instance ty_expected; - exp_mode = expected_mode.mode; - exp_attributes = sexp.pexp_attributes; - exp_env = env } - ]} - - Note that we match on the result of this function, forward to - [type_expect_jane_syntax] if we get something, and otherwise do the real - match on [sexp.pexp_desc] *without going up an indentation level*. This - is important to reduce the number of merge conflicts. *) - val of_ast : ast -> t option -end - -(******************************************) -(* Individual syntactic categories *) - -(** Novel syntax in types *) -module Core_type : sig - type t = Jtyp_layout of Layouts.core_type - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.core_type - - val core_type_of : - loc:Location.t -> attrs:Parsetree.attributes -> t -> Parsetree.core_type -end - -(** Novel syntax in constructor arguments; this isn't a core AST type, - but captures where [global_] lives *) -module Constructor_argument : sig - type t = | - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.core_type -end - -(** Novel syntax in expressions *) -module Expression : sig - type t = - | Jexp_comprehension of Comprehensions.expression - | Jexp_immutable_array of Immutable_arrays.expression - | Jexp_layout of Layouts.expression - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.expression - - val expr_of : - loc:Location.t -> attrs:Parsetree.attributes -> t -> Parsetree.expression -end - -(** Novel syntax in patterns *) -module Pattern : sig - type t = - | Jpat_immutable_array of Immutable_arrays.pattern - | Jpat_layout of Layouts.pattern - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.pattern - - val pat_of : - loc:Location.t -> attrs:Parsetree.attributes -> t -> Parsetree.pattern -end - -(** Novel syntax in module types *) -module Module_type : sig - type t = Jmty_strengthen of Strengthen.module_type - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.module_type - - val mty_of : - loc:Location.t -> attrs:Parsetree.attributes -> t -> Parsetree.module_type -end - -(** Novel syntax in signature items *) -module Signature_item : sig - type t = Jsig_layout of Layouts.signature_item - - include AST with type t := t and type ast := Parsetree.signature_item -end - -(** Novel syntax in structure items *) -module Structure_item : sig - type t = Jstr_layout of Layouts.structure_item - - include AST with type t := t and type ast := Parsetree.structure_item -end - -(** Novel syntax in extension constructors *) -module Extension_constructor : sig - type t = Jext_layout of Layouts.extension_constructor - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.extension_constructor - - val extension_constructor_of : - loc:Location.t -> - name:string Location.loc -> - attrs:Parsetree.attributes -> - ?info:Docstrings.info -> - ?docs:Docstrings.docs -> - t -> - Parsetree.extension_constructor -end - -(** Novel syntax in module expressions *) -module Module_expr : sig - type t = Emod_instance of Instances.module_expr - - include AST with type t := t and type ast := Parsetree.module_expr -end diff --git a/upstream/ocaml_flambda/parsing/jane_syntax_parsing.ml b/upstream/ocaml_flambda/parsing/jane_syntax_parsing.ml index 0b0c2091d..e69de29bb 100644 --- a/upstream/ocaml_flambda/parsing/jane_syntax_parsing.ml +++ b/upstream/ocaml_flambda/parsing/jane_syntax_parsing.ml @@ -1,874 +0,0 @@ -(** As mentioned in the .mli file, there are some gory details around the - particular translation scheme we adopt for moving to and from OCaml ASTs - ([Parsetree.expression], etc.). The general idea is that we adopt a scheme - where each novel piece of syntax is represented using one of two embeddings: - - 1. As an AST item carrying an attribute. The AST item serves as the "body" - of the syntax indicated by the attribute. - 2. As a pair of an extension node and an AST item that serves as the "body". - Here, the "pair" is embedded as a pair-like construct in the relevant AST - category, e.g. [include sig [%jane.ERASABILITY.EXTNAME];; BODY end] for - signature items. - - In particular, for an language extension named [EXTNAME] (i.e., one that is - enabled by [-extension EXTNAME] on the command line), the attribute (if - used) must be [[@jane.ERASABILITY.EXTNAME]], and the extension node (if - used) must be [[%jane.ERASABILITY.EXTNAME]]. - - The [ERASABILITY] component indicates to tools such as ocamlformat and - ppxlib whether or not the attribute is erasable. See the documentation of - [Erasability] for more information on how tools make use of this - information. - - In the below example, we use attributes an examples, but it applies equally - to extensions. We also provide utilities for further desugaring similar - applications where the embeddings have the longer form - [[@jane.ERASABILITY.FEATNAME.ID1.ID2.….IDn]] (with the outermost one being - the [n = 0] case), as these might be used inside the [EXPR]. (For example, - within the outermost [[@jane.non_erasable.comprehensions]] term for list and - array comprehensions, we can also use - [[@jane.non_erasable.comprehensions.list]], - [[@jane.non_erasable.comprehensions.array]], - [[@jane.non_erasable.comprehensions.for.in]], etc.). - - As mentioned, we represent terms as a "pair" and don't use the extension - node or attribute payload; this is so that ppxen can see inside these - extension nodes or attributes. If we put the subexpressions inside the - payload, then we couldn't write something like [[[%string "Hello, %{x}!"] - for x in names]], as [ppx_string] wouldn't traverse inside the payload to - find the [[%string]] extension node. - - Our novel syntactic features are of course allowed to impose extra - constraints on what legal bodies are; we're also happy for this translation - to error in various ways on malformed input, since nobody should ever be - writing these forms directly. They're just an implementation detail. - - See modules of type AST below to see how different syntactic categories - are represented. For example, expressions are encoded using an attribute. - - We provide one module per syntactic category (e.g., [Expression]), of module - type [AST]. They also provide some simple machinery for working with the - general [@jane.ERASABILITY.FEATNAME.ID1.ID2.….IDn] wrapped forms. To - construct one, we provide [make_jane_syntax]; to destructure one, we provide - [match_jane_syntax] (which we expose via [make_of_ast]). Users of this - module still have to write the transformations in both directions for all - new syntax, lowering it to extension nodes or attributes and then lifting it - back out. *) - -(** How did we choose between using the attribute embedding and the extension - node embedding for a particular syntactic category? - - Generally, we prefer the attribute embedding: it's more compatible with - ppxes that aren't aware of Jane Syntax. (E.g., if a type looks like a tuple, - it truly is a tuple and not an extension node embedding.) - - We can't apply the attribute embedding everywhere because some syntactic - categories, like structure items, don't carry attributes. For these, we - use extension nodes. - - However, the attribute embedding is more inconvenient in some ways than - the extension node embedding. For example, the attribute embedding requires - callers to strip out Jane Syntax-related attributes from the attribute list - before processing it. We've tried to make this obvious from the signature - of, say, [Jane_syntax.Expression.of_ast], but this is somewhat more - inconvenient than just operating on the [expr_desc]. Nonetheless, because - of the advantages with ppxlib interoperability, we've opted for the - attribute embedding where possible. -*) - -open Parsetree - -(** We carefully regulate which bindings we import from [Language_extension] - to ensure that we can import this file into the Jane Street internal - repo with no changes. -*) -module Language_extension = struct - include Language_extension_kernel - - include ( - Language_extension : - Language_extension_kernel.Language_extension_for_jane_syntax) -end - -(******************************************************************************) - -module Feature : sig - type t = Language_extension : _ Language_extension.t -> t - - type error = - | Disabled_extension : _ Language_extension.t -> error - | Unknown_extension of string - - val describe_uppercase : t -> string - - val extension_component : t -> string - - val of_component : string -> (t, error) result - - val is_erasable : t -> bool -end = struct - type t = Language_extension : _ Language_extension.t -> t - - type error = - | Disabled_extension : _ Language_extension.t -> error - | Unknown_extension of string - - let describe_uppercase = function - | Language_extension ext -> - "The extension \"" ^ Language_extension.to_string ext ^ "\"" - - let extension_component = function - | Language_extension ext -> Language_extension.to_string ext - - let of_component str = - match Language_extension.of_string str with - | Some (Pack ext) -> - if Language_extension.is_enabled ext - then Ok (Language_extension ext) - else Error (Disabled_extension ext) - | None -> Error (Unknown_extension str) - - let is_erasable = function - | Language_extension ext -> Language_extension.is_erasable ext -end - -(** Was this embedded as an [[%extension_node]] or an [[@attribute]]? Not - exported. Used only for error messages. *) -module Embedding_syntax = struct - type t = - | Extension_node - | Attribute - - let name = function - | Extension_node -> "extension node" - | Attribute -> "attribute" - - let name_indefinite = function - | Extension_node -> "an extension node" - | Attribute -> "an attribute" - - let name_plural = function - | Extension_node -> "extension nodes" - | Attribute -> "attributes" - - let pp ppf (t, name) = - let sigil = match t with Extension_node -> "%" | Attribute -> "@" in - Format.fprintf ppf "[%s%s]" sigil name -end - -(******************************************************************************) - -module Misnamed_embedding_error = struct - type t = - | No_erasability - | No_feature - | Unknown_erasability of string - - let to_string = function - | No_erasability -> "Missing erasability and feature components" - | No_feature -> "Missing a feature component" - | Unknown_erasability str -> - Printf.sprintf - "Unrecognized component where erasability was expected: `%s'" str -end - -(** The component of an attribute or extension name that identifies whether or - not the embedded syntax is *erasable*; that is, whether or not the - upstream OCaml compiler can safely interpret the AST while ignoring the - attribute or extension. (This means that syntax encoded as extension - nodes should always be non-erasable.) Tools that consume the parse tree - we generate can make use of this information; for instance, ocamlformat - will use it to guide how we present code that can be run with both our - compiler and the upstream compiler, and ppxlib can use it to decide - whether it's ok to allow ppxes to construct syntax that uses this - emedding. In particular, the upstream version of ppxlib will allow ppxes - to produce [[@jane.erasable.*]] attributes, but will report an error if a - ppx produces a [[@jane.non_erasable.*]] attribute. - - As mentioned above, unlike for attributes, the erasable/non-erasable - distinction is not meaningful for extension nodes, as the compiler will - always error if it sees an uninterpreted extension node. So, for purposes - of tools in the wider OCaml ecosystem, it is irrelevant whether embeddings - that use extension nodes indicate [Erasable] or [Non_erasable] for this - component, but the semantically correct choice and the one we've settled - on is to use [Non_erasable]. *) -module Erasability = struct - type t = - | Erasable - | Non_erasable - - let to_string = function - | Erasable -> "erasable" - | Non_erasable -> "non_erasable" - - let of_string = function - | "erasable" -> Ok Erasable - | "non_erasable" -> Ok Non_erasable - | _ -> Error () -end - -(** An AST-style representation of the names used when generating extension - nodes or attributes for modular syntax; see the .mli file for more - details. *) -module Embedded_name : sig - (** A nonempty list of name components, without the first two components. - (That is, without the leading root component that identifies it as part of - the modular syntax mechanism, and without the next component that - identifies the erasability.) See the .mli file for more details. *) - type components = ( :: ) of string * string list - - type t = - { erasability : Erasability.t; - components : components - } - - (** See the mli. *) - val of_feature : Feature.t -> string list -> t - - val components : t -> components - - (** See the mli. *) - val to_string : t -> string - - (** Parse a Jane syntax name from the OCaml AST, either as the name of an - extension node or an attribute: - - [Some (Ok _)] if it's a legal Jane-syntax name; - - [Some (Error _)] if the root is present, but the name has fewer than 3 - components or the erasability component is malformed; and - - [None] if it doesn't start with the leading root name and isn't part - of our Jane-syntax machinery. - Not exposed. *) - val of_string : string -> (t, Misnamed_embedding_error.t) result option - - (** Print out the embedded form of a Jane-syntax name, in quotes; for use in - error messages. *) - val pp_quoted_name : Format.formatter -> t -> unit - - (** Print out an empty extension node or attribute with a Jane-syntax name, - accompanied by an indefinite article; for use in error messages. Not - exposed. *) - val pp_a_term : Format.formatter -> Embedding_syntax.t * t -> unit -end = struct - (** The three parameters that control how we encode Jane-syntax extension node - names. When updating these, update comments that refer to them by their - contents! *) - module Config = struct - (** The separator between name components *) - let separator = '.' - - (** The leading namespace that identifies this extension node or attribute - as reserved for a piece of modular syntax *) - let root = "jane" - - (** For printing purposes, the appropriate indefinite article for [root] *) - let article = "a" - end - - include Config - - let separator_str = String.make 1 separator - - type components = ( :: ) of string * string list - - type t = - { erasability : Erasability.t; - components : components - } - - let of_feature feature trailing_components = - let feature_component = Feature.extension_component feature in - let erasability : Erasability.t = - if Feature.is_erasable feature then Erasable else Non_erasable - in - { erasability; components = feature_component :: trailing_components } - - let components t = t.components - - let to_string { erasability; components = feat :: subparts } = - String.concat separator_str - (root :: Erasability.to_string erasability :: feat :: subparts) - - let of_string str : (t, Misnamed_embedding_error.t) result option = - match String.split_on_char separator str with - | root' :: parts when String.equal root root' -> ( - match parts with - | [] -> Some (Error No_erasability) - | [_] -> Some (Error No_feature) - | erasability :: feat :: subparts -> ( - match Erasability.of_string erasability with - | Ok erasability -> - Some (Ok { erasability; components = feat :: subparts }) - | Error () -> Some (Error (Unknown_erasability erasability)))) - | _ :: _ | [] -> None - - let pp_quoted_name ppf t = Format.fprintf ppf "\"%s\"" (to_string t) - - let pp_a_term ppf (esyn, t) = - Format.fprintf ppf "%s %a" article Embedding_syntax.pp (esyn, to_string t) -end - -(******************************************************************************) -module Error = struct - (** An error triggered when desugaring a language extension from an OCaml - AST; should always be fatal *) - type error = - | Introduction_has_payload of Embedding_syntax.t * Embedded_name.t * payload - | Unknown_extension of Embedding_syntax.t * Erasability.t * string - | Disabled_extension : - { ext : _ Language_extension.t; - maturity : Language_extension.maturity option - } - -> error - | Wrong_syntactic_category of Feature.t * string - | Misnamed_embedding of - Misnamed_embedding_error.t * string * Embedding_syntax.t - | Bad_introduction of Embedding_syntax.t * Embedded_name.t - - (** The exception type thrown when desugaring a piece of modular syntax from - an OCaml AST *) - exception Error of Location.t * error -end - -open Error - -let assert_extension_enabled (type a) ~loc (ext : a Language_extension.t) - (setting : a) = - if not (Language_extension.is_at_least ext setting) - then - let maturity : Language_extension.maturity option = - match ext with - | Layouts -> Some (setting : Language_extension.maturity) - | _ -> None - in - raise (Error (loc, Disabled_extension { ext; maturity })) - -let report_error ~loc = function - | Introduction_has_payload (what, name, _payload) -> - Location.errorf ~loc - "@[Modular syntax %s are not allowed to have a payload,@ but %a does@]" - (Embedding_syntax.name_plural what) - Embedded_name.pp_quoted_name name - | Unknown_extension (what, erasability, name) -> - let embedded_name = { Embedded_name.erasability; components = [name] } in - Location.errorf ~loc "@[Unknown extension \"%s\" referenced via@ %a %s@]" - name Embedded_name.pp_a_term (what, embedded_name) - (Embedding_syntax.name what) - | Disabled_extension { ext; maturity } -> ( - (* CR layouts: The [maturity] special case is a bit ad-hoc, but the - layouts error message would be much worse without it. It also - would be nice to mention the language construct in the error message. - *) - match maturity with - | None -> - Location.errorf ~loc "The extension \"%s\" is disabled and cannot be used" - (Language_extension.to_string ext) - | Some maturity -> - Location.errorf ~loc - "This construct requires the %s version of the extension \"%s\", which \ - is disabled and cannot be used" - (Language_extension.maturity_to_string maturity) - (Language_extension.to_string ext)) - | Wrong_syntactic_category (feat, cat) -> - Location.errorf ~loc "%s cannot appear in %s" - (Feature.describe_uppercase feat) - cat - | Misnamed_embedding (err, name, what) -> - Location.errorf ~loc "Cannot have %s named %a: %s" - (Embedding_syntax.name_indefinite what) - Embedding_syntax.pp (what, name) - (Misnamed_embedding_error.to_string err) - | Bad_introduction (what, ({ components = ext :: _; _ } as name)) -> - Location.errorf ~loc - "@[The extension \"%s\" was referenced improperly; it started with@ %a \ - %s,@ not %a one@]" - ext Embedded_name.pp_a_term (what, name) - (Embedding_syntax.name what) - Embedded_name.pp_a_term - (what, { name with components = [ext] }) - -let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - -(******************************************************************************) -(** Generically find and create the OCaml AST syntax used to encode one of our - novel syntactic features. One module per variety of AST (expressions, - patterns, etc.). *) - -(** The parameters that define how to look for [[%jane.*.FEATNAME]] and - [[@jane.*.FEATNAME]] inside ASTs of a certain syntactic category. This - module type describes the input to the [Make_with_attribute] and - [Make_with_extension_node] functors (though they stipulate additional - requirements for their inputs). -*) -module type AST_syntactic_category = sig - (** The AST type (e.g., [Parsetree.expression]) *) - type ast - - (** The name for this syntactic category in the plural form; used for error - messages (e.g., "expressions") *) - val plural : string - - (** How to get the location attached to an AST node. Should just be - [fun tm -> tm.pCAT_loc] for the appropriate syntactic category [CAT]. *) - val location : ast -> Location.t - - (** Set the location of an AST node. *) - val with_location : ast -> Location.t -> ast -end - -module type AST_internal = sig - include AST_syntactic_category - - val embedding_syntax : Embedding_syntax.t - - val make_jane_syntax : Embedded_name.t -> ?payload:payload -> ast -> ast - - (** Given an AST node, check if it's a representation of a term from one of - our novel syntactic features; if it is, split it back up into its name, - the location of the extension/attribute, any payload, and the body. If - the embedded term is malformed in any way, raises an error; if the input - isn't an embedding of one of our novel syntactic features, returns [None]. - Partial inverse of [make_jane_syntax]. *) - val match_jane_syntax : - ast -> (Embedded_name.t * Location.t * Parsetree.payload * ast) option -end - -(* Parses the embedded name from an embedding, raising if - the embedding is malformed. Malformed means that - NAME is missing; e.g. the attribute is just [[@jane]]. -*) -let parse_embedding_exn ~loc ~name ~embedding_syntax = - let raise_error err = raise (Error (loc, err)) in - match Embedded_name.of_string name with - | Some (Ok name) -> Some name - | Some (Error err) -> - raise_error (Misnamed_embedding (err, name, embedding_syntax)) - | None -> None - -let find_and_remove_jane_syntax_attribute = - (* Recurs on [rev_prefix] *) - let rec loop ~rev_prefix ~suffix = - match rev_prefix with - | [] -> None - | attr :: rev_prefix -> ( - let { attr_name = { txt = name; loc = attr_loc }; attr_payload } = attr in - match - parse_embedding_exn ~loc:attr_loc ~name ~embedding_syntax:Attribute - with - | None -> loop ~rev_prefix ~suffix:(attr :: suffix) - | Some name -> - let unconsumed_attributes = List.rev_append rev_prefix suffix in - Some (name, attr_loc, attr_payload, unconsumed_attributes)) - in - fun attributes -> loop ~rev_prefix:(List.rev attributes) ~suffix:[] - -let make_jane_syntax_attribute name payload = - { attr_name = - { txt = Embedded_name.to_string name; loc = !Ast_helper.default_loc }; - attr_loc = !Ast_helper.default_loc; - attr_payload = payload - } - -(** For a syntactic category, produce translations into and out of - our novel syntax, using parsetree attributes as the encoding. -*) -module Make_with_attribute (AST_syntactic_category : sig - include AST_syntactic_category - - val attributes : ast -> attributes - - val with_attributes : ast -> attributes -> ast -end) : AST_internal with type ast = AST_syntactic_category.ast = struct - include AST_syntactic_category - - let embedding_syntax = Embedding_syntax.Attribute - - let make_jane_syntax name ?(payload = PStr []) ast = - let attr = make_jane_syntax_attribute name payload in - (* See Note [Outer attributes at end] in jane_syntax.ml *) - with_attributes ast (attributes ast @ [attr]) - - let match_jane_syntax ast = - match find_and_remove_jane_syntax_attribute (attributes ast) with - | None -> None - | Some (name, loc, payload, attrs) -> - Some (name, loc, payload, with_attributes ast attrs) -end - -(** For a syntactic category, produce translations into and out of - our novel syntax, using extension nodes as the encoding. -*) -module Make_with_extension_node (AST_syntactic_category : sig - include AST_syntactic_category - - (** How to construct an extension node for this AST (something of the - shape [[%name]]). Should just be [Ast_helper.CAT.extension] for the - appropriate syntactic category [CAT]. (This means that [?loc] should - default to [!Ast_helper.default_loc.].) *) - val make_extension_node : - ?loc:Location.t -> ?attrs:attributes -> extension -> ast - - (** Given an extension node (as created by [make_extension_node]) with an - appropriately-formed name and a body, combine them into the special - syntactic form we use for novel syntactic features in this syntactic - category. Partial inverse of [match_extension_use]. *) - val make_extension_use : extension_node:ast -> ast -> ast - - (** Given an AST node, check if it's of the special syntactic form - indicating that this is one of our novel syntactic features (as - created by [make_extension_node]), split it back up into the extension - node and the possible body. Doesn't do any checking about the - name/format of the extension or the possible body terms (for which see - [AST.match_extension]). Partial inverse of [make_extension_use]. *) - val match_extension_use : ast -> (extension * ast) option -end) : AST_internal with type ast = AST_syntactic_category.ast = struct - include AST_syntactic_category - - let embedding_syntax = Embedding_syntax.Extension_node - - let make_jane_syntax name ?(payload = PStr []) ast = - make_extension_use ast - ~extension_node: - (make_extension_node - ( { txt = Embedded_name.to_string name; - loc = !Ast_helper.default_loc - }, - payload )) - - let match_jane_syntax ast = - match match_extension_use ast with - | None -> None - | Some (({ txt = name; loc = ext_loc }, ext_payload), body) -> ( - match parse_embedding_exn ~loc:ext_loc ~name ~embedding_syntax with - | None -> None - | Some name -> Some (name, ext_loc, ext_payload, body)) -end - -(********************************************************) -(* Modules representing individual syntactic categories *) - -(* Note [Hiding internal details] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Each such module is first written with a '0' suffix. These '0' - modules are used internally as arguments to [Make_ast] to produce - non-'0' modules which are exported. This approach allows us to - hide details of these modules necessary for [Make_ast] but - unnecessary for external uses. -*) - -(** The AST parameters for every subset of types; embedded with attributes. *) -module Type_AST_syntactic_category = struct - type ast = core_type - - (* Missing [plural] *) - - let location typ = typ.ptyp_loc - - let with_location typ l = { typ with ptyp_loc = l } - - let attributes typ = typ.ptyp_attributes - - let with_attributes typ ptyp_attributes = { typ with ptyp_attributes } -end - -(** Types; embedded with attributes. *) -module Core_type0 = Make_with_attribute (struct - include Type_AST_syntactic_category - - let plural = "types" -end) - -(** Constructor arguments; the same as types, but used in fewer places *) -module Constructor_argument0 = Make_with_attribute (struct - include Type_AST_syntactic_category - - let plural = "constructor arguments" -end) - -(** Expressions; embedded using an attribute on the expression. *) -module Expression0 = Make_with_attribute (struct - type ast = expression - - let plural = "expressions" - - let location expr = expr.pexp_loc - - let with_location expr l = { expr with pexp_loc = l } - - let attributes expr = expr.pexp_attributes - - let with_attributes expr pexp_attributes = { expr with pexp_attributes } -end) - -(** Patterns; embedded using an attribute on the pattern. *) -module Pattern0 = Make_with_attribute (struct - type ast = pattern - - let plural = "patterns" - - let location pat = pat.ppat_loc - - let with_location pat l = { pat with ppat_loc = l } - - let attributes pat = pat.ppat_attributes - - let with_attributes pat ppat_attributes = { pat with ppat_attributes } -end) - -(** Module types; embedded using an attribute on the module type. *) -module Module_type0 = Make_with_attribute (struct - type ast = module_type - - let plural = "module types" - - let location mty = mty.pmty_loc - - let with_location mty l = { mty with pmty_loc = l } - - let attributes mty = mty.pmty_attributes - - let with_attributes mty pmty_attributes = { mty with pmty_attributes } -end) - -(** Module expressions; embedded using an attribute on the module expression. *) -module Module_expr0 = Make_with_attribute (struct - type ast = module_expr - - let plural = "module expressions" - - let location mexpr = mexpr.pmod_loc - - let with_location mexpr l = { mexpr with pmod_loc = l } - - let attributes mexpr = mexpr.pmod_attributes - - let with_attributes mexpr pmod_attributes = { mexpr with pmod_attributes } -end) - -(** Extension constructors; embedded using an attribute. *) -module Extension_constructor0 = Make_with_attribute (struct - type ast = extension_constructor - - let plural = "extension constructors" - - let location ext = ext.pext_loc - - let with_location ext l = { ext with pext_loc = l } - - let attributes ext = ext.pext_attributes - - let with_attributes ext pext_attributes = { ext with pext_attributes } -end) - -(** Signature items; embedded as - [include sig [%%extension.EXTNAME];; BODY end]. Signature items don't have - attributes or we'd use them instead. -*) -module Signature_item0 = Make_with_extension_node (struct - type ast = signature_item - - let plural = "signature items" - - let location sigi = sigi.psig_loc - - let with_location sigi l = { sigi with psig_loc = l } - - let make_extension_node = Ast_helper.Sig.extension - - let make_extension_use ~extension_node sigi = - Ast_helper.Sig.include_ - { pincl_mod = Ast_helper.Mty.signature [extension_node; sigi]; - pincl_loc = !Ast_helper.default_loc; - pincl_attributes = []; - pincl_kind = Structure - } - - let match_extension_use sigi = - match sigi.psig_desc with - | Psig_include - ( { pincl_mod = - { pmty_desc = - Pmty_signature - [{ psig_desc = Psig_extension (ext, []); _ }; sigi]; - _ - }; - pincl_kind = Structure; - _ - }, - [] ) -> - Some (ext, sigi) - | _ -> None -end) - -(** Structure items; embedded as - [include struct [%%extension.EXTNAME];; BODY end]. Structure items don't - have attributes or we'd use them instead. -*) -module Structure_item0 = Make_with_extension_node (struct - type ast = structure_item - - let plural = "structure items" - - let location stri = stri.pstr_loc - - let with_location stri l = { stri with pstr_loc = l } - - let make_extension_node = Ast_helper.Str.extension - - let make_extension_use ~extension_node stri = - Ast_helper.Str.include_ - { pincl_mod = Ast_helper.Mod.structure [extension_node; stri]; - pincl_loc = !Ast_helper.default_loc; - pincl_attributes = []; - pincl_kind = Structure - } - - let match_extension_use stri = - match stri.pstr_desc with - | Pstr_include - { pincl_mod = - { pmod_desc = - Pmod_structure - [{ pstr_desc = Pstr_extension (ext, []); _ }; stri]; - _ - }; - pincl_kind = Structure; - _ - } -> - Some (ext, stri) - | _ -> None -end) - -(** Constructor declarations; embedded with attributes. *) -module Constructor_declaration0 = Make_with_attribute (struct - type ast = Parsetree.constructor_declaration - - let plural = "constructor declarations" - - let location pcd = pcd.pcd_loc - - let with_location pcd loc = { pcd with pcd_loc = loc } - - let attributes pcd = pcd.pcd_attributes - - let with_attributes pcd pcd_attributes = { pcd with pcd_attributes } -end) - -(** Type declarations; embedded with attributes. *) -module Type_declaration0 = Make_with_attribute (struct - type ast = Parsetree.type_declaration - - let plural = "type declarations" - - let location ptype = ptype.ptype_loc - - let with_location ptype loc = { ptype with ptype_loc = loc } - - let attributes ptype = ptype.ptype_attributes - - let with_attributes ptype ptype_attributes = { ptype with ptype_attributes } -end) - -(******************************************************************************) -(* Main exports *) - -module type AST = sig - type ast - - val make_jane_syntax : - Feature.t -> string list -> ?payload:payload -> ast -> ast - - val make_entire_jane_syntax : - loc:Location.t -> Feature.t -> (unit -> ast) -> ast - - val make_of_ast : - of_ast_internal:(Feature.t -> ast -> 'a option) -> ast -> 'a option -end - -(* Most of our features make full use of the Jane Syntax framework, which - encodes information in a specific way (e.g., payload left empty on purpose). - It is therefore nice to check that these conditions are met. This functions - returns [true] if the given feature needs these extra checks. *) -let needs_extra_checks = function - | Feature.Language_extension Mode -> false - | _ -> true - -(* See Note [Hiding internal details] *) -module Make_ast (AST : AST_internal) : AST with type ast = AST.ast = struct - include AST - - let make_jane_syntax feature trailing_components ?payload ast = - AST.make_jane_syntax - (Embedded_name.of_feature feature trailing_components) - ?payload ast - - let make_entire_jane_syntax ~loc feature ast = - AST.with_location - (* We can't call [Location.ghostify] here, as we need - [jane_syntax_parsing.ml] to build with the upstream compiler; see - Note [Buildable with upstream] in jane_syntax.mli for details. *) - (Ast_helper.with_default_loc { loc with loc_ghost = true } (fun () -> - make_jane_syntax feature [] (ast ()))) - loc - - (** Generically lift our custom ASTs for our novel syntax from OCaml ASTs. *) - let make_of_ast ~of_ast_internal = - let of_ast ast = - let loc = AST.location ast in - let raise_error loc err = raise (Error (loc, err)) in - match AST.match_jane_syntax ast with - | Some - ( ({ erasability; components = [name] } as embedded_name), - syntax_loc, - payload, - ast ) -> ( - match Feature.of_component name with - | Ok feat -> ( - (if needs_extra_checks feat - then - match payload with - | PStr [] -> () - | _ -> - raise_error syntax_loc - (Introduction_has_payload - (AST.embedding_syntax, embedded_name, payload))); - match of_ast_internal feat ast with - | Some ext_ast -> Some ext_ast - | None -> - if needs_extra_checks feat - then raise_error loc (Wrong_syntactic_category (feat, AST.plural)) - else None) - | Error err -> - raise_error loc - (match err with - | Disabled_extension ext -> - Disabled_extension { ext; maturity = None } - | Unknown_extension name -> - Unknown_extension (AST.embedding_syntax, erasability, name))) - | Some (({ components = _ :: _ :: _; _ } as name), _, _, _) -> - raise_error loc (Bad_introduction (AST.embedding_syntax, name)) - | None -> None - in - of_ast -end - -let make_jane_syntax_attribute feature trailing_components payload = - make_jane_syntax_attribute - (Embedded_name.of_feature feature trailing_components) - payload - -(* See Note [Hiding internal details] *) -module Expression = Make_ast (Expression0) -module Pattern = Make_ast (Pattern0) -module Module_type = Make_ast (Module_type0) -module Module_expr = Make_ast (Module_expr0) -module Signature_item = Make_ast (Signature_item0) -module Structure_item = Make_ast (Structure_item0) -module Core_type = Make_ast (Core_type0) -module Constructor_argument = Make_ast (Constructor_argument0) -module Extension_constructor = Make_ast (Extension_constructor0) -module Constructor_declaration = Make_ast (Constructor_declaration0) -module Type_declaration = Make_ast (Type_declaration0) diff --git a/upstream/ocaml_flambda/parsing/jane_syntax_parsing.mli b/upstream/ocaml_flambda/parsing/jane_syntax_parsing.mli index c5c1be2fb..e69de29bb 100644 --- a/upstream/ocaml_flambda/parsing/jane_syntax_parsing.mli +++ b/upstream/ocaml_flambda/parsing/jane_syntax_parsing.mli @@ -1,272 +0,0 @@ -(** This module handles the logic around the syntax of our extensions to OCaml - for Jane Street, keeping the gory details wrapped up behind a clean - interface. - - As we've started to work on syntactic extensions to OCaml, three concerns - arose about the mechanics of how we wanted to maintain these changes in our - fork. - - 1. We don't want to extend the AST for our fork, as we really want to make - sure things like ppxen are cross-compatible between upstream and our - fork. Thankfully, OCaml already provides places to add extra syntax: - extension nodes and annotations! Thus, we have to come up with a way of - representing our new syntactic constructs in terms of these constructs. - - 2. We don't want to actually match on extension nodes or attributes whose - names are specific strings all over the compiler; that's incredibly - messy, and it's easy to miss cases, etc. - - 3. We want to keep our different novel syntactic features distinct so that - we can add them to upstream independently, work on them separately, and - so on. - - We have come up with a design that addresses those concerns by providing - both a nice compiler-level interface for working with our syntactic - extensions as first-class AST nodes, as well as a uniform scheme for - translating this to and from OCaml AST values by using extension nodes or - attributes. One wrinkle is that OCaml has many ASTs, one for each syntactic - category (expressions, patterns, etc.); we have to provide this facility for - each syntactic category where we want to provide extensions. A smaller - wrinkle is that our novel syntactic features come in two varieties: - *language extensions* (e.g., comprehensions) and *built-in features* (e.g., - syntactic function arity). While the former can be disabled, the latter are - parse tree changes we rely on (though they won't therefore show up in - surface syntax). - - a. For each novel syntactic feature, we will define a module (e.g., - [Comprehensions]), in which we define a proper AST type per syntactic - category we care about (e.g., [Comprehensions.expression] and its - subcomponents). This addresses concern (3); we've now contained each - separate feature (and the built-in changes) in a module. But just doing - that would leave them too siloed, so… - - b. We define an *overall auxiliary AST* for each syntactic category that's - just for our novel syntactic features; for expressions, it's called - [Jane_syntax.Expression.t]. It contains one constructor for each of the - AST types defined as described in design point (1). This addresses - concern (2); we can now match on actual OCaml constructors, as long as we - can get ahold of them. And to do that… - - c. We define a general scheme for how we represent our novel syntactic - features in terms of the existing ASTs, and provide a few primitives for - consuming/creating AST nodes of this form, for each syntactic category. - There's not a lot of abstraction to be done, or at least it's not (yet) - apparent what abstraction there is to do, so most of this remains manual. - (Setting up a full lens-based/otherwise bidirectional approach sounds - like a great opportunity for yak-shaving, but not *actually* a good - idea.) This solves concern (3), and by doing it uniformly helps us - address multiple cases at one stroke. - - Then, for each syntactic category, we define a module (in - [jane_syntax_parsing.ml]) that contains functions for converting between the - [Parsetree] representation and the higher-level representation. These - modules are inhabitants of [AST.t], and the [AST] module exposes operations - on them. - - This module contains the logic for moving to and from OCaml ASTs; the gory - details of the encoding are detailed in the implementation. All the actual - ASTs should live in [Jane_syntax], which is the only module that should - directly depend on this one. - - When using this module, we often want to specify what our syntax extensions - look like when desugared into OCaml ASTs, so that we can validate the - translation code. We generally specify this as a BNF grammar, but we don't - want to depend on the specific details of the desugaring. Thus, instead of - writing out extension nodes or attributes directly, we write the result of - [Some_ast.make_extension ~loc [name1; name2; ...; NameN] a] as the special - syntax [{% 'name1.name2.....nameN' | a %}] in the BNF. Other pieces of the - OCaml AST are used as normal. - - One detail which we hide as much as possible is locations: whenever - constructing an OCaml AST node -- whether with [wrap_desc], the functions in - [Ast_helper], or some other way -- the location should be left to be - defaulted (and the default, [!Ast_helper.make_default], should be ghost). - The [make_entire_jane_syntax] function will handle making sure this default - location is set appropriately. If this isn't done and any locations on - subterms aren't marked as ghost, the compiler will work fine, but ppxlib may - detect that you've violated its well-formedness constraints and fail to - parse the resulting AST. *) - -(******************************************************************************) - -(** The type enumerating our novel syntactic features, which are either a - language extension (separated out by which one) or the collection of all - built-in features. *) -module Feature : sig - type t = Language_extension : _ Language_extension.t -> t - - (** The component of an attribute or extension name that identifies the - feature. This is third component. - *) - val extension_component : t -> string -end - -module Misnamed_embedding_error : sig - type t -end - -(** An AST-style representation of the names used when generating extension - nodes or attributes for modular syntax. We use this to abstract over the - details of how they're encoded, so we have some flexibility in changing them - (although comments may refer to the specific encoding choices). This is - also why we don't expose any functions for rendering or parsing these names; - that's all handled internally. *) -module Embedded_name : sig - (** A nonempty list of name components, without the first two components. - (That is, without the leading root component that identifies it as part of - the modular syntax mechanism, and without the next component that - identifies the erasability.) - - This is a nonempty list corresponding to the different components of the - name: first the feature, and then any subparts. - *) - type components = ( :: ) of string * string list - - type t - - (** Creates an embedded name whose erasability component is whether the - feature is erasable, and whose feature component is the feature's name. - The second argument is treated as the trailing components after the - feature name. - *) - val of_feature : Feature.t -> string list -> t - - val components : t -> components - - (** Convert one of these Jane syntax names to the embedded string form used in - the OCaml AST as the name of an extension node or an attribute; exposed - for extensions that only uses [Embedded_name] instead of the whole - infrastructure in this module, such as the dummy argument extension *) - val to_string : t -> string - - val of_string : string -> (t, Misnamed_embedding_error.t) result option - - (** Print out the embedded form of a Jane-syntax name, in quotes; for use in - error messages. *) - val pp_quoted_name : Format.formatter -> t -> unit -end - -(** Each syntactic category that contains novel syntactic features has a - corresponding module of this module type. We're adding these lazily as we - need them. When you add another one, make sure also to add special handling - in [Ast_iterator] and [Ast_mapper]. -*) -module type AST = sig - (** The AST type (e.g., [Parsetree.expression]) *) - type ast - - (** Embed a term from one of our novel syntactic features in the AST using the - given name (in the [Feature.t]) and body (the [ast]). Any locations in - the generated AST will be set to [!Ast_helper.default_loc], which should - be [ghost]. *) - val make_jane_syntax : - Feature.t -> string list -> ?payload:Parsetree.payload -> ast -> ast - - (** As [make_jane_syntax], but specifically for the AST node corresponding to - the entire piece of novel syntax (e.g., for a list comprehension, the - whole [[x for x in xs]], and not a subcomponent like [for x in xs]). This - sets [Ast_helper.default_loc] locally to the [ghost] version of the - provided location, which is why the [ast] is generated from a function - call; it is during this call that the location is so set. *) - val make_entire_jane_syntax : - loc:Location.t -> Feature.t -> (unit -> ast) -> ast - - (** Build an [of_ast] function. The return value of this function should be - used to implement [of_ast] in modules satisfying the signature - [Jane_syntax.AST]. - - The returned function interprets an AST term in the specified syntactic - category as a term of the appropriate auxiliary extended AST if possible. - It raises an error if it finds a term from a disabled extension or if the - embedding is malformed. - *) - val make_of_ast : - of_ast_internal:(Feature.t -> ast -> 'a option) - (** A function to convert [Parsetree]'s AST to our novel extended one. The - choice of feature and the piece of syntax will both be extracted from - the embedding by the first argument. - - If the given syntax feature does not actually extend the given syntactic - category, returns [None]; this will be reported as an error. (For - example: There are no pattern comprehensions, so when building the - extended pattern AST, this function will return [None] if it spots an - embedding that claims to be from [Language_extension Comprehensions].) - *) -> - ast -> - 'a option -end - -module Expression : AST with type ast = Parsetree.expression - -module Pattern : AST with type ast = Parsetree.pattern - -module Module_type : AST with type ast = Parsetree.module_type - -module Module_expr : AST with type ast = Parsetree.module_expr - -module Signature_item : AST with type ast = Parsetree.signature_item - -module Structure_item : AST with type ast = Parsetree.structure_item - -module Core_type : AST with type ast = Parsetree.core_type - -module Constructor_argument : AST with type ast = Parsetree.core_type - -module Extension_constructor : - AST with type ast = Parsetree.extension_constructor - -module Constructor_declaration : - AST with type ast = Parsetree.constructor_declaration - -module Type_declaration : AST with type ast = Parsetree.type_declaration - -(** Require that an extension is enabled for at least the provided level, or - else throw an exception (of an abstract type) at the provided location - saying otherwise. This is intended to be used in [jane_syntax.ml] when a - certain piece of syntax requires two extensions to be enabled at once (e.g., - immutable array comprehensions such as [[:x for x = 1 to 10:]], which - require both [Comprehensions] and [Immutable_arrays]). *) -val assert_extension_enabled : - loc:Location.t -> 'a Language_extension.t -> 'a -> unit - -(* CR-someday nroberts: An earlier version of this revealed less of its - implementation in its name: it was called [match_jane_syntax], and - was a function from ast to ast. This has some advantages (less revealing - of the Jane Syntax encoding) but I felt it important to document the caller's - responsibility to plumb through uninterpreted attributes. - - Given that it only has one callsite currently, we decided to keep this - approach for now, but we could revisit this decision if we use it more - often. -*) - -(** Extracts the last attribute (in list order) that was inserted by the - Jane Syntax framework, and returns the rest of the attributes in the - same relative order as was input, along with the location of the removed - attribute and its payload. - - This can be used by [Jane_syntax] to peel off individual attributes in - order to process a Jane Syntax element that consists of multiple - nested ASTs. -*) -val find_and_remove_jane_syntax_attribute : - Parsetree.attributes -> - (Embedded_name.t * Location.t * Parsetree.payload * Parsetree.attributes) - option - -(** Creates an attribute used for encoding syntax from the given [Feature.t] *) -val make_jane_syntax_attribute : - Feature.t -> string list -> Parsetree.payload -> Parsetree.attribute - -(** Errors around the representation of our extended ASTs. These should mostly - just be fatal, but they're needed for one test case - (language-extensions/language_extensions.ml). *) -module Error : sig - (** An error triggered when desugaring a piece of embedded novel syntax from - an OCaml AST; left abstract because it should always be fatal *) - type error - - (** The exception type thrown when desugaring a piece of extended syntax from - an OCaml AST *) - exception Error of Location.t * error -end diff --git a/upstream/ocaml_flambda/parsing/parse.ml b/upstream/ocaml_flambda/parsing/parse.ml index 4b71373e0..1e2253b36 100644 --- a/upstream/ocaml_flambda/parsing/parse.ml +++ b/upstream/ocaml_flambda/parsing/parse.ml @@ -173,6 +173,9 @@ let prepare_error err = | Missing_unboxed_literal_suffix loc -> Location.errorf ~loc "Syntax error: Unboxed integer literals require width suffixes." + | Malformed_instance_identifier loc -> + Location.errorf ~loc + "Syntax error: Unexpected in module instance" let () = Location.register_error_of_exn diff --git a/upstream/ocaml_flambda/parsing/parser.mly b/upstream/ocaml_flambda/parsing/parser.mly index be2c4615c..21e13566a 100644 --- a/upstream/ocaml_flambda/parsing/parser.mly +++ b/upstream/ocaml_flambda/parsing/parser.mly @@ -135,21 +135,35 @@ let neg_string f = else "-" ^ f let mkuminus ~oploc name arg = - match name, arg.pexp_desc with - | "-", Pexp_constant(Pconst_integer (n,m)) -> - Pexp_constant(Pconst_integer(neg_string n,m)), arg.pexp_attributes - | ("-" | "-."), Pexp_constant(Pconst_float (f, m)) -> - Pexp_constant(Pconst_float(neg_string f, m)), arg.pexp_attributes - | _ -> - Pexp_apply(mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] + let result = + match arg.pexp_desc with + | Pexp_constant const -> begin + match name, const with + | "-", Pconst_integer (n, m) -> + Some (Pconst_integer (neg_string n, m)) + | "-", Pconst_unboxed_integer (n, m) -> + Some (Pconst_unboxed_integer (neg_string n, m)) + | ("-" | "-."), Pconst_float (f, m) -> + Some (Pconst_float (neg_string f, m)) + | ("-" | "-."), Pconst_unboxed_float (f, m) -> + Some (Pconst_unboxed_float (neg_string f, m)) + | _, _ -> None + end + | _ -> None + in + match result with + | Some desc -> Pexp_constant desc, arg.pexp_attributes + | None -> + Pexp_apply (mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] let mkuplus ~oploc name arg = let desc = arg.pexp_desc in match name, desc with - | "+", Pexp_constant(Pconst_integer _) - | ("+" | "+."), Pexp_constant(Pconst_float _) -> desc, arg.pexp_attributes + | "+", Pexp_constant (Pconst_integer _ | Pconst_unboxed_integer _) + | ("+" | "+."), Pexp_constant (Pconst_float _ | Pconst_unboxed_float _) -> + desc, arg.pexp_attributes | _ -> - Pexp_apply(mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] + Pexp_apply (mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] let mk_attr ~loc name payload = Builtin_attributes.(register_attr Parser name); @@ -218,17 +232,14 @@ let exclave_extension loc = let mkexp_exclave ~loc ~kwd_loc exp = ghexp ~loc (Pexp_apply(exclave_extension (make_loc kwd_loc), [Nolabel, exp])) -let is_curry_attr attr = - attr.attr_name.txt = Jane_syntax.Arrow_curry.curry_attr_name - let mktyp_curry typ loc = {typ with ptyp_attributes = - Jane_syntax.Arrow_curry.curry_attr loc :: typ.ptyp_attributes} + Builtin_attributes.curry_attr loc :: typ.ptyp_attributes} let maybe_curry_typ typ loc = match typ.ptyp_desc with | Ptyp_arrow _ -> - if List.exists is_curry_attr typ.ptyp_attributes then typ + if Builtin_attributes.has_curry typ.ptyp_attributes then typ else mktyp_curry typ (make_loc loc) | _ -> typ @@ -335,13 +346,15 @@ module Generic_array = struct (** An array literal with a local open, [Module.[? x; y; z ?]] (only valid in expressions) *) - let to_desc (open_ : string) (close : string) array t = + let to_desc (open_ : string) (close : string) mut t = + let array elts = Pexp_array (mut, elts) in match t with | Simple x -> Simple.to_ast open_ close array x | Opened_literal (od, startpos, endpos, elts) -> Pexp_open (od, mkexp ~loc:(startpos, endpos) (array elts)) - let to_expression (open_ : string) (close : string) array ~loc t = + let to_expression (open_ : string) (close : string) mut ~loc t = + let array ~loc elts = mkexp ~loc (Pexp_array (mut, elts)) in match t with | Simple x -> Simple.to_ast open_ close (array ~loc) x | Opened_literal (od, startpos, endpos, elts) -> @@ -350,16 +363,11 @@ module Generic_array = struct module Pattern = struct type t = pattern Simple.t - let to_ast open_ close array (t : t) = - Simple.to_ast open_ close array t + let to_ast open_ close mut (t : t) = + Simple.to_ast open_ close (fun elts -> Ppat_array (mut, elts)) t end end -let ppat_iarray loc elts = - Jane_syntax.Immutable_arrays.pat_of - ~loc:(make_loc loc) - (Iapat_immutable_array elts) - let expecting_loc (loc : Location.t) (nonterm : string) = raise Syntaxerr.(Error(Expecting(loc, nonterm))) let expecting (loc : Lexing.position * Lexing.position) nonterm = @@ -434,14 +442,11 @@ type ('dot,'index) array_family = { } let bigarray_untuplify exp = - match Jane_syntax.Expression.of_ast exp with - | Some _ -> [exp] - | None -> - match exp.pexp_desc with - | Pexp_tuple explist when - List.for_all (function None, _ -> true | _ -> false) explist -> - List.map (fun (_, e) -> e) explist - | _ -> [exp] + match exp.pexp_desc with + | Pexp_tuple explist when + List.for_all (function None, _ -> true | _ -> false) explist -> + List.map (fun (_, e) -> e) explist + | _ -> [exp] (* Immutable array indexing is a regular operator, so it doesn't need a special case here *) @@ -470,7 +475,7 @@ let builtin_arraylike_index loc paren_kind index = match paren_kind with | [x] -> One, [Nolabel, x] | [x;y] -> Two, [Nolabel, x; Nolabel, y] | [x;y;z] -> Three, [Nolabel, x; Nolabel, y; Nolabel, z] - | coords -> Many, [Nolabel, ghexp ~loc (Pexp_array coords)] + | coords -> Many, [Nolabel, ghexp ~loc (Pexp_array (Mutable, coords))] let builtin_indexing_operators : (unit, expression) array_family = { index = builtin_arraylike_index; name = builtin_arraylike_name } @@ -498,7 +503,7 @@ let user_index loc _ index = ([a.%[1;2;3;4]]) *) match index with | [a] -> One, [Nolabel, a] - | l -> Many, [Nolabel, mkexp ~loc (Pexp_array l)] + | l -> Many, [Nolabel, mkexp ~loc (Pexp_array (Mutable, l))] let user_indexing_operators: (Longident.t option * string, expression list) array_family @@ -548,11 +553,7 @@ let pat_of_label lbl = let mk_newtypes ~loc newtypes exp = let mk_one (name, jkind) exp = - match jkind with - | None -> ghexp ~loc (Pexp_newtype (name, exp)) - | Some jkind -> - Jane_syntax.Layouts.expr_of ~loc:(ghost_loc loc) - (Lexp_newtype (name, jkind, exp)) + ghexp ~loc (Pexp_newtype (name, jkind, exp)) in let exp = List.fold_right mk_one newtypes exp in (* outermost expression should have non-ghost location *) @@ -566,12 +567,7 @@ let wrap_type_annotation ~loc ?(typloc=loc) ~modes newtypes core_type body = let exp = mkexp_with_modes ~loc ~exp:body ~cty:(Some core_type) ~modes in let exp = mk_newtypes newtypes exp in let inner_type = Typ.varify_constructors (List.map fst newtypes) core_type in - let ltyp = - Jane_syntax.Layouts.Ltyp_poly { bound_vars = newtypes; inner_type } - in - (exp, - Jane_syntax.Layouts.type_of - ~loc:(Location.ghostify (make_loc typloc)) ltyp) + (exp, ghtyp ~loc:typloc (Ptyp_poly (newtypes, inner_type))) let wrap_exp_attrs ~loc body (ext, attrs) = let ghexp = ghexp ~loc in @@ -619,7 +615,9 @@ let wrap_mkstr_ext ~loc (item, ext) = let wrap_sig_ext ~loc body ext = match ext with | None -> body - | Some id -> ghsig ~loc (Psig_extension ((id, PSig [body]), [])) + | Some id -> + ghsig ~loc (Psig_extension ((id, PSig {psg_items=[body]; + psg_modalities=[]; psg_loc=make_loc loc}), [])) let wrap_mksig_ext ~loc (item, ext) = wrap_sig_ext ~loc (mksig ~loc item) ext @@ -817,6 +815,47 @@ let package_type_of_module_type pmty = | _ -> err pmty.pmty_loc Neither_identifier_nor_with_type +(* There's no dedicated syntax for module instances. Functor application + syntax is translated into a module instance expression. +*) +let pmod_instance : module_expr -> module_expr_desc = + let raise_malformed_instance loc = + raise (Syntaxerr.Error (Malformed_instance_identifier loc)) + in + let head_of_ident (lid : Longident.t Location.loc) = + match lid with + | { txt = Lident s; loc = _ } -> s + | { txt = _; loc } -> raise_malformed_instance loc + in + let gather_args mexpr = + let rec loop mexpr acc = + match mexpr with + | { pmod_desc = Pmod_apply (f, v); _ } -> + (match f.pmod_desc with + | Pmod_apply (f, n) -> loop f ((n, v) :: acc) + | _ -> raise_malformed_instance f.pmod_loc) + | head -> head, acc + in + loop mexpr [] + in + let string_of_module_expr mexpr = + match mexpr.pmod_desc with + | Pmod_ident i -> head_of_ident i + | _ -> raise_malformed_instance mexpr.pmod_loc + in + let rec instance_of_module_expr mexpr = + match gather_args mexpr with + | { pmod_desc = Pmod_ident i; _ }, args -> + let head = head_of_ident i in + let args = List.map instances_of_arg_pair args in + { pmod_instance_head = head; pmod_instance_args = args } + | { pmod_loc; _ }, _ -> raise_malformed_instance pmod_loc + and instances_of_arg_pair (n, v) = + string_of_module_expr n, instance_of_module_expr v + in + fun mexpr -> Pmod_instance (instance_of_module_expr mexpr) +;; + let mk_directive_arg ~loc k = { pdira_desc = k; pdira_loc = make_loc loc; @@ -845,8 +884,7 @@ let with_sign sign num = let unboxed_int sloc int_loc sign (n, m) = match m with - | Some m -> - Constant.unboxed (Integer (with_sign sign n, m)) + | Some m -> Pconst_unboxed_integer (with_sign sign n, m) | None -> if Language_extension.is_enabled unboxed_literals_extension then raise @@ -854,8 +892,7 @@ let unboxed_int sloc int_loc sign (n, m) = else not_expecting sloc "line number directive" -let unboxed_float sign (f, m) = - Constant.unboxed (Float (with_sign sign f, m)) +let unboxed_float sign (f, m) = Pconst_unboxed_float (with_sign sign f, m) (* Invariant: [lident] must end with an [Lident] that ends with a ["#"]. *) let unboxed_type sloc lident tys = @@ -1206,9 +1243,6 @@ The precedences must be listed from low to high. %inline mk_directive_arg(symb): symb { mk_directive_arg ~loc:$sloc $1 } -%inline mktyp_jane_syntax_ltyp(symb): symb - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) $1 } - /* Generic definitions */ (* [iloption(X)] recognizes either nothing or [X]. Assuming [X] produces @@ -1594,7 +1628,12 @@ module_expr: | me = paren_module_expr { me } | me = module_expr attr = attribute - { Mod.attr me attr } + { match attr with + | { attr_name = { txt = "jane.non_erasable.instances"; loc = _ }; + attr_payload = PStr []; + } -> mkmod ~loc:$sloc (pmod_instance me) + | attr -> Mod.attr me attr + } | mkmod( (* A module identifier. *) x = mkrhs(mod_longident) @@ -1695,7 +1734,10 @@ structure_item: Pstr_extension ($1, add_docs_attrs docs $2) } | floating_attribute { Pstr_attribute $1 } - ) + | kind_abbreviation_decl + { let name, jkind = $1 in + Pstr_kind_abbrev (name, jkind) + }) | wrap_mkstr_ext( primitive_declaration { pstr_primitive $1 } @@ -1726,14 +1768,6 @@ structure_item: let item = mkstr ~loc:$sloc (Pstr_include incl) in wrap_str_ext ~loc:$sloc item ext } - | kind_abbreviation_decl - { - let name, jkind = $1 in - Jane_syntax.Layouts.(str_item_of - ~loc:(make_loc $sloc) - (Lstr_kind_abbrev (name, jkind))) - } - ; (* A single module binding. *) @@ -1930,17 +1964,18 @@ module_type: { Pmty_alias $3 } */ | extension { Pmty_extension $1 } + | module_type WITH mkrhs(mod_ext_longident) + { Pmty_strengthen ($1, $3) } ) { $1 } - | module_type WITH mkrhs(mod_ext_longident) - { Jane_syntax.Strengthen.mty_of ~loc:(make_loc $sloc) - { mty = $1; mod_id = $3 } } ; (* A signature, which appears between SIG and END (among other places), is a list of signature elements. *) signature: - extra_sig(flatten(signature_element*)) - { $1 } + optional_atat_modalities_expr extra_sig(flatten(signature_element*)) + { { psg_modalities = $1; + psg_items = $2; + psg_loc = make_loc $sloc; } } ; (* A signature element is one of the following: @@ -1960,6 +1995,10 @@ signature_item: | mksig( floating_attribute { Psig_attribute $1 } + | kind_abbreviation_decl + { let name, jkind = $1 in + Psig_kind_abbrev (name, jkind) + } ) { $1 } | wrap_mksig_ext( @@ -2000,13 +2039,6 @@ signature_item: let item = mksig ~loc:$sloc (Psig_include (incl, modalities)) in wrap_sig_ext ~loc:$sloc item ext } - | kind_abbreviation_decl - { - let name, jkind = $1 in - Jane_syntax.Layouts.(sig_item_of - ~loc:(make_loc $sloc) - (Lsig_kind_abbrev (name, jkind))) - } (* A module declaration. *) %inline module_declaration: @@ -2372,7 +2404,7 @@ class_signature: class_self_type: LPAREN core_type RPAREN { $2 } - | mktyp((* empty *) { Ptyp_any }) + | mktyp((* empty *) { Ptyp_any None }) { $1 } ; %inline class_sig_fields: @@ -2633,10 +2665,10 @@ label_let_pattern: lab, pat, Some cty, modes } | x = label_var COLON - cty = mktyp_jane_syntax_ltyp (bound_vars = typevar_list - DOT - inner_type = core_type - { Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } }) + cty = mktyp (bound_vars = typevar_list + DOT + inner_type = core_type + { Ptyp_poly (bound_vars, inner_type) }) modes = optional_atat_mode_expr { let lab, pat = x in lab, pat, Some cty, modes @@ -2681,10 +2713,10 @@ let_pattern_no_modes: %inline poly_pattern_no_modes: pat = pattern COLON - cty = mktyp_jane_syntax_ltyp(bound_vars = typevar_list - DOT - inner_type = core_type - { Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } }) + cty = mktyp(bound_vars = typevar_list + DOT + inner_type = core_type + { Ptyp_poly (bound_vars, inner_type) }) { pat, Some cty } ; @@ -2846,13 +2878,10 @@ simple_expr: { Generic_array.Expression.to_expression "[:" ":]" ~loc:$sloc - (fun ~loc elts -> - Jane_syntax.Immutable_arrays.expr_of - ~loc:(make_loc loc) - (Iaexp_immutable_array elts)) - $1 + Immutable + $1 } - | constant { Constant.to_expression ~loc:$sloc $1 } + | constant { mkexp ~loc:$sloc (Pexp_constant $1) } | comprehension_expr { $1 } ; %inline simple_expr_attrs: @@ -2878,14 +2907,14 @@ simple_expr: comprehension_iterator: | EQUAL expr direction_flag expr - { Jane_syntax.Comprehensions.Range { start = $2 ; stop = $4 ; direction = $3 } } + { Pcomp_range { start = $2 ; stop = $4 ; direction = $3 } } | IN expr - { Jane_syntax.Comprehensions.In $2 } + { Pcomp_in $2 } ; comprehension_clause_binding: | attributes pattern comprehension_iterator - { Jane_syntax.Comprehensions.{ pattern = $2 ; iterator = $3 ; attributes = $1 } } + { { pcomp_cb_pattern = $2 ; pcomp_cb_iterator = $3 ; pcomp_cb_attributes = $1 } } (* We can't write [[e for local_ x = 1 to 10]], because the [local_] has to move to the RHS and there's nowhere for it to move to; besides, you never want that [int] to be [local_]. But we can parse [[e for local_ x in xs]]. @@ -2895,37 +2924,36 @@ comprehension_clause_binding: { let expr = mkexp_with_modes ~loc:$sloc ~exp:$5 ~cty:None ~modes:[$2] in - Jane_syntax.Comprehensions. - { pattern = $3 - ; iterator = In expr - ; attributes = $1 - } + { pcomp_cb_pattern = $3 + ; pcomp_cb_iterator = Pcomp_in expr + ; pcomp_cb_attributes = $1 + } } ; comprehension_clause: | FOR separated_nonempty_llist(AND, comprehension_clause_binding) - { Jane_syntax.Comprehensions.For $2 } + { Pcomp_for $2 } | WHEN expr - { Jane_syntax.Comprehensions.When $2 } + { Pcomp_when $2 } %inline comprehension(lbracket, rbracket): lbracket expr nonempty_llist(comprehension_clause) rbracket - { Jane_syntax.Comprehensions.{ body = $2; clauses = $3 } } + { { pcomp_body = $2; pcomp_clauses = $3 } } ; %inline comprehension_ext_expr: | comprehension(LBRACKET,RBRACKET) - { Jane_syntax.Comprehensions.Cexp_list_comprehension $1 } + { Pcomp_list_comprehension $1 } | comprehension(LBRACKETBAR,BARRBRACKET) - { Jane_syntax.Comprehensions.Cexp_array_comprehension (Mutable, $1) } + { Pcomp_array_comprehension (Mutable, $1) } | comprehension(LBRACKETCOLON,COLONRBRACKET) - { Jane_syntax.Comprehensions.Cexp_array_comprehension (Immutable, $1) } + { Pcomp_array_comprehension (Immutable, $1) } ; %inline comprehension_expr: comprehension_ext_expr - { Jane_syntax.Comprehensions.expr_of ~loc:(make_loc $sloc) $1 } + { mkexp ~loc:$sloc (Pexp_comprehension $1) } ; %inline array_simple(ARR_OPEN, ARR_CLOSE, contents_semi_list): @@ -3012,7 +3040,7 @@ comprehension_clause: | array_exprs(LBRACKETBAR, BARRBRACKET) { Generic_array.Expression.to_desc "[|" "|]" - (fun elts -> Pexp_array elts) + Mutable $1 } | LBRACKET expr_semi_list RBRACKET @@ -3094,11 +3122,8 @@ let_binding_body_no_punning: } | modes0 = optional_mode_expr_legacy let_ident COLON poly(core_type) modes1 = optional_atat_mode_expr EQUAL seq_expr { let bound_vars, inner_type = $4 in - let ltyp = Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } in - let typ_loc = Location.ghostify (make_loc $loc($4)) in - let typ = - Jane_syntax.Layouts.type_of ~loc:typ_loc ltyp - in + let ltyp = Ptyp_poly (bound_vars, inner_type) in + let typ = ghtyp ~loc:$loc($4) ltyp in let modes = modes0 @ modes1 in ($2, $7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) @@ -3112,9 +3137,8 @@ let_binding_body_no_punning: ($1, $8, Some constraint') ]} - But this would require encoding [newtypes] (which, internally, may - associate a layout with a newtype) in Jane Syntax, which will require - a small amount of work. + But this would require adding a jkind field to [newtypes], which will require + a small amount of additional work. The [typloc] argument to [wrap_type_annotation] is used to make the location on the [core_type] node for the annotation match the upstream @@ -3591,7 +3615,7 @@ simple_pattern_not_ident: $3 } | simple_pattern_not_ident_ { $1 } - | signed_constant { Constant.to_pattern $1 ~loc:$sloc } + | signed_constant { mkpat (Ppat_constant $1) ~loc:$sloc } ; %inline simple_pattern_not_ident_: mkpat( @@ -3663,19 +3687,19 @@ simple_delimited_pattern: | array_patterns(LBRACKETBAR, BARRBRACKET) { Generic_array.Pattern.to_ast "[|" "|]" - (fun elts -> Ppat_array elts) + Mutable + $1 + } + | array_patterns(LBRACKETCOLON, COLONRBRACKET) + { Generic_array.Pattern.to_ast + "[:" ":]" + Immutable $1 } | HASHLPAREN reversed_labeled_tuple_pattern(pattern) RPAREN { let (closed, fields) = $2 in Ppat_unboxed_tuple (List.rev fields, closed) } ) { $1 } - | array_patterns(LBRACKETCOLON, COLONRBRACKET) - { Generic_array.Pattern.to_ast - "[:" ":]" - (ppat_iarray $sloc) - $1 - } %inline pattern_semi_list: ps = separated_or_terminated_nonempty_list(SEMI, pattern) @@ -3789,7 +3813,7 @@ generic_type_declaration(flag, kind): flag = flag params = type_parameters id = mkrhs(LIDENT) - jkind = jkind_constraint? + jkind_annotation = jkind_constraint? kind_priv_manifest = kind cstrs = constraints attrs2 = post_item_attributes @@ -3799,8 +3823,8 @@ generic_type_declaration(flag, kind): let attrs = attrs1 @ attrs2 in let loc = make_loc $sloc in (flag, ext), - Jane_syntax.Layouts.type_declaration_of - id ~params ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:None ~jkind + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ?jkind_annotation } ; %inline generic_and_type_declaration(kind): @@ -3808,7 +3832,7 @@ generic_type_declaration(flag, kind): attrs1 = attributes params = type_parameters id = mkrhs(LIDENT) - jkind = jkind_constraint? + jkind_annotation = jkind_constraint? kind_priv_manifest = kind cstrs = constraints attrs2 = post_item_attributes @@ -3818,8 +3842,8 @@ generic_type_declaration(flag, kind): let attrs = attrs1 @ attrs2 in let loc = make_loc $sloc in let text = symbol_text $symbolstartpos in - Jane_syntax.Layouts.type_declaration_of - id ~params ~jkind ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:(Some text) + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + ?jkind_annotation } ; %inline constraints: @@ -3872,46 +3896,45 @@ type_parameters: { ps } ; -jkind: - jkind MOD mkrhs(LIDENT)+ { (* LIDENTs here are for modes *) +jkind_desc: + jkind_annotation MOD mkrhs(LIDENT)+ { (* LIDENTs here are for modes *) let modes = List.map (fun {txt; loc} -> {txt = Mode txt; loc}) $3 in - Jane_syntax.Jkind.Mod ($1, modes) + Mod ($1, modes) } - | jkind WITH core_type { - Jane_syntax.Jkind.With ($1, $3) + | jkind_annotation WITH core_type { + With ($1, $3) } - | mkrhs(ident) { - let {txt; loc} = $1 in - Jane_syntax.Jkind.(Abbreviation (Const.mk txt loc)) + | ident { + Abbreviation $1 } | KIND_OF ty=core_type { - Jane_syntax.Jkind.Kind_of ty + Kind_of ty } | UNDERSCORE { - Jane_syntax.Jkind.Default + Default } | reverse_product_jkind %prec below_AMPERSAND { - Jane_syntax.Jkind.Product (List.rev $1) + Product (List.rev $1) } - | LPAREN jkind RPAREN { + | LPAREN jkind_desc RPAREN { $2 } ; reverse_product_jkind : - | jkind1 = jkind AMPERSAND jkind2 = jkind %prec prec_unboxed_product_kind + | jkind1 = jkind_annotation AMPERSAND jkind2 = jkind_annotation %prec prec_unboxed_product_kind { [jkind2; jkind1] } | jkinds = reverse_product_jkind AMPERSAND - jkind = jkind %prec prec_unboxed_product_kind + jkind = jkind_annotation %prec prec_unboxed_product_kind { jkind :: jkinds } jkind_annotation: (* : jkind_annotation *) - mkrhs(jkind) { $1 } + jkind_desc { { pjkind_loc = make_loc $sloc; pjkind_desc = $1 } } ; jkind_constraint: @@ -3929,8 +3952,9 @@ kind_abbreviation_decl: attrs=attributes COLON jkind=jkind_annotation - { Jane_syntax.Core_type.core_type_of ~loc:(make_loc $sloc) ~attrs - (Jtyp_layout (Ltyp_var { name; jkind })) } + { match name with + | None -> mktyp ~loc:$sloc ~attrs (Ptyp_any (Some jkind)) + | Some name -> mktyp ~loc:$sloc ~attrs (Ptyp_var (name, Some jkind)) } ; parenthesized_type_parameter: @@ -3947,9 +3971,9 @@ type_parameter: %inline type_variable: mktyp( QUOTE tyvar = ident - { Ptyp_var tyvar } + { Ptyp_var (tyvar, None) } | UNDERSCORE - { Ptyp_any } + { Ptyp_any None } ) { $1 } ; @@ -4008,9 +4032,8 @@ generic_constructor_declaration(opening): %inline constructor_declaration(opening): d = generic_constructor_declaration(opening) { - let cid, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Layouts.constructor_declaration_of - cid ~vars_jkinds ~args ~res ~attrs ~loc ~info + let cid, vars, args, res, attrs, loc, info = d in + Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info } ; str_exception_declaration: @@ -4038,24 +4061,17 @@ sig_exception_declaration: vars_args_res = generalized_constructor_arguments attrs2 = attributes attrs = post_item_attributes - { let vars_jkinds, args, res = vars_args_res in + { let vars, args, res = vars_args_res in let loc = make_loc ($startpos, $endpos(attrs2)) in let docs = symbol_docs $sloc in - let ext_ctor = - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~name:id ~attrs:(attrs1 @ attrs2) ~docs - (Jext_layout (Lext_decl (vars_jkinds, args, res))) - in - Te.mk_exception ~attrs ext_ctor, ext } + Te.mk_exception ~attrs + (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs) + , ext } ; %inline let_exception_declaration: mkrhs(constr_ident) generalized_constructor_arguments attributes - { let vars_jkinds, args, res = $2 in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc:(make_loc $sloc) - ~name:$1 - ~attrs:$3 - (Jext_layout (Lext_decl (vars_jkinds, args, res))) } + { let vars, args, res = $2 in + Te.decl $1 ~vars ~args ?res ~attrs:$3 ~loc:(make_loc $sloc) } ; generalized_constructor_arguments: @@ -4145,10 +4161,8 @@ label_declaration_semi: %inline extension_constructor_declaration(opening): d = generic_constructor_declaration(opening) { - let name, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~attrs ~info ~name - (Jext_layout (Lext_decl(vars_jkinds, args, res))) + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info } ; extension_constructor_rebind(opening): @@ -4222,8 +4236,7 @@ possibly_poly(X): { $1 } | poly(X) { let bound_vars, inner_type = $1 in - Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) - (Ltyp_poly { bound_vars; inner_type }) } + mktyp ~loc:$sloc (Ptyp_poly (bound_vars, inner_type)) } ; %inline poly_type: possibly_poly(core_type) @@ -4264,7 +4277,7 @@ alias_type: { $1 } | mktyp( ty = alias_type AS QUOTE tyvar = mkrhs(ident) - { Ptyp_alias(ty, tyvar) } + { Ptyp_alias(ty, Some tyvar, None) } ) { $1 } | aliased_type = alias_type AS @@ -4274,8 +4287,7 @@ alias_type: jkind = jkind_annotation RPAREN { let name = Option.map (fun x -> mkloc x name.loc) name.txt in - Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) - (Ltyp_alias { aliased_type; name; jkind }) } + mktyp ~loc:$sloc (Ptyp_alias (aliased_type, name, Some jkind)) } ; (* Function types include: @@ -4451,9 +4463,9 @@ optional_atat_modalities_expr: ; %inline param_type: - | mktyp_jane_syntax_ltyp( + | mktyp( LPAREN bound_vars = typevar_list DOT inner_type = core_type RPAREN - { Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } } + { Ptyp_poly (bound_vars, inner_type) } ) { $1 } | ty = tuple_type @@ -4614,17 +4626,15 @@ atomic_type: type_ = delimited_type_supporting_local_open { Ptyp_open (mod_ident, type_) } | QUOTE ident = ident - { Ptyp_var ident } + { Ptyp_var (ident, None) } | UNDERSCORE - { Ptyp_any } + { Ptyp_any None } ) { $1 } /* end mktyp group */ | LPAREN QUOTE name=ident COLON jkind=jkind_annotation RPAREN - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) @@ - Ltyp_var { name = Some name; jkind } } + { mktyp ~loc:$sloc (Ptyp_var (name, Some jkind)) } | LPAREN UNDERSCORE COLON jkind=jkind_annotation RPAREN - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) @@ - Ltyp_var { name = None; jkind } } + { mktyp ~loc:$sloc (Ptyp_any (Some jkind)) } (* This is the syntax of the actual type parameters in an application of @@ -4654,11 +4664,9 @@ atomic_type: %inline one_type_parameter_of_several: | core_type { $1 } | QUOTE id=ident COLON jkind=jkind_annotation - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) @@ - Ltyp_var { name = Some id; jkind } } + { mktyp ~loc:$sloc (Ptyp_var (id, (Some jkind))) } | UNDERSCORE COLON jkind=jkind_annotation - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) @@ - Ltyp_var { name = None; jkind } } + { mktyp ~loc:$sloc (Ptyp_any (Some jkind)) } %inline package_type: module_type { let (lid, cstrs, attrs) = package_type_of_module_type $1 in @@ -4752,7 +4760,7 @@ unboxed_constant: | HASH_FLOAT { unboxed_float Positive $1 } ; constant: - value_constant { Constant.value $1 } + value_constant { $1 } | unboxed_constant { $1 } ; signed_value_constant: @@ -4763,7 +4771,7 @@ signed_value_constant: | PLUS FLOAT { let (f, m) = $2 in Pconst_float(f, m) } ; signed_constant: - signed_value_constant { Constant.value $1 } + signed_value_constant { $1 } | unboxed_constant { $1 } | MINUS HASH_INT { unboxed_int $sloc $loc($2) Negative $2 } | MINUS HASH_FLOAT { unboxed_float Negative $2 } diff --git a/upstream/ocaml_flambda/parsing/parser_types.ml b/upstream/ocaml_flambda/parsing/parser_types.ml index 5dd5bcf9f..384972e15 100644 --- a/upstream/ocaml_flambda/parsing/parser_types.ml +++ b/upstream/ocaml_flambda/parsing/parser_types.ml @@ -1,53 +1,7 @@ open Asttypes open Parsetree -open Ast_helper open Docstrings -let make_loc (startpos, endpos) = { - Location.loc_start = startpos; - Location.loc_end = endpos; - Location.loc_ghost = false; -} -let mkexp ~loc ?attrs d = Exp.mk ~loc:(make_loc loc) ?attrs d -let mkpat ~loc ?attrs d = Pat.mk ~loc:(make_loc loc) ?attrs d - - -module Constant : sig - type t = private - | Value of constant - | Unboxed of Jane_syntax.Layouts.constant - - type loc := Lexing.position * Lexing.position - - val value : Parsetree.constant -> t - val unboxed : Jane_syntax.Layouts.constant -> t - val to_expression : loc:loc -> t -> expression - val to_pattern : loc:loc -> t -> pattern -end = struct - type t = - | Value of constant - | Unboxed of Jane_syntax.Layouts.constant - - let value x = Value x - - let unboxed x = Unboxed x - - let to_expression ~loc : t -> expression = function - | Value const_value -> - mkexp ~loc (Pexp_constant const_value) - | Unboxed const_unboxed -> - Jane_syntax.Layouts.expr_of ~loc:(make_loc loc) - (Lexp_constant const_unboxed) - - let to_pattern ~loc : t -> pattern = function - | Value const_value -> - mkpat ~loc (Ppat_constant const_value) - | Unboxed const_unboxed -> - Jane_syntax.Layouts.pat_of - ~loc:(make_loc loc) (Lpat_constant const_unboxed) -end - - type let_binding = { lb_pattern: pattern; lb_expression: expression; diff --git a/upstream/ocaml_flambda/parsing/parser_types.mli b/upstream/ocaml_flambda/parsing/parser_types.mli index fb5a0b9ae..a9a4662a1 100644 --- a/upstream/ocaml_flambda/parsing/parser_types.mli +++ b/upstream/ocaml_flambda/parsing/parser_types.mli @@ -7,19 +7,6 @@ open Asttypes open Parsetree open Docstrings -module Constant : sig - type t = private - | Value of constant - | Unboxed of Jane_syntax.Layouts.constant - - type loc := Lexing.position * Lexing.position - - val value : Parsetree.constant -> t - val unboxed : Jane_syntax.Layouts.constant -> t - val to_expression : loc:loc -> t -> expression - val to_pattern : loc:loc -> t -> pattern -end - type let_binding = { lb_pattern: pattern; lb_expression: expression; diff --git a/upstream/ocaml_flambda/parsing/parsetree.mli b/upstream/ocaml_flambda/parsing/parsetree.mli index eaf88a137..b072ffad2 100644 --- a/upstream/ocaml_flambda/parsing/parsetree.mli +++ b/upstream/ocaml_flambda/parsing/parsetree.mli @@ -29,6 +29,12 @@ type constant = Suffixes [[g-z][G-Z]] are accepted by the parser. Suffixes except ['l'], ['L'] and ['n'] are rejected by the typechecker *) + | Pconst_unboxed_integer of string * char + (** Integer constants such as [#3] [#3l] [#3L] [#3n]. + + A suffix [[g-z][G-Z]] is required by the parser. + Suffixes except ['l'], ['L'] and ['n'] are rejected by the typechecker + *) | Pconst_char of char (** Character such as ['c']. *) | Pconst_string of string * Location.t * string option (** Constant string such as ["constant"] or @@ -40,7 +46,13 @@ type constant = (** Float constant such as [3.4], [2e5] or [1.4e-4]. Suffixes [g-z][G-Z] are accepted by the parser. - Suffixes are rejected by the typechecker. + Suffixes except ['s'] are rejected by the typechecker. + *) + | Pconst_unboxed_float of string * char option + (** Float constant such as [#3.4], [#2e5] or [#1.4e-4]. + + Suffixes [g-z][G-Z] are accepted by the parser. + Suffixes except ['s'] are rejected by the typechecker. *) type location_stack = Location.t list @@ -93,8 +105,9 @@ and core_type = } and core_type_desc = - | Ptyp_any (** [_] *) - | Ptyp_var of string (** A type variable such as ['a] *) + | Ptyp_any of jkind_annotation option (** [_] or [_ : k] *) + | Ptyp_var of string * jkind_annotation option + (** A type variable such as ['a] or ['a : k] *) | Ptyp_arrow of arg_label * core_type * core_type * modes * modes (** [Ptyp_arrow(lbl, T1, T2, M1, M2)] represents: - [T1 @ M1 -> T2 @ M2] when [lbl] is @@ -138,7 +151,11 @@ and core_type_desc = - [T #tconstr] when [l=[T]], - [(T1, ..., Tn) #tconstr] when [l=[T1 ; ... ; Tn]]. *) - | Ptyp_alias of core_type * string loc (** [T as 'a]. *) + | Ptyp_alias of core_type * string loc option * jkind_annotation option + (** [T as 'a] or [T as ('a : k)] or [T as (_ : k)]. + + Invariant: the name or jkind annotation is non-None. + *) | Ptyp_variant of row_field list * closed_flag * label list option (** [Ptyp_variant([`A;`B], flag, labels)] represents: - [[ `A|`B ]] @@ -154,8 +171,9 @@ and core_type_desc = when [flag] is {{!Asttypes.closed_flag.Closed}[Closed]}, and [labels] is [Some ["X";"Y"]]. *) - | Ptyp_poly of string loc list * core_type + | Ptyp_poly of (string loc * jkind_annotation option) list * core_type (** ['a1 ... 'an. T] + [('a1 : k1) ... ('an : kn). T] Can only appear in the following context: @@ -234,13 +252,6 @@ and object_field_desc = and pattern = { ppat_desc: pattern_desc; - (** (Jane Street specific; delete when upstreaming.) - Consider using [Jane_syntax.Pattern.of_ast] before matching on - this field directly, as the former will detect extension nodes - correctly. Our syntax extensions are encoded as - [Ppat_tuple [Ppat_extension _; _]]; if your pattern match avoids - matching that pattern, it is OK to skip [of_ast]. *) - ppat_loc: Location.t; ppat_loc_stack: location_stack; ppat_attributes: attributes; (** [... [\@id1] [\@id2]] *) @@ -301,7 +312,8 @@ and pattern_desc = Invariant: [n > 0] *) - | Ppat_array of pattern list (** Pattern [[| P1; ...; Pn |]] *) + | Ppat_array of mutable_flag * pattern list + (** Pattern [[| P1; ...; Pn |]] or [[: P1; ...; Pn :]] *) | Ppat_or of pattern * pattern (** Pattern [P1 | P2] *) | Ppat_constraint of pattern * core_type option * modes (** [Ppat_constraint(tyopt, modes)] represents: @@ -327,13 +339,6 @@ and pattern_desc = and expression = { pexp_desc: expression_desc; - (** (Jane Street specific; delete when upstreaming.) - Consider using [Jane_syntax.Expression.of_ast] before matching on - this field directly, as the former will detect extension nodes - correctly. Our syntax extensions are encoded as - [Pexp_apply(Pexp_extension _, _)]; if your pattern match avoids - matching that pattern, it is OK to skip [of_ast]. *) - pexp_loc: Location.t; pexp_loc_stack: location_stack; pexp_attributes: attributes; (** [... [\@id1] [\@id2]] *) @@ -421,7 +426,8 @@ and expression_desc = | Pexp_field of expression * Longident.t loc (** [E.l] *) | Pexp_setfield of expression * Longident.t loc * expression (** [E1.l <- E2] *) - | Pexp_array of expression list (** [[| E1; ...; En |]] *) + | Pexp_array of mutable_flag * expression list + (** [[| E1; ...; En |]] or [[: E1; ...; En :]] *) | Pexp_ifthenelse of expression * expression * expression option (** [if E1 then E2 else E3] *) | Pexp_sequence of expression * expression (** [E1; E2] *) @@ -461,7 +467,8 @@ and expression_desc = {{!class_field_kind.Cfk_concrete}[Cfk_concrete]} for methods (not values). *) | Pexp_object of class_structure (** [object ... end] *) - | Pexp_newtype of string loc * expression (** [fun (type t) -> E] *) + | Pexp_newtype of string loc * jkind_annotation option * expression + (** [fun (type t) -> E] or [fun (type t : k) -> E] *) | Pexp_pack of module_expr (** [(module ME)]. @@ -477,6 +484,12 @@ and expression_desc = | Pexp_extension of extension (** [[%id]] *) | Pexp_unreachable (** [.] *) | Pexp_stack of expression (** stack_ exp *) + | Pexp_comprehension of comprehension_expression + (** [[? BODY ...CLAUSES... ?]], where: + - [?] is either [""] (list), [:] (immutable array), or [|] (array). + - [BODY] is an expression. + - [CLAUSES] is a series of [comprehension_clause]. + *) and case = { @@ -520,7 +533,7 @@ and function_param_desc = Note: If [E0] is provided, only {{!Asttypes.arg_label.Optional}[Optional]} is allowed. *) - | Pparam_newtype of string loc * jkind_annotation loc option + | Pparam_newtype of string loc * jkind_annotation option (** [Pparam_newtype x] represents the parameter [(type x)]. [x] carries the location of the identifier, whereas the [pparam_loc] on the enclosing [function_param] node is the location of the [(type x)] @@ -571,6 +584,43 @@ and function_constraint = } (** See the comment on {{!expression_desc.Pexp_function}[Pexp_function]}. *) +and comprehension_iterator = + | Pcomp_range of + { start : expression; + stop : expression; + direction : direction_flag + } + (** "= START to STOP" (direction = Upto) + "= START downto STOP" (direction = Downto) *) + | Pcomp_in of expression (** "in EXPR" *) + +(** [@...] PAT (in/=) ... *) +and comprehension_clause_binding = + { pcomp_cb_pattern : pattern; + pcomp_cb_iterator : comprehension_iterator; + pcomp_cb_attributes : attribute list + } + +and comprehension_clause = + | Pcomp_for of comprehension_clause_binding list + (** "for PAT (in/=) ... and PAT (in/=) ... and ..."; must be nonempty *) + | Pcomp_when of expression (** "when EXPR" *) + +and comprehension = + { pcomp_body : expression; + (** The body/generator of the comprehension *) + pcomp_clauses : comprehension_clause list; + (** The clauses of the comprehension; must be nonempty *) + } + +and comprehension_expression = + | Pcomp_list_comprehension of comprehension (** [[BODY ...CLAUSES...]] *) + | Pcomp_array_comprehension of mutable_flag * comprehension + (** [[|BODY ...CLAUSES...|]] (flag = Mutable) + [[:BODY ...CLAUSES...:]] (flag = Immutable) + (only allowed with [-extension immutable_arrays]) + *) + (** {2 Value descriptions} *) and value_description = @@ -602,6 +652,7 @@ and type_declaration = ptype_private: private_flag; (** for [= private ...] *) ptype_manifest: core_type option; (** represents [= T] *) ptype_attributes: attributes; (** [... [\@\@id1] [\@\@id2]] *) + ptype_jkind_annotation: jkind_annotation option; (** for [: jkind] *) ptype_loc: Location.t; } (** @@ -659,7 +710,8 @@ and label_declaration = and constructor_declaration = { pcd_name: string loc; - pcd_vars: string loc list; + pcd_vars: (string loc * jkind_annotation option) list; + (** jkind annotations are [C : ('a : kind1) ('a2 : kind2). ...] *) pcd_args: constructor_arguments; pcd_res: core_type option; pcd_loc: Location.t; @@ -721,7 +773,8 @@ and type_exception = (** Definition of a new exception ([exception E]). *) and extension_constructor_kind = - | Pext_decl of string loc list * constructor_arguments * core_type option + | Pext_decl of (string loc * jkind_annotation option) list + * constructor_arguments * core_type option (** [Pext_decl(existentials, c_args, t_opt)] describes a new extension constructor. It can be: - [C of T1 * ... * Tn] when: @@ -736,8 +789,8 @@ and extension_constructor_kind = {ul {- [existentials] is [[]],} {- [c_args] is [[T1; ...; Tn]],} {- [t_opt] is [Some T0].}} - - [C: 'a... . T1 * ... * Tn -> T0] when - {ul {- [existentials] is [['a;...]],} + - [C: ('a : k)... . T1 * ... * Tn -> T0] when + {ul {- [existentials] is [[('a : k);...]],} {- [c_args] is [[T1; ... ; Tn]],} {- [t_opt] is [Some T0].}} *) @@ -942,14 +995,6 @@ and class_declaration = class_expr class_infos and module_type = { pmty_desc: module_type_desc; - (** (Jane Street specific; delete when upstreaming.) - Consider using [Jane_syntax.Module_type.of_ast] before matching on - this field directly, as the former will detect extension nodes - correctly. Our syntax extensions are encoded as - [Pmty_functor(Named(_, Pmty_extension _), _)]; - if your pattern match avoids - matching that pattern, it is OK to skip [of_ast]. *) - pmty_loc: Location.t; pmty_attributes: attributes; (** [... [\@id1] [\@id2]] *) } @@ -963,6 +1008,8 @@ and module_type_desc = | Pmty_typeof of module_expr (** [module type of ME] *) | Pmty_extension of extension (** [[%id]] *) | Pmty_alias of Longident.t loc (** [(module M)] *) + (*_ [Pmty_strengthen] might be a better fit for [with_constraint] *) + | Pmty_strengthen of module_type * Longident.t loc (** [MT with S] *) and functor_parameter = | Unit (** [()] *) @@ -971,7 +1018,12 @@ and functor_parameter = - [(X : MT)] when [name] is [Some X], - [(_ : MT)] when [name] is [None] *) -and signature = signature_item list +and signature = + { + psg_modalities : modalities; + psg_items : signature_item list; + psg_loc : Location.t; + } and signature_item = { @@ -1006,6 +1058,8 @@ and signature_item_desc = (** [class type ct1 = ... and ... and ctn = ...] *) | Psig_attribute of attribute (** [[\@\@\@id]] *) | Psig_extension of extension * attributes (** [[%%id]] *) + | Psig_kind_abbrev of string loc * jkind_annotation + (** [kind_abbrev_ name = k] *) and module_declaration = { @@ -1114,6 +1168,17 @@ and module_expr_desc = | Pmod_constraint of module_expr * module_type (** [(ME : MT)] *) | Pmod_unpack of expression (** [(val E)] *) | Pmod_extension of extension (** [[%id]] *) + | Pmod_instance of module_instance + (** [Foo(Param1)(Arg1(Param2)(Arg2)) [@jane.non_erasable.instances]] + + The name of an instance module. Gets converted to [Global.Name.t] in + the flambda-backend compiler. *) + +and module_instance = + { pmod_instance_head : string; + pmod_instance_args : (string * module_instance) list + } + (** [M(P1)(MI1)...(Pn)(MIn)] *) and structure = structure_item list @@ -1153,6 +1218,8 @@ and structure_item_desc = | Pstr_include of include_declaration (** [include ME] *) | Pstr_attribute of attribute (** [[\@\@\@id]] *) | Pstr_extension of extension * attributes (** [[%%id]] *) + | Pstr_kind_abbrev of string loc * jkind_annotation + (** [kind_abbrev_ name = k] *) and value_constraint = | Pvc_constraint of { @@ -1189,16 +1256,19 @@ and module_binding = } (** Values of type [module_binding] represents [module X = ME] *) -and jkind_const_annotation = string Location.loc - -and jkind_annotation = +and jkind_annotation_desc = | Default - | Abbreviation of jkind_const_annotation + | Abbreviation of string | Mod of jkind_annotation * modes | With of jkind_annotation * core_type | Kind_of of core_type | Product of jkind_annotation list +and jkind_annotation = + { pjkind_loc : Location.t + ; pjkind_desc : jkind_annotation_desc + } + (** {1 Toplevel} *) (** {2 Toplevel phrases} *) diff --git a/upstream/ocaml_flambda/parsing/pprintast.ml b/upstream/ocaml_flambda/parsing/pprintast.ml index 2914027d0..c751df88e 100644 --- a/upstream/ocaml_flambda/parsing/pprintast.ml +++ b/upstream/ocaml_flambda/parsing/pprintast.ml @@ -116,7 +116,7 @@ let protect_longident ppf print_longident longprefix txt = fprintf ppf "%a.(%s)" print_longident longprefix txt let is_curry_attr attr = - attr.attr_name.txt = Jane_syntax.Arrow_curry.curry_attr_name + attr.attr_name.txt = Builtin_attributes.curry_attr_name let filter_curry_attrs attrs = List.filter (fun attr -> not (is_curry_attr attr)) attrs @@ -257,6 +257,13 @@ let constant f = function paren (first_is '-' i) (fun f -> pp f "%s") f i | Pconst_float (i, Some m) -> paren (first_is '-' i) (fun f (i,m) -> pp f "%s%c" i m) f (i,m) + | Pconst_unboxed_float (x, None) -> + paren (first_is '-' x) (fun f -> pp f "%s") f + (Misc.format_as_unboxed_literal x) + | Pconst_unboxed_float (x, Some suffix) + | Pconst_unboxed_integer (x, suffix) -> + paren (first_is '-' x) (fun f (x, suffix) -> pp f "%s%c" x suffix) f + (Misc.format_as_unboxed_literal x, suffix) (* trailing space*) let mutable_flag f = function @@ -303,7 +310,6 @@ let tyvar ppf s = let string_loc ppf x = fprintf ppf "%s" x.txt -let tyvar_loc f str = tyvar f str.txt let string_quot f x = pp f "`%a" ident_of_name x (* legacy modes and modalities *) @@ -373,10 +379,19 @@ let modality f m = let modalities f m = pp_print_list ~pp_sep:(fun f () -> pp f " ") modality f m -let optional_atat_modalities f m = +let optional_atat_modalities ?(pre = fun _ () -> ()) ?(post = fun _ () -> ()) f m = match m with | [] -> () - | m -> pp f " %@%@ %a" modalities m + | m -> + pre f (); + pp f "%@%@ %a" modalities m; + post f () + +let optional_space_atat_modalities f m = + optional_atat_modalities ~pre:pp_print_space f m + +let optional_atat_modalities_newline f m = + optional_atat_modalities ~post:pp_print_newline f m (* helpers for printing both legacy/new mode syntax *) let split_out_legacy_modes = @@ -404,7 +419,7 @@ let modalities_type pty ctxt f pca = pp f "%a%a%a" optional_legacy_modalities legacy (pty ctxt) pca.pca_type - optional_atat_modalities m + optional_space_atat_modalities m let include_kind f = function | Functor -> pp f "@ functor" @@ -429,46 +444,54 @@ and type_with_label ctxt f (label, c, mode) = pp f "?%a:%a" ident_of_name s (maybe_legacy_modes_type_at_modes core_type1 ctxt) (c, mode) -and jkind ?(nested = false) ctxt f k = match (k : Jane_syntax.Jkind.t) with +and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with | Default -> pp f "_" - | Abbreviation s -> - pp f "%s" s.txt + | Abbreviation s -> pp f "%s" s | Mod (t, modes) -> begin match modes with | [] -> Misc.fatal_error "malformed jkind annotation" | _ :: _ -> Misc.pp_parens_if nested (fun f (t, modes) -> pp f "%a mod %a" - (jkind ~nested:true ctxt) t + (jkind_annotation ~nested:true ctxt) t (pp_print_list ~pp_sep:pp_print_space mode) modes ) f (t, modes) end | With (t, ty) -> Misc.pp_parens_if nested (fun f (t, ty) -> - pp f "%a with %a" (jkind ~nested:true ctxt) t (core_type ctxt) ty + pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) + ty ) f (t, ty) | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> Misc.pp_parens_if nested (fun f ts -> - pp f "%a" (list (jkind ~nested:true ctxt) ~sep:"@;&@;") ts + pp f "%a" (list (jkind_annotation ~nested:true ctxt) ~sep:"@;&@;") ts ) f ts -and jkind_annotation ctxt f annot = jkind ctxt f annot.txt +and tyvar_jkind f (str, jkind) = + match jkind with + | None -> tyvar f str + | Some lay -> pp f "(%a : %a)" tyvar str (jkind_annotation reset_ctxt) lay + +and tyvar_loc_jkind f (str, jkind) = tyvar_jkind f (str.txt,jkind) -and tyvar_jkind_loc ctxt ~print_quote f (str,jkind) = - let pptv = - if print_quote - then tyvar - else fun ppf s -> pp ppf "%s" s - in +and tyvar_loc_option_jkind f (str, jkind) = + match jkind with + | None -> tyvar_loc_option f str + | Some jkind -> + pp f "(%a : %a)" + tyvar_loc_option str + (jkind_annotation reset_ctxt) jkind + +and name_jkind f (name, jkind) = match jkind with - | None -> pptv f str.txt - | Some lay -> pp f "(%a : %a)" pptv str.txt (jkind_annotation ctxt) lay + | None -> ident_of_name f name + | Some jkind -> + pp f "(%a : %a)" + ident_of_name name + (jkind_annotation reset_ctxt) jkind and core_type ctxt f x = - match Jane_syntax.Core_type.of_ast x with - | Some (jtyp, attrs) -> core_type_jane_syntax ctxt attrs f jtyp - | None -> let filtered_attrs = filter_curry_attrs x.ptyp_attributes in if filtered_attrs <> [] then begin pp f "((%a)%a)" (core_type ctxt) {x with ptyp_attributes=[]} @@ -478,8 +501,9 @@ and core_type ctxt f x = | Ptyp_arrow (l, ct1, ct2, m1, m2) -> pp f "@[<2>%a@;->@;%a@]" (* FIXME remove parens later *) (type_with_label ctxt) (l,ct1,m1) (return_type ctxt) (ct2,m2) - | Ptyp_alias (ct, s) -> - pp f "@[<2>%a@;as@;%a@]" (core_type1 ctxt) ct tyvar s.txt + | Ptyp_alias (ct, s, j) -> + pp f "@[<2>%a@;as@;%a@]" (core_type1 ctxt) ct + tyvar_loc_option_jkind (s, j) | Ptyp_poly ([], ct) -> core_type ctxt f ct | Ptyp_poly (sl, ct) -> @@ -488,19 +512,18 @@ and core_type ctxt f x = | [] -> () | _ -> pp f "%a@;.@;" - (list tyvar_loc ~sep:"@;") l) + (list + tyvar_loc_jkind ~sep:"@;") + l) sl (core_type ctxt) ct | _ -> pp f "@[<2>%a@]" (core_type1 ctxt) x and core_type1 ctxt f x = - match Jane_syntax.Core_type.of_ast x with - | Some (jtyp, attrs) -> core_type1_jane_syntax ctxt attrs f jtyp - | None -> if has_non_curry_attr x.ptyp_attributes then core_type ctxt f x else match x.ptyp_desc with - | Ptyp_any -> pp f "_"; - | Ptyp_var s -> tyvar f s; + | Ptyp_any jkind -> tyvar_loc_option_jkind f (None, jkind) + | Ptyp_var (s, jkind) -> tyvar_jkind f (s, jkind) | Ptyp_tuple tl -> pp f "(%a)" (list (labeled_core_type1 ctxt) ~sep:"@;*@;") tl | Ptyp_unboxed_tuple l -> @@ -580,46 +603,12 @@ and core_type1 ctxt f x = | (Ptyp_arrow _ | Ptyp_alias _ | Ptyp_poly _) -> paren true (core_type ctxt) f x -and core_type_jane_syntax ctxt attrs f (x : Jane_syntax.Core_type.t) = - let filtered_attrs = filter_curry_attrs attrs in - if filtered_attrs <> [] then begin - pp f "((%a)%a)" (core_type_jane_syntax ctxt []) x - (attributes ctxt) filtered_attrs - end - else match x with - | Jtyp_layout (Ltyp_alias { aliased_type; name; jkind }) -> - pp f "@[<2>%a@;as@;(%a :@ %a)@]" - (core_type1 ctxt) aliased_type - tyvar_option (Option.map Location.get_txt name) - (jkind_annotation ctxt) jkind - | Jtyp_layout (Ltyp_poly {bound_vars = []; inner_type}) -> - core_type ctxt f inner_type - | Jtyp_layout (Ltyp_poly {bound_vars; inner_type}) -> - let jkind_poly_var f (name, jkind_opt) = - match jkind_opt with - | Some jkind -> pp f "(%a@;:@;%a)" tyvar_loc name (jkind_annotation ctxt) jkind - | None -> tyvar_loc f name - in - pp f "@[<2>%a@;.@;%a@]" - (list jkind_poly_var ~sep:"@;") bound_vars - (core_type ctxt) inner_type - | Jtyp_layout (Ltyp_var _) -> - pp f "@[<2>%a@]" (core_type1_jane_syntax ctxt attrs) x - - -and core_type1_jane_syntax ctxt attrs f (x : Jane_syntax.Core_type.t) = - if has_non_curry_attr attrs then core_type_jane_syntax ctxt attrs f x - else - match x with - | Jtyp_layout (Ltyp_var { name; jkind }) -> - pp f "(%a@;:@;%a)" tyvar_option name (jkind_annotation ctxt) jkind - | Jtyp_layout (Ltyp_alias _ | Ltyp_poly _) -> - paren true (core_type_jane_syntax ctxt attrs) f x - and tyvar_option f = function | None -> pp f "_" | Some name -> tyvar f name +and tyvar_loc_option f str = tyvar_option f (Option.map Location.get_txt str) + and core_type1_labeled_tuple ctxt f ~unboxed tl = pp f "%s(%a)" (if unboxed then "#" else "") (list (labeled_core_type1 ctxt) ~sep:"@;*@;") tl @@ -638,9 +627,6 @@ and return_type ctxt f (x, m) = (********************pattern********************) (* be cautious when use [pattern], [pattern1] is preferred *) and pattern ctxt f x = - match Jane_syntax.Pattern.of_ast x with - | Some (jpat, attrs) -> pattern_jane_syntax ctxt attrs f jpat - | None -> if x.ppat_attributes <> [] then begin pp f "((%a)%a)" (pattern ctxt) {x with ppat_attributes=[]} (attributes ctxt) x.ppat_attributes @@ -669,8 +655,8 @@ and pattern1 ctxt (f:Format.formatter) (x:pattern) : unit = ({ txt = Lident("::") ;_}, Some ([], inner_pat)); ppat_attributes = []} -> - begin match Jane_syntax.Pattern.of_ast inner_pat, inner_pat.ppat_desc with - | None, Ppat_tuple([None, pat1; None, pat2], Closed) -> + begin match inner_pat.ppat_desc with + | Ppat_tuple([None, pat1; None, pat2], Closed) -> pp f "%a::%a" (simple_pattern ctxt) pat1 pattern_list_helper pat2 (*RA*) | _ -> pattern1 ctxt f p end @@ -713,16 +699,21 @@ and labeled_pattern1 ctxt (f:Format.formatter) (label, x) : unit = and simple_pattern ctxt (f:Format.formatter) (x:pattern) : unit = if x.ppat_attributes <> [] then pattern ctxt f x - else match Jane_syntax.Pattern.of_ast x with - | Some (jpat, attrs) -> pattern_jane_syntax ctxt attrs f jpat - | None -> - match x.ppat_desc with + else match x.ppat_desc with | Ppat_construct (({txt=Lident ("()"|"[]"|"true"|"false" as x);_}), None) -> pp f "%s" x | Ppat_any -> pp f "_"; | Ppat_var ({txt = txt;_}) -> ident_of_name f txt - | Ppat_array l -> - pp f "@[<2>[|%a|]@]" (list (pattern1 ctxt) ~sep:";") l + | Ppat_array (mut, l) -> + let punct = + match mut with + | Mutable -> '|' + | Immutable -> ':' + in + pp f "@[<2>[%c%a%c]@]" + punct + (list (pattern1 ctxt) ~sep:";") l + punct | Ppat_unpack { txt = None } -> pp f "(module@ _)@ " | Ppat_unpack { txt = Some s } -> @@ -781,12 +772,7 @@ and simple_pattern ctxt (f:Format.formatter) (x:pattern) : unit = | Ppat_extension e -> extension ctxt f e | Ppat_open (lid, p) -> let with_paren = - match Jane_syntax.Pattern.of_ast p with - | Some (jpat, _attrs) -> begin match jpat with - | Jpat_immutable_array (Iapat_immutable_array _) -> false - | Jpat_layout (Lpat_constant _) -> false - end - | None -> match p.ppat_desc with + match p.ppat_desc with | Ppat_array _ | Ppat_record _ | Ppat_construct (({txt=Lident ("()"|"[]"|"true"|"false");_}), None) -> false @@ -795,16 +781,6 @@ and simple_pattern ctxt (f:Format.formatter) (x:pattern) : unit = (paren with_paren @@ pattern1 ctxt) p | _ -> paren true (pattern ctxt) f x -and pattern_jane_syntax ctxt attrs f (pat : Jane_syntax.Pattern.t) = - if attrs <> [] then - pp f "((%a)%a)" (pattern_jane_syntax ctxt []) pat - (attributes ctxt) attrs - else - match pat with - | Jpat_immutable_array (Iapat_immutable_array l) -> - pp f "@[<2>[:%a:]@]" (list (pattern1 ctxt) ~sep:";") l - | Jpat_layout (Lpat_constant c) -> unboxed_constant ctxt f c - and labeled_tuple_pattern ctxt f ~unboxed l closed = let closed_flag ppf = function | Closed -> () @@ -897,7 +873,7 @@ and sugar_expr ctxt f e = | Ldot (Lident "Bigarray", "Array3"), i1 :: i2 :: i3 :: rest -> print ".{" "," "}" (simple_expr ctxt) [i1; i2; i3] rest | Ldot (Lident "Bigarray", "Genarray"), - {pexp_desc = Pexp_array indexes; pexp_attributes = []} :: rest -> + {pexp_desc = Pexp_array (_, indexes); pexp_attributes = []} :: rest -> print ".{" "," "}" (simple_expr ctxt) indexes rest | _ -> false end @@ -910,7 +886,7 @@ and sugar_expr ctxt f e = let multi_indices = String.contains s ';' in let i = match i.pexp_desc with - | Pexp_array l when multi_indices -> l + | Pexp_array (_, l) when multi_indices -> l | _ -> [ i ] in let assign = last_is '-' s in let kind = @@ -933,17 +909,7 @@ and sugar_expr ctxt f e = end | _ -> false -(* Postcondition: If [x] has any non-Jane Syntax attributes, the output will - be self-delimiting. (I.e., it will be wrapped in parens.) - - Passing [jane_syntax_parens=true] will insert parens around Jane Syntax - expressions that aren't already self-delimiting. -*) -and expression ?(jane_syntax_parens = false) ctxt f x = - match Jane_syntax.Expression.of_ast x with - | Some (jexpr, attrs) -> - jane_syntax_expr ctxt attrs f jexpr ~parens:jane_syntax_parens - | None -> +and expression ctxt f x = if x.pexp_attributes <> [] then pp f "((%a)@,%a)" (expression ctxt) {x with pexp_attributes=[]} (attributes ctxt) x.pexp_attributes @@ -958,8 +924,9 @@ and expression ?(jane_syntax_parens = false) ctxt f x = | Pexp_letexception _ | Pexp_letop _ when ctxt.semi -> paren true (expression reset_ctxt) f x - | Pexp_newtype (lid, e) -> - pp f "@[<2>fun@;(type@;%a)@;%a@]" ident_of_name lid.txt + | Pexp_newtype (lid, jkind, e) -> + pp f "@[<2>fun@;(type@;%a)@;%a@]" + name_jkind (lid.txt, jkind) (pp_print_pexp_newtype ctxt "->") e | Pexp_function (params, constraint_, body) -> begin match params, constraint_ with @@ -1120,14 +1087,14 @@ and expression ?(jane_syntax_parens = false) ctxt f x = | _ -> expression1 ctxt f x and expression1 ctxt f x = - if x.pexp_attributes <> [] then expression ctxt f x ~jane_syntax_parens:true + if x.pexp_attributes <> [] then expression ctxt f x else match x.pexp_desc with | Pexp_object cs -> pp f "%a" (class_structure ctxt) cs | _ -> expression2 ctxt f x (* used in [Pexp_apply] *) and expression2 ctxt f x = - if x.pexp_attributes <> [] then expression ctxt f x ~jane_syntax_parens:true + if x.pexp_attributes <> [] then expression ctxt f x else match x.pexp_desc with | Pexp_field (e, li) -> pp f "@[%a.%a@]" (simple_expr ctxt) e longident_loc li @@ -1137,7 +1104,7 @@ and expression2 ctxt f x = | _ -> simple_expr ctxt f x and simple_expr ctxt f x = - if x.pexp_attributes <> [] then expression ctxt f x ~jane_syntax_parens:true + if x.pexp_attributes <> [] then expression ctxt f x else match x.pexp_desc with | Pexp_construct _ when is_simple_construct (view_expr x) -> (match view_expr x with @@ -1190,9 +1157,16 @@ and simple_expr ctxt f x = pp f "@[@[{@;%a%a@]@;}@]"(* "@[{%a%a}@]" *) (option ~last:" with@;" (simple_expr ctxt)) eo (list longident_x_expression ~sep:";@;") l - | Pexp_array (l) -> - pp f "@[<0>@[<2>[|%a|]@]@]" + | Pexp_array (mut, l) -> + let punct = match mut with + | Immutable -> ':' + | Mutable -> '|' + in + pp f "@[<0>@[<2>[%c%a%c]@]@]" + punct (list (simple_expr (under_semi ctxt)) ~sep:";") l + punct + | Pexp_comprehension comp -> comprehension_expr ctxt f comp | Pexp_while (e1, e2) -> let fmt : (_,_,_) format = "@[<2>while@;%a@;do@;%a@;done@]" in pp f fmt (expression ctxt) e1 (expression ctxt) e2 @@ -1223,7 +1197,7 @@ and value_description ctxt f x = (* note: value_description has an attribute field, but they're already printed by the callers this method *) pp f "@[%a%a%a@]" (core_type ctxt) x.pval_type - optional_atat_modalities x.pval_modalities + optional_space_atat_modalities x.pval_modalities (fun f x -> if x.pval_prim <> [] then pp f "@ =@ %a" (list constant_string) x.pval_prim @@ -1267,7 +1241,7 @@ and class_type_field ctxt f x = and class_signature ctxt f { pcsig_self = ct; pcsig_fields = l ;_} = pp f "@[@[object@[<1>%a@]@ %a@]@ end@]" (fun f -> function - {ptyp_desc=Ptyp_any; ptyp_attributes=[]; _} -> () + {ptyp_desc=Ptyp_any None; ptyp_attributes=[]; _} -> () | ct -> pp f " (%a)" (core_type ctxt) ct) ct (list (class_type_field ctxt) ~sep:"@;") l @@ -1437,7 +1411,7 @@ and include_ : 'a. ctxt -> formatter -> and sig_include ctxt f incl moda = include_ ctxt f ~contents:module_type incl; - optional_atat_modalities f moda + optional_space_atat_modalities f moda and kind_abbrev ctxt f name jkind = pp f "@[kind_abbrev_@ %a@ =@ %a@]" @@ -1445,9 +1419,6 @@ and kind_abbrev ctxt f name jkind = (jkind_annotation ctxt) jkind and module_type ctxt f x = - match Jane_syntax.Module_type.of_ast x with - | Some (jmty, attrs) -> module_type_jane_syntax ctxt attrs f jmty - | None -> if x.pmty_attributes <> [] then begin pp f "((%a)%a)" (module_type ctxt) {x with pmty_attributes=[]} (attributes ctxt) x.pmty_attributes @@ -1469,20 +1440,12 @@ and module_type ctxt f x = pp f "@[%a@ with@ %a@]" (module_type1 ctxt) mt (list (with_constraint ctxt) ~sep:"@ and@ ") l - | _ -> module_type1 ctxt f x - -and module_type_jane_syntax ctxt attrs f (mty : Jane_syntax.Module_type.t) = - if attrs <> [] then - pp f "((%a)%a)" - (module_type_jane_syntax ctxt []) mty - (attributes ctxt) attrs - else - match mty with - | Jmty_strengthen { mty; mod_id } -> + | Pmty_strengthen (mty, mod_id) -> pp f "@[%a@ with@ %a@]" (module_type1 ctxt) mty longident_loc mod_id + | _ -> module_type1 ctxt f x and with_constraint ctxt f = function | Pwith_type (li, ({ptype_params= ls ;_} as td)) -> pp f "type@ %a %a =@ %a" @@ -1504,43 +1467,29 @@ and with_constraint ctxt f = function and module_type1 ctxt f x = - match Jane_syntax.Module_type.of_ast x with - | Some (jmty, attrs) -> module_type_jane_syntax1 ctxt attrs f jmty - | None -> if x.pmty_attributes <> [] then module_type ctxt f x else match x.pmty_desc with | Pmty_ident li -> pp f "%a" longident_loc li; | Pmty_alias li -> pp f "(module %a)" longident_loc li; - | Pmty_signature (s) -> - pp f "@[@[sig@ %a@]@ end@]" (* "@[sig@ %a@ end@]" *) - (list (signature_item ctxt)) s (* FIXME wrong indentation*) + | Pmty_signature {psg_items; psg_modalities} -> + pp f "@[@[sig%a@ %a@]@ end@]" (* "@[sig@ %a@ end@]" *) + optional_space_atat_modalities psg_modalities + (list (signature_item ctxt)) psg_items (* FIXME wrong indentation*) | Pmty_typeof me -> pp f "@[module@ type@ of@ %a@]" (module_expr ctxt) me | Pmty_extension e -> extension ctxt f e | _ -> paren true (module_type ctxt) f x -and module_type_jane_syntax1 ctxt attrs f : Jane_syntax.Module_type.t -> _ = - function - | Jmty_strengthen _ as jmty -> - paren true (module_type_jane_syntax ctxt attrs) f jmty +and signature ctxt f {psg_items; psg_modalities} = + optional_atat_modalities_newline f psg_modalities; + signature_items ctxt f psg_items -and signature ctxt f x = list ~sep:"@\n" (signature_item ctxt) f x - -and sig_layout ctxt f - : Jane_syntax.Layouts.signature_item -> _ = function - | Lsig_kind_abbrev (name, jkind) -> - kind_abbrev ctxt f name jkind - -and signature_item_jane_syntax ctxt f : Jane_syntax.Signature_item.t -> _ = - function - | Jsig_layout sigi -> sig_layout ctxt f sigi +and signature_items ctxt f items = + list ~sep:"@\n" (signature_item ctxt) f items and signature_item ctxt f x : unit = - match Jane_syntax.Signature_item.of_ast x with - | Some jsigi -> signature_item_jane_syntax ctxt f jsigi - | None -> match x.psig_desc with | Psig_type (rf, l) -> type_def_list ctxt f (rf, true, l) @@ -1638,14 +1587,14 @@ and signature_item ctxt f x : unit = | Psig_extension(e, a) -> item_extension ctxt f e; item_attributes ctxt f a + | Psig_kind_abbrev (name, jkind) -> + kind_abbrev ctxt f name jkind and module_expr ctxt f x = if x.pmod_attributes <> [] then pp f "((%a)%a)" (module_expr ctxt) {x with pmod_attributes=[]} (attributes ctxt) x.pmod_attributes - else match Jane_syntax.Module_expr.of_ast x with - | Some ext -> extension_module_expr ctxt f ext - | None -> match x.pmod_desc with + else match x.pmod_desc with | Pmod_structure (s) -> pp f "@[struct@;@[<0>%a@]@;<1 -2>end@]" (list (structure_item ctxt) ~sep:"@\n") s; @@ -1669,6 +1618,8 @@ and module_expr ctxt f x = | Pmod_unpack e -> pp f "(val@ %a)" (expression ctxt) e | Pmod_extension e -> extension ctxt f e + | Pmod_instance i -> + pp f "(%a [@jane.non_erasable.instances])"(instance ctxt) i and structure ctxt f x = list ~sep:"@\n" (structure_item ctxt) f x @@ -1686,24 +1637,16 @@ and payload ctxt f = function pp f " when "; expression ctxt f e and pp_print_pexp_newtype ctxt sep f x = - (* We go to some trouble to print nested [Lexp_newtype] as + (* We go to some trouble to print nested [Pexp_newtype] as newtype parameters of the same "fun" (rather than printing several nested "fun (type a) -> ..."). This isn't necessary for round-tripping -- it just makes the pretty-printing a bit prettier. *) - match Jane_syntax.Expression.of_ast x with - | Some (Jexp_layout (Lexp_newtype (str, lay, e)), []) -> - pp f "@[(type@ %a :@ %a)@]@ %a" - ident_of_name str.txt - (jkind_annotation ctxt) lay - (pp_print_pexp_newtype ctxt sep) e - | Some (jst, attrs) -> - pp f "%s@;%a" sep (jane_syntax_expr ctxt attrs ~parens:false) jst - | None -> if x.pexp_attributes <> [] then pp f "%s@;%a" sep (expression ctxt) x else match x.pexp_desc with - | Pexp_newtype (str,e) -> - pp f "(type@ %a)@ %a" ident_of_name str.txt (pp_print_pexp_newtype ctxt sep) e + | Pexp_newtype (str, jkind, e) -> + pp f "(type@ %a)@ %a" name_jkind (str.txt, jkind) + (pp_print_pexp_newtype ctxt sep) e | _ -> pp f "%s@;%a" sep (expression ctxt) x @@ -1750,10 +1693,11 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode | None -> (* CR layouts 1.5: We just need to check for [is_desugared_gadt] because the parser hasn't been upgraded to parse [let x : type a. ... = ...] as - [Pvb_constraint] as it has been upstream. Once we encode that with Jane - Syntax appropriately, we can delete this code. + [Pvb_constraint] as it has been upstream. Once we move to the 5.2 + parsetree encoding of type annotations. *) let tyvars_str tyvars = List.map (fun v -> v.txt) tyvars in + let tyvars_jkind_str tyvars = List.map (fun (v, _jkind) -> v.txt) tyvars in let is_desugared_gadt p e = let gadt_pattern = match p with @@ -1766,7 +1710,7 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode match e with (* no need to handle jkind annotations here; the extracted variables don't get printed -- they're just used to decide how to print *) - | {pexp_desc=Pexp_newtype (tyvar, e); pexp_attributes=[]} -> + | {pexp_desc=Pexp_newtype (tyvar, _jkind, e); pexp_attributes=[]} -> gadt_exp (tyvar :: tyvars) e | {pexp_desc=Pexp_constraint (e, Some ct, _); pexp_attributes=[]} -> Some (List.rev tyvars, e, ct) @@ -1774,7 +1718,7 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode let gadt_exp = gadt_exp [] e in match gadt_pattern, gadt_exp with | Some (p, pt_tyvars, pt_ct), Some (e_tyvars, e, e_ct) - when tyvars_str pt_tyvars = tyvars_str e_tyvars -> + when tyvars_jkind_str pt_tyvars = tyvars_str e_tyvars -> let ety = Ast_helper.Typ.varify_constructors e_tyvars e_ct in if ety = pt_ct then Some (p, pt_tyvars, e_ct, e) else None @@ -1785,7 +1729,7 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode pp f "%a@;: type@;%a.@;%a%a@;=@;%a" (simple_pattern ctxt) p (list pp_print_string ~sep:"@;") - (tyvars_str tyvars) + (tyvars_jkind_str tyvars) (core_type ctxt) ct optional_atat_modes modes (expression ctxt) e @@ -1839,19 +1783,7 @@ and binding_op ctxt f x = pp f "@[<2>%s %a@;=@;%a@]" x.pbop_op.txt (pattern ctxt) pat (expression ctxt) exp -and str_layout ctxt f - : Jane_syntax.Layouts.structure_item -> _ = function - | Lstr_kind_abbrev (name, jkind) -> - kind_abbrev ctxt f name jkind - -and structure_item_jane_syntax ctxt f : Jane_syntax.Structure_item.t -> _ = - function - | Jstr_layout stri -> str_layout ctxt f stri - and structure_item ctxt f x = - match Jane_syntax.Structure_item.of_ast x with - | Some jstri -> structure_item_jane_syntax ctxt f jstri - | None -> match x.pstr_desc with | Pstr_eval (e, attrs) -> pp f "@[;;%a@]%a" @@ -1986,6 +1918,8 @@ and structure_item ctxt f x = | Pstr_extension(e, a) -> item_extension ctxt f e; item_attributes ctxt f a + | Pstr_kind_abbrev (name, jkind) -> + kind_abbrev ctxt f name jkind and type_param ctxt f (ct, (a,b)) = pp f "%s%s%a" (type_variance a) (type_injectivity b) (core_type ctxt) ct @@ -2002,13 +1936,11 @@ and type_def_list ctxt f (rf, exported, l) = else if exported then " =" else " :=" in - let layout_annot, x = - match Jane_syntax.Layouts.of_type_declaration x with - | None -> Format.dprintf "", x - | Some (jkind, remaining_attributes) -> - Format.dprintf " : %a" - (jkind_annotation ctxt) jkind, - { x with ptype_attributes = remaining_attributes } + let layout_annot = + match x.ptype_jkind_annotation with + | None -> Format.dprintf "" + | Some jkind -> + Format.dprintf " : %a" (jkind_annotation ctxt) jkind in pp f "@[<2>%s %a%a%a%t%s%a@]%a" kwd nonrec_flag rf @@ -2033,7 +1965,7 @@ and record_declaration ctxt f lbls = optional_legacy_modalities legacy ident_of_name pld.pld_name.txt (core_type ctxt) pld.pld_type - optional_atat_modalities m + optional_space_atat_modalities m (attributes ctxt) pld.pld_attributes in pp f "{@\n%a}" @@ -2058,13 +1990,9 @@ and type_declaration ctxt f x = in let constructor_declaration f pcd = pp f "|@;"; - let vars_jkinds, attrs = - match Jane_syntax.Layouts.of_constructor_declaration pcd with - | None -> List.map (fun v -> v, None) pcd.pcd_vars, pcd.pcd_attributes - | Some stuff -> stuff - in constructor_declaration ctxt f - (pcd.pcd_name.txt, vars_jkinds, pcd.pcd_args, pcd.pcd_res, attrs) + (pcd.pcd_name.txt, pcd.pcd_vars, pcd.pcd_args, pcd.pcd_res, + pcd.pcd_attributes) in let repr f = let intro f = @@ -2115,7 +2043,7 @@ and constructor_declaration ctxt f (name, vars_jkinds, args, res, attrs) = let pp_vars f vls = match vls with | [] -> () - | _ -> pp f "%a@;.@;" (list (tyvar_jkind_loc ctxt ~print_quote:true) ~sep:"@;") + | _ -> pp f "%a@;.@;" (list tyvar_loc_jkind ~sep:"@;") vls in match res with @@ -2144,24 +2072,15 @@ and constructor_declaration ctxt f (name, vars_jkinds, args, res, attrs) = and extension_constructor ctxt f x = (* Cf: #7200 *) - match Jane_syntax.Extension_constructor.of_ast x with - | Some (jext, attrs) -> - extension_constructor_jst ctxt f x.pext_name attrs jext - | None -> match x.pext_kind with | Pext_decl(v, l, r) -> constructor_declaration ctxt f - (x.pext_name.txt, List.map (fun v -> v, None) v, l, r, x.pext_attributes) + (x.pext_name.txt, v, l, r, x.pext_attributes) | Pext_rebind li -> pp f "%s@;=@;%a%a" x.pext_name.txt longident_loc li (attributes ctxt) x.pext_attributes -and extension_constructor_jst ctxt f name attrs : - Jane_syntax.Extension_constructor.t -> _ = function - | Jext_layout (Lext_decl(vl, l, r)) -> - constructor_declaration ctxt f (name.txt, vl, l, r, attrs) - and case_list ctxt f l : unit = let aux f {pc_lhs; pc_guard; pc_rhs} = pp f "@;| @[<2>%a%a@;->@;%a@]" @@ -2209,24 +2128,11 @@ and directive_argument f x = | Pdir_ident (li) -> pp f "@ %a" longident li | Pdir_bool (b) -> pp f "@ %s" (string_of_bool b) -(* [parens] is whether parens should be inserted around constructs that aren't - already self-delimiting. E.g. immutable arrays are self-delimiting because - they begin and end in a bracket. -*) -and jane_syntax_expr ctxt attrs f (jexp : Jane_syntax.Expression.t) ~parens = - if attrs <> [] then - pp f "((%a)@,%a)" (jane_syntax_expr ctxt [] ~parens:false) jexp - (attributes ctxt) attrs - else match jexp with - | Jexp_comprehension x -> comprehension_expr ctxt f x - | Jexp_immutable_array x -> immutable_array_expr ctxt f x - | Jexp_layout x -> layout_expr ctxt f x ~parens - -and comprehension_expr ctxt f (cexp : Jane_syntax.Comprehensions.expression) = +and comprehension_expr ctxt f cexp = let punct, comp = match cexp with - | Cexp_list_comprehension comp -> + | Pcomp_list_comprehension comp -> "", comp - | Cexp_array_comprehension (amut, comp) -> + | Pcomp_array_comprehension (amut, comp) -> let punct = match amut with | Mutable -> "|" | Immutable -> ":" @@ -2236,66 +2142,39 @@ and comprehension_expr ctxt f (cexp : Jane_syntax.Comprehensions.expression) = comprehension ctxt f ~open_:("[" ^ punct) ~close:(punct ^ "]") comp and comprehension ctxt f ~open_ ~close cexp = - let Jane_syntax.Comprehensions.{ body; clauses } = cexp in + let { pcomp_body = body; pcomp_clauses = clauses } = cexp in pp f "@[@[%s%a@ @[%a@]%s@]@]" open_ (expression ctxt) body (list ~sep:"@ " (comprehension_clause ctxt)) clauses close -and comprehension_clause ctxt f (x : Jane_syntax.Comprehensions.clause) = +and comprehension_clause ctxt f x = match x with - | For bindings -> + | Pcomp_for bindings -> pp f "@[for %a@]" (list ~sep:"@]@ @[and " (comprehension_binding ctxt)) bindings - | When cond -> + | Pcomp_when cond -> pp f "@[when %a@]" (expression ctxt) cond and comprehension_binding ctxt f x = - let Jane_syntax.Comprehensions.{ pattern = pat; iterator; attributes = attrs } = x in + let { pcomp_cb_pattern = pat; + pcomp_cb_iterator = iterator; + pcomp_cb_attributes = attrs } = x in pp f "%a%a %a" (attributes ctxt) attrs (pattern ctxt) pat (comprehension_iterator ctxt) iterator -and comprehension_iterator ctxt f (x : Jane_syntax.Comprehensions.iterator) = +and comprehension_iterator ctxt f x = match x with - | Range { start; stop; direction } -> + | Pcomp_range { start; stop; direction } -> pp f "=@ %a %a%a" (expression ctxt) start direction_flag direction (expression ctxt) stop - | In seq -> + | Pcomp_in seq -> pp f "in %a" (expression ctxt) seq -and immutable_array_expr ctxt f (x : Jane_syntax.Immutable_arrays.expression) = - match x with - | Iaexp_immutable_array elts -> - pp f "@[<0>@[<2>[:%a:]@]@]" - (list (simple_expr (under_semi ctxt)) ~sep:";") elts - -(* [parens] is the same as the argument to [jane_syntax_expr]. *) -and layout_expr ctxt f (x : Jane_syntax.Layouts.expression) ~parens = - match x with - (* see similar case in [expression] *) - | Lexp_newtype _ when parens || ctxt.pipe || ctxt.semi -> - paren true (layout_expr reset_ctxt ~parens:false) f x - | Lexp_constant x -> unboxed_constant ctxt f x - | Lexp_newtype (lid, jkind, inner_expr) -> - pp f "@[<2>fun@;(type@;%a :@;%a)@;%a@]" - ident_of_name lid.txt - (jkind_annotation ctxt) jkind - (pp_print_pexp_newtype ctxt "->") inner_expr - -and unboxed_constant _ctxt f (x : Jane_syntax.Layouts.constant) - = - match x with - | Float (x, None) -> - paren (first_is '-' x) (fun f -> pp f "%s") f (Misc.format_as_unboxed_literal x) - | Float (x, Some suffix) - | Integer (x, suffix) -> - paren (first_is '-' x) (fun f (x, suffix) -> pp f "%s%c" x suffix) f - (Misc.format_as_unboxed_literal x, suffix) - and function_param ctxt f { pparam_desc; pparam_loc = _ } = match pparam_desc with | Pparam_val (a, b, c) -> label_exp ctxt f (a, b, c) @@ -2344,18 +2223,10 @@ and labeled_tuple_expr ctxt f ~unboxed x = pp f "@[%s(%a)@]" (if unboxed then "#" else "") (list (tuple_component ctxt) ~sep:",@;") x -and extension_module_expr ctxt f (x : Jane_syntax.Module_expr.t) = - match x with - | Emod_instance i -> instance_module_expr ctxt f i - -and instance_module_expr ctxt f (x : Jane_syntax.Instances.module_expr) = - match x with - | Imod_instance i -> instance ctxt f i - -and instance ctxt f (x : Jane_syntax.Instances.instance) = +and instance ctxt f x = match x with - | { head; args = [] } -> pp f "%s" head - | { head; args } -> + | { pmod_instance_head = head; pmod_instance_args = [] } -> pp f "%s" head + | { pmod_instance_head = head; pmod_instance_args = args } -> pp f "@[<2>%s %a@]" head (list (instance_arg ctxt)) args and instance_arg ctxt f (param, value) = @@ -2423,7 +2294,8 @@ let class_type = print_reset_with_maximal_extensions class_type let class_signature = print_reset_with_maximal_extensions class_signature let structure_item = print_reset_with_maximal_extensions structure_item let signature_item = print_reset_with_maximal_extensions signature_item +let signature_items = print_reset_with_maximal_extensions signature_items let binding = print_reset_with_maximal_extensions binding let payload = print_reset_with_maximal_extensions payload let type_declaration = print_reset_with_maximal_extensions type_declaration -let jkind = print_reset_with_maximal_extensions jkind +let jkind_annotation = print_reset_with_maximal_extensions jkind_annotation diff --git a/upstream/ocaml_flambda/parsing/pprintast.mli b/upstream/ocaml_flambda/parsing/pprintast.mli index bdfe97ba4..4fa25d197 100644 --- a/upstream/ocaml_flambda/parsing/pprintast.mli +++ b/upstream/ocaml_flambda/parsing/pprintast.mli @@ -47,6 +47,7 @@ val class_type: Format.formatter -> Parsetree.class_type -> unit val module_type: Format.formatter -> Parsetree.module_type -> unit val structure_item: Format.formatter -> Parsetree.structure_item -> unit val signature_item: Format.formatter -> Parsetree.signature_item -> unit +val signature_items: Format.formatter -> Parsetree.signature_item list -> unit val binding: Format.formatter -> Parsetree.value_binding -> unit val payload: Format.formatter -> Parsetree.payload -> unit @@ -63,5 +64,5 @@ val tyvar: Format.formatter -> string -> unit special treatment required for the single quote character in second position, or for keywords by escaping them with \#. No-op on "_". *) -val jkind : Format.formatter -> Jane_syntax.Jkind.t -> unit +val jkind_annotation : Format.formatter -> Parsetree.jkind_annotation -> unit val mode : Format.formatter -> Parsetree.mode Location.loc -> unit diff --git a/upstream/ocaml_flambda/parsing/printast.ml b/upstream/ocaml_flambda/parsing/printast.ml index d1c3a8b02..b066a65bc 100644 --- a/upstream/ocaml_flambda/parsing/printast.ml +++ b/upstream/ocaml_flambda/parsing/printast.ml @@ -60,12 +60,15 @@ let fmt_char_option f = function let fmt_constant f x = match x with | Pconst_integer (i,m) -> fprintf f "PConst_int (%s,%a)" i fmt_char_option m + | Pconst_unboxed_integer (i,m) -> fprintf f "PConst_unboxed_int (%s,%c)" i m | Pconst_char (c) -> fprintf f "PConst_char %02x" (Char.code c) | Pconst_string (s, strloc, None) -> fprintf f "PConst_string(%S,%a,None)" s fmt_location strloc | Pconst_string (s, strloc, Some delim) -> fprintf f "PConst_string (%S,%a,Some %S)" s fmt_location strloc delim | Pconst_float (s,m) -> fprintf f "PConst_float (%s,%a)" s fmt_char_option m + | Pconst_unboxed_float (s,m) -> + fprintf f "PConst_unboxed_float (%s,%a)" s fmt_char_option m let fmt_mutable_flag f x = match x with @@ -130,11 +133,6 @@ let arg_label i ppf = function | Optional s -> line i ppf "Optional \"%s\"\n" s | Labelled s -> line i ppf "Labelled \"%s\"\n" s -let typevars ppf vs = - List.iter (fun x -> fprintf ppf " '%s" x.txt) vs - (* Don't use Pprintast.tyvar, as that causes a dependency cycle with - Jane_syntax, which depends on this module for debugging. *) - let modality i ppf modality = line i ppf "modality %a\n" fmt_string_loc (Location.map (fun (Modality x) -> x) modality) @@ -162,8 +160,12 @@ let rec core_type i ppf x = attributes i ppf x.ptyp_attributes; let i = i+1 in match x.ptyp_desc with - | Ptyp_any -> line i ppf "Ptyp_any\n"; - | Ptyp_var (s) -> line i ppf "Ptyp_var %s\n" s; + | Ptyp_any jkind -> + line i ppf "Ptyp_any\n"; + jkind_annotation_opt (i+1) ppf jkind + | Ptyp_var (s, jkind) -> + line i ppf "Ptyp_var %s\n" s; + jkind_annotation_opt (i+1) ppf jkind | Ptyp_arrow (l, ct1, ct2, m1, m2) -> line i ppf "Ptyp_arrow\n"; arg_label i ppf l; @@ -200,11 +202,17 @@ let rec core_type i ppf x = | Ptyp_class (li, l) -> line i ppf "Ptyp_class %a\n" fmt_longident_loc li; list i core_type ppf l - | Ptyp_alias (ct, s) -> - line i ppf "Ptyp_alias \"%s\"\n" s.txt; + | Ptyp_alias (ct, s, jkind) -> + line i ppf "Ptyp_alias %a\n" + (fun ppf -> function + | None -> fprintf ppf "_" + | Some name -> fprintf ppf "\"%s\"" name.txt) + s; core_type i ppf ct; + jkind_annotation_opt i ppf jkind | Ptyp_poly (sl, ct) -> - line i ppf "Ptyp_poly%a\n" typevars sl; + line i ppf "Ptyp_poly\n"; + list i typevar ppf sl; core_type i ppf ct; | Ptyp_package (s, l) -> line i ppf "Ptyp_package %a\n" fmt_longident_loc s; @@ -216,6 +224,10 @@ let rec core_type i ppf x = line i ppf "Ptyp_extension \"%s\"\n" s.txt; payload i ppf arg +and typevar i ppf (s, jkind) = + line i ppf "var: %s\n" s.txt; + jkind_annotation_opt (i+1) ppf jkind + and package_with i ppf (s, t) = line i ppf "with type %a\n" fmt_longident_loc s; core_type i ppf t @@ -252,8 +264,8 @@ and pattern i ppf x = | Ppat_record (l, c) -> line i ppf "Ppat_record %a\n" fmt_closed_flag c; list i longident_x_pattern ppf l; - | Ppat_array (l) -> - line i ppf "Ppat_array\n"; + | Ppat_array (mut, l) -> + line i ppf "Ppat_array %a\n" fmt_mutable_flag mut; list i pattern ppf l; | Ppat_or (p1, p2) -> line i ppf "Ppat_or\n"; @@ -335,8 +347,8 @@ and expression i ppf x = expression i ppf e1; longident_loc i ppf li; expression i ppf e2; - | Pexp_array (l) -> - line i ppf "Pexp_array\n"; + | Pexp_array (mut, l) -> + line i ppf "Pexp_array %a\n" fmt_mutable_flag mut; list i expression ppf l; | Pexp_ifthenelse (e1, e2, eo) -> line i ppf "Pexp_ifthenelse\n"; @@ -398,8 +410,9 @@ and expression i ppf x = | Pexp_object s -> line i ppf "Pexp_object\n"; class_structure i ppf s - | Pexp_newtype (s, e) -> + | Pexp_newtype (s, jkind, e) -> line i ppf "Pexp_newtype \"%s\"\n" s.txt; + jkind_annotation_opt i ppf jkind; expression i ppf e | Pexp_pack me -> line i ppf "Pexp_pack\n"; @@ -421,12 +434,57 @@ and expression i ppf x = | Pexp_stack e -> line i ppf "Pexp_stack\n"; expression i ppf e + | Pexp_comprehension c -> + line i ppf "Pexp_comprehension\n"; + comprehension_expression i ppf c + +and comprehension_expression i ppf = function + | Pcomp_array_comprehension (m, c) -> + line i ppf "Pcomp_array_comprehension %a\n" fmt_mutable_flag m; + comprehension i ppf c + | Pcomp_list_comprehension c -> + line i ppf "Pcomp_list_comprehension\n"; + comprehension i ppf c + +and comprehension i ppf ({ pcomp_body; pcomp_clauses } : comprehension) = + list i comprehension_clause ppf pcomp_clauses; + expression i ppf pcomp_body + +and comprehension_clause i ppf = function + | Pcomp_for cbs -> + line i ppf "Pcomp_for\n"; + list i comprehension_clause_binding ppf cbs + | Pcomp_when exp -> + line i ppf "Pcomp_when\n"; + expression i ppf exp + +and comprehension_clause_binding i ppf + { pcomp_cb_pattern; pcomp_cb_iterator; pcomp_cb_attributes } + = + pattern i ppf pcomp_cb_pattern; + comprehension_iterator (i+1) ppf pcomp_cb_iterator; + attributes i ppf pcomp_cb_attributes + +and comprehension_iterator i ppf = function + | Pcomp_range { start; stop; direction } -> + line i ppf "Pcomp_range %a\n" fmt_direction_flag direction; + expression i ppf start; + expression i ppf stop; + | Pcomp_in exp -> + line i ppf "Pcomp_in\n"; + expression i ppf exp + +and jkind_annotation_opt i ppf jkind = + match jkind with + | None -> () + | Some jkind -> jkind_annotation (i+1) ppf jkind and jkind_annotation i ppf (jkind : jkind_annotation) = - match jkind with + line i ppf "jkind %a\n" fmt_location jkind.pjkind_loc; + match jkind.pjkind_desc with | Default -> line i ppf "Default\n" | Abbreviation jkind -> - line i ppf "Abbreviation \"%s\"\n" jkind.txt + line i ppf "Abbreviation \"%s\"\n" jkind | Mod (jkind, m) -> line i ppf "Mod\n"; jkind_annotation (i+1) ppf jkind; @@ -451,10 +509,7 @@ and function_param i ppf { pparam_desc = desc; pparam_loc = loc } = pattern (i+1) ppf p | Pparam_newtype (ty, jkind) -> line i ppf "Pparam_newtype \"%s\" %a\n" ty.txt fmt_location loc; - option (i+1) - (fun i ppf jkind -> jkind_annotation i ppf jkind.txt) - ppf - jkind + jkind_annotation_opt (i+1) ppf jkind and function_body i ppf body = match body with @@ -571,7 +626,7 @@ and extension_constructor_kind i ppf x = match x with Pext_decl(v, a, r) -> line i ppf "Pext_decl\n"; - if v <> [] then line (i+1) ppf "vars%a\n" typevars v; + list (i+1) typevar ppf v; constructor_arguments (i+1) ppf a; option (i+1) core_type ppf r; | Pext_rebind li -> @@ -774,8 +829,13 @@ and module_type i ppf x = | Pmty_extension (s, arg) -> line i ppf "Pmod_extension \"%s\"\n" s.txt; payload i ppf arg + | Pmty_strengthen (m, lid) -> + line i ppf "Pmty_strengthen %a\n" fmt_longident lid.txt; + module_type i ppf m -and signature i ppf x = list i signature_item ppf x +and signature i ppf {psg_items; psg_modalities} = + modalities i ppf psg_modalities; + list i signature_item ppf psg_items and signature_item i ppf x = line i ppf "signature_item %a\n" fmt_location x.psig_loc; @@ -838,6 +898,9 @@ and signature_item i ppf x = payload i ppf arg | Psig_attribute a -> attribute i ppf "Psig_attribute" a + | Psig_kind_abbrev (name, jkind) -> + line i ppf "Psig_kind_abbrev \"%s\"\n" name.txt; + jkind_annotation i ppf jkind and modtype_declaration i ppf = function | None -> line i ppf "#abstract" @@ -901,6 +964,17 @@ and module_expr i ppf x = | Pmod_extension (s, arg) -> line i ppf "Pmod_extension \"%s\"\n" s.txt; payload i ppf arg + | Pmod_instance instance -> + line i ppf "Pmod_instance\n"; + module_instance i ppf instance + +and module_instance i ppf { pmod_instance_head; pmod_instance_args } = + line i ppf "head=%s\n" pmod_instance_head; + list i (fun i ppf (name, arg) -> + line i ppf "name=%s\n" name; + module_instance i ppf arg) + ppf + pmod_instance_args and structure i ppf x = list i structure_item ppf x @@ -958,6 +1032,9 @@ and structure_item i ppf x = payload i ppf arg | Pstr_attribute a -> attribute i ppf "Pstr_attribute" a + | Pstr_kind_abbrev (name, jkind) -> + line i ppf "Pstr_kind_abbrev \"%s\"\n" name.txt; + jkind_annotation i ppf jkind and module_declaration i ppf pmd = str_opt_loc i ppf pmd.pmd_name; @@ -978,7 +1055,9 @@ and constructor_decl i ppf {pcd_name; pcd_vars; pcd_args; pcd_res; pcd_loc; pcd_attributes} = line i ppf "%a\n" fmt_location pcd_loc; line (i+1) ppf "%a\n" fmt_string_loc pcd_name; - if pcd_vars <> [] then line (i+1) ppf "pcd_vars =%a\n" typevars pcd_vars; + if pcd_vars <> [] then ( + line (i+1) ppf "pcd_vars\n"; + list (i+1) typevar ppf pcd_vars); attributes i ppf pcd_attributes; constructor_arguments (i+1) ppf pcd_args; option (i+1) core_type ppf pcd_res @@ -1084,7 +1163,9 @@ and directive_argument i ppf x = | Pdir_ident (li) -> line i ppf "Pdir_ident %a\n" fmt_longident li | Pdir_bool (b) -> line i ppf "Pdir_bool %s\n" (string_of_bool b) -let interface ppf x = list 0 signature_item ppf x +let interface ppf {psg_items; psg_modalities} = + modalities 0 ppf psg_modalities; + list 0 signature_item ppf psg_items let implementation ppf x = list 0 structure_item ppf x diff --git a/upstream/ocaml_flambda/parsing/printast.mli b/upstream/ocaml_flambda/parsing/printast.mli index f4ddc8bfa..182a31e78 100644 --- a/upstream/ocaml_flambda/parsing/printast.mli +++ b/upstream/ocaml_flambda/parsing/printast.mli @@ -23,7 +23,7 @@ open Parsetree open Format -val interface : formatter -> signature_item list -> unit +val interface : formatter -> signature -> unit val implementation : formatter -> structure_item list -> unit val top_phrase : formatter -> toplevel_phrase -> unit val constant: formatter -> constant -> unit @@ -34,4 +34,3 @@ val structure: int -> formatter -> structure -> unit val payload: int -> formatter -> payload -> unit val core_type: int -> formatter -> core_type -> unit val extension_constructor: int -> formatter -> extension_constructor -> unit - diff --git a/upstream/ocaml_flambda/parsing/syntaxerr.ml b/upstream/ocaml_flambda/parsing/syntaxerr.ml index 1257e1147..76eab18b8 100644 --- a/upstream/ocaml_flambda/parsing/syntaxerr.ml +++ b/upstream/ocaml_flambda/parsing/syntaxerr.ml @@ -33,6 +33,7 @@ type error = | Invalid_package_type of Location.t * invalid_package_type | Removed_string_set of Location.t | Missing_unboxed_literal_suffix of Location.t + | Malformed_instance_identifier of Location.t exception Error of error exception Escape_error @@ -48,6 +49,7 @@ let location_of_error = function | Expecting (l, _) | Removed_string_set l -> l | Missing_unboxed_literal_suffix l -> l + | Malformed_instance_identifier l -> l let ill_formed_ast loc s = diff --git a/upstream/ocaml_flambda/parsing/syntaxerr.mli b/upstream/ocaml_flambda/parsing/syntaxerr.mli index f54827c0c..54c619eb8 100644 --- a/upstream/ocaml_flambda/parsing/syntaxerr.mli +++ b/upstream/ocaml_flambda/parsing/syntaxerr.mli @@ -38,6 +38,7 @@ type error = | Invalid_package_type of Location.t * invalid_package_type | Removed_string_set of Location.t | Missing_unboxed_literal_suffix of Location.t + | Malformed_instance_identifier of Location.t exception Error of error exception Escape_error diff --git a/upstream/ocaml_flambda/typing/ctype.ml b/upstream/ocaml_flambda/typing/ctype.ml index c8e8ba8f8..44431b7ef 100644 --- a/upstream/ocaml_flambda/typing/ctype.ml +++ b/upstream/ocaml_flambda/typing/ctype.ml @@ -2149,7 +2149,7 @@ let rec estimate_type_jkind ~expand_component env ty = with Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) end - | Tobject _ -> Jkind.Builtin.value ~why:Object + | Tobject _ -> Jkind.for_object | Tfield _ -> Jkind.Builtin.value ~why:Tfield | Tnil -> Jkind.Builtin.value ~why:Tnil | Tlink _ | Tsubst _ -> assert false diff --git a/upstream/ocaml_flambda/typing/env.ml b/upstream/ocaml_flambda/typing/env.ml index f2e984251..98a3e6a2e 100644 --- a/upstream/ocaml_flambda/typing/env.ml +++ b/upstream/ocaml_flambda/typing/env.ml @@ -374,6 +374,10 @@ module IdTbl = next: ('lock, 'a, 'b) t; (** The table before opening the module. *) + + locks: 'lock list; + (** The locks from the definition of [root] to this [open], in + that order. *) } | Map of { @@ -396,7 +400,7 @@ module IdTbl = let remove id tbl = {tbl with current = Ident.remove id tbl.current} - let add_open slot wrap root components next = + let add_open slot wrap root components locks next = let using = match slot with | None -> None @@ -404,7 +408,7 @@ module IdTbl = in { current = Ident.empty; - layer = Open {using; root; components; next}; + layer = Open {using; root; components; next; locks}; } let remove_last_open rt tbl = @@ -459,10 +463,10 @@ module IdTbl = Ok (Pident id, macc, desc) with Not_found -> begin match tbl.layer with - | Open {using; root; next; components} -> + | Open {using; root; next; components; locks} -> begin try let descr = wrap (NameMap.find name components) in - let res = Pdot (root, name), macc, descr in + let res = Pdot (root, name), (locks @ macc), descr in if mark then begin match using with | None -> () | Some f -> begin match @@ -488,6 +492,18 @@ module IdTbl = let find_name_and_locks wrap ~mark name tbl = find_name_and_locks wrap ~mark name tbl [] + (** Find all the locks in the context. Equivalent to [find_name_and_locks] + on a missing name. *) + let rec get_all_locks tbl macc = + match tbl.layer with + | Open {next; _} + | Map {next; _} -> get_all_locks next macc + | Lock {lock; next} -> get_all_locks next (lock :: macc) + | Nothing -> macc + + let get_all_locks tbl = + get_all_locks tbl [] + (** Find item by name whose accesses are not affected by locks, and thus shouldn't encounter any locks. *) let find_name wrap ~mark name tbl = @@ -640,7 +656,7 @@ and module_components_repr = | Functor_comps of functor_components and module_components_failure = - | No_components_abstract + | No_components_abstract of Path.t | No_components_alias of Path.t and structure_components = { @@ -735,6 +751,14 @@ type unbound_value_hint = | No_hint | Missing_rec of Location.t +type structure_components_reason = + | Project + | Open + +let print_structure_components_reason ppf = function + | Project -> Format.fprintf ppf "have any components" + | Open -> Format.fprintf ppf "be opend" + type lookup_error = | Unbound_value of Longident.t * unbound_value_hint | Unbound_type of Longident.t @@ -750,9 +774,9 @@ type lookup_error = | Masked_self_variable of Longident.t | Masked_ancestor_variable of Longident.t | Structure_used_as_functor of Longident.t - | Abstract_used_as_functor of Longident.t - | Functor_used_as_structure of Longident.t - | Abstract_used_as_structure of Longident.t + | Abstract_used_as_functor of Longident.t * Path.t + | Functor_used_as_structure of Longident.t * structure_components_reason + | Abstract_used_as_structure of Longident.t * Path.t * structure_components_reason | Generative_used_as_applicative of Longident.t | Illegal_reference_to_recursive_module | Cannot_scrape_alias of Longident.t * Path.t @@ -762,6 +786,7 @@ type lookup_error = Mode.Value.Comonadic.error * closure_context | Local_value_used_in_exclave of lock_item * Longident.t | Non_value_used_in_object of Longident.t * type_expr * Jkind.Violation.t + | Error_from_persistent_env of Persistent_env.error type error = | Missing_module of Location.t * Path.t * Path.t @@ -2022,7 +2047,7 @@ let rec components_of_module_maker fcomp_shape = cm_shape; fcomp_cache = Hashtbl.create 17; fcomp_subst_cache = Hashtbl.create 17 }) - | Mty_ident _ | Mty_strengthen _ -> Error No_components_abstract + | Mty_ident p | Mty_strengthen (_, p, _) -> Error (No_components_abstract p) | Mty_alias p -> Error (No_components_alias p) (* Insertion of bindings by identifier + path *) @@ -2593,152 +2618,6 @@ let enter_unbound_module name reason env = modules = IdTbl.add id (Mod_unbound reason) env.modules; summary = Env_module_unbound(env.summary, name, reason) } -(* Open a signature path *) - -let add_components slot root env0 comps = - let add_l w comps env0 = - TycompTbl.add_open slot w root comps env0 - in - let add w comps env0 = IdTbl.add_open slot w root comps env0 in - let constrs = - add_l (fun x -> `Constructor x) comps.comp_constrs env0.constrs - in - let labels = - add_l (fun x -> `Label x) comps.comp_labels env0.labels - in - let values = - add (fun x -> `Value x) comps.comp_values env0.values - in - let types = - add (fun x -> `Type x) comps.comp_types env0.types - in - let modtypes = - add (fun x -> `Module_type x) comps.comp_modtypes env0.modtypes - in - let classes = - add (fun x -> `Class x) comps.comp_classes env0.classes - in - let cltypes = - add (fun x -> `Class_type x) comps.comp_cltypes env0.cltypes - in - let modules = - add (fun x -> `Module x) comps.comp_modules env0.modules - in - { env0 with - summary = Env_open(env0.summary, root); - constrs; - labels; - values; - types; - modtypes; - classes; - cltypes; - modules; - } - -let open_signature slot root env0 : (_,_) result = - match get_components_res (find_module_components root env0) with - | Error _ -> Error `Not_found - | exception Not_found -> Error `Not_found - | Ok (Functor_comps _) -> Error `Functor - | Ok (Structure_comps comps) -> - Ok (add_components slot root env0 comps) - -let remove_last_open root env0 = - let rec filter_summary summary = - match summary with - Env_empty -> raise Exit - | Env_open (s, p) -> - if Path.same p root then s else raise Exit - | Env_value _ - | Env_type _ - | Env_extension _ - | Env_module _ - | Env_modtype _ - | Env_class _ - | Env_cltype _ - | Env_functor_arg _ - | Env_constraints _ - | Env_persistent _ - | Env_copy_types _ - | Env_value_unbound _ - | Env_module_unbound _ -> - map_summary filter_summary summary - in - match filter_summary env0.summary with - | summary -> - let rem_l tbl = TycompTbl.remove_last_open root tbl - and rem tbl = IdTbl.remove_last_open root tbl in - Some { env0 with - summary; - constrs = rem_l env0.constrs; - labels = rem_l env0.labels; - values = rem env0.values; - types = rem env0.types; - modtypes = rem env0.modtypes; - classes = rem env0.classes; - cltypes = rem env0.cltypes; - modules = rem env0.modules; } - | exception Exit -> - None - -(* Open a signature from a file *) - -let open_pers_signature name env = - match open_signature None (Pident(Ident.create_persistent name)) env with - | (Ok _ | Error `Not_found as res) -> res - | Error `Functor -> assert false - (* a compilation unit cannot refer to a functor *) - -let open_signature - ?(used_slot = ref false) - ?(loc = Location.none) ?(toplevel = false) - ovf root env = - let unused = - match ovf with - | Asttypes.Fresh -> Warnings.Unused_open (Path.name root) - | Asttypes.Override -> Warnings.Unused_open_bang (Path.name root) - in - let warn_unused = - Warnings.is_active unused - and warn_shadow_id = - Warnings.is_active (Warnings.Open_shadow_identifier ("", "")) - and warn_shadow_lc = - Warnings.is_active (Warnings.Open_shadow_label_constructor ("","")) - in - if not toplevel && not loc.Location.loc_ghost - && (warn_unused || warn_shadow_id || warn_shadow_lc) - then begin - let used = used_slot in - if warn_unused then - !add_delayed_check_forward - (fun () -> - if not !used then begin - used := true; - Location.prerr_warning loc unused - end - ); - let shadowed = ref [] in - let slot s b = - begin match check_shadowing env b with - | Some kind when - ovf = Asttypes.Fresh && not (List.mem (kind, s) !shadowed) -> - shadowed := (kind, s) :: !shadowed; - let w = - match kind with - | "label" | "constructor" -> - Warnings.Open_shadow_label_constructor (kind, s) - | _ -> Warnings.Open_shadow_identifier (kind, s) - in - Location.prerr_warning loc w - | _ -> () - end; - used := true - in - open_signature (Some slot) root env - end - else open_signature None root env - (* Read a signature from a file *) let read_signature modname cmi ~add_binding = let mty = read_pers_mod modname cmi ~add_binding in @@ -3003,6 +2882,25 @@ type _ load = | Load : module_data load | Don't_load : unit load +let lookup_global_name_module_no_locks + (type a) (load : a load) ~errors ~use ~loc name env = + let path = Pident(Ident.create_global name) in + match load with + | Don't_load -> + check_pers_mod ~allow_hidden:false ~loc name; + path, (() : a) + | Load -> begin + match find_pers_mod ~allow_hidden:false name with + | mda -> + use_module ~use ~loc path mda; + path, (mda : a) + | exception Not_found -> + let s = Global_module.Name.to_string name in + may_lookup_error errors loc env (Unbound_module (Lident s)) + | exception Persistent_env.Error err -> + may_lookup_error errors loc env (Error_from_persistent_env err) + end + let lookup_ident_module (type a) (load : a load) ~errors ~use ~loc s env = let path, locks, data = match find_name_module ~mark:use s env.modules with @@ -3020,20 +2918,13 @@ let lookup_ident_module (type a) (load : a load) ~errors ~use ~loc s env = | Mod_unbound reason -> report_module_unbound ~errors ~loc env reason | Mod_persistent -> begin - (* Currently there are never instance arguments *) + (* This is only used when processing [Longident.t]s, which never have + instance arguments *) let name = Global_module.Name.create_no_args s in - match load with - | Don't_load -> - check_pers_mod ~allow_hidden:false ~loc name; - path, locks, (() : a) - | Load -> begin - match find_pers_mod ~allow_hidden:false name with - | mda -> - use_module ~use ~loc path mda; - path, locks, (mda : a) - | exception Not_found -> - may_lookup_error errors loc env (Unbound_module (Lident s)) - end + let path, a = + lookup_global_name_module_no_locks load ~errors ~use ~loc name env + in + path, locks, a end let escape_mode ~errors ~env ~loc ~item ~lid vmode escaping_context = @@ -3224,16 +3115,16 @@ let rec lookup_module_components ~errors ~use ~loc lid env = !components_of_functor_appl' ~loc ~f_path ~f_comp ~arg env in Papply (f_path, arg), [], comps -and lookup_structure_components ~errors ~use ~loc lid env = +and lookup_structure_components ~errors ~use ~loc ?(reason = Project) lid env = let path, locks, comps = lookup_module_components ~errors ~use ~loc lid env in match get_components_res comps with | Ok (Structure_comps comps) -> path, locks, comps | Ok (Functor_comps _) -> - may_lookup_error errors loc env (Functor_used_as_structure lid) - | Error No_components_abstract -> - may_lookup_error errors loc env (Abstract_used_as_structure lid) + may_lookup_error errors loc env (Functor_used_as_structure (lid, reason)) + | Error (No_components_abstract p) -> + may_lookup_error errors loc env (Abstract_used_as_structure (lid, p, reason)) | Error (No_components_alias p) -> - may_lookup_error errors loc env (Cannot_scrape_alias(lid, p)) + may_lookup_error errors loc env (Cannot_scrape_alias (lid, p)) and get_functor_components ~errors ~loc lid env comps = match get_components_res comps with @@ -3245,10 +3136,10 @@ and get_functor_components ~errors ~loc lid env comps = end | Ok (Structure_comps _) -> may_lookup_error errors loc env (Structure_used_as_functor lid) - | Error No_components_abstract -> - may_lookup_error errors loc env (Abstract_used_as_functor lid) + | Error (No_components_abstract p) -> + may_lookup_error errors loc env (Abstract_used_as_functor (lid, p)) | Error (No_components_alias p) -> - may_lookup_error errors loc env (Cannot_scrape_alias(lid, p)) + may_lookup_error errors loc env (Cannot_scrape_alias (lid, p)) and lookup_all_args ~errors ~use ~loc lid0 env = let rec loop_lid_arg args = function @@ -3417,8 +3308,165 @@ let lookup_all_dot_constructors ~errors ~use ~loc usage l s env = (cda.cda_description, use_fun)) cstrs +(* Open a signature path *) + +let add_components slot root env0 comps locks = + let add_l w comps env0 = + TycompTbl.add_open slot w root comps env0 + in + let add_v w comps env0 = + IdTbl.add_open slot w root comps locks env0 + in + let add w comps env0 = + IdTbl.add_open slot w root comps ([] : empty list) env0 + in + let constrs = + add_l (fun x -> `Constructor x) comps.comp_constrs env0.constrs + in + let labels = + add_l (fun x -> `Label x) comps.comp_labels env0.labels + in + let values = + add_v (fun x -> `Value x) comps.comp_values env0.values + in + let types = + add (fun x -> `Type x) comps.comp_types env0.types + in + let modtypes = + add (fun x -> `Module_type x) comps.comp_modtypes env0.modtypes + in + let classes = + add_v (fun x -> `Class x) comps.comp_classes env0.classes + in + let cltypes = + add (fun x -> `Class_type x) comps.comp_cltypes env0.cltypes + in + let modules = + add_v (fun x -> `Module x) comps.comp_modules env0.modules + in + { env0 with + summary = Env_open(env0.summary, root); + constrs; + labels; + values; + types; + modtypes; + classes; + cltypes; + modules; + } + +let open_signature_by_path path env0 = + let comps = find_structure_components path env0 in + add_components None path env0 comps [] + +let open_signature ~errors ~loc slot lid env0 = + let (root, locks, comps) = + lookup_structure_components ~errors ~use:true ~loc ~reason:Open lid env0 + in + root, add_components slot root env0 comps locks + +let remove_last_open root env0 = + let rec filter_summary summary = + match summary with + Env_empty -> raise Exit + | Env_open (s, p) -> + if Path.same p root then s else raise Exit + | Env_value _ + | Env_type _ + | Env_extension _ + | Env_module _ + | Env_modtype _ + | Env_class _ + | Env_cltype _ + | Env_functor_arg _ + | Env_constraints _ + | Env_persistent _ + | Env_copy_types _ + | Env_value_unbound _ + | Env_module_unbound _ -> + map_summary filter_summary summary + in + match filter_summary env0.summary with + | summary -> + let rem_l tbl = TycompTbl.remove_last_open root tbl + and rem tbl = IdTbl.remove_last_open root tbl in + Some { env0 with + summary; + constrs = rem_l env0.constrs; + labels = rem_l env0.labels; + values = rem env0.values; + types = rem env0.types; + modtypes = rem env0.modtypes; + classes = rem env0.classes; + cltypes = rem env0.cltypes; + modules = rem env0.modules; } + | exception Exit -> + None + +(* Open a signature from a file *) + +let open_pers_signature name env = + open_signature ~errors:false ~loc:Location.none None (Lident name) env + +let open_signature + ~used_slot + ~loc ~toplevel + ovf lid env = + let lid_s = Format.asprintf "%a" Pprintast.longident lid.txt in + let unused = + match ovf with + | Asttypes.Fresh -> Warnings.Unused_open lid_s + | Asttypes.Override -> Warnings.Unused_open_bang lid_s + in + let warn_unused = + Warnings.is_active unused + and warn_shadow_id = + Warnings.is_active (Warnings.Open_shadow_identifier ("", "")) + and warn_shadow_lc = + Warnings.is_active (Warnings.Open_shadow_label_constructor ("","")) + in + if not toplevel && not loc.Location.loc_ghost + && (warn_unused || warn_shadow_id || warn_shadow_lc) + then begin + let used = used_slot in + if warn_unused then + !add_delayed_check_forward + (fun () -> + if not !used then begin + used := true; + Location.prerr_warning loc unused + end + ); + let shadowed = ref [] in + let slot s b = + begin match check_shadowing env b with + | Some kind when + ovf = Asttypes.Fresh && not (List.mem (kind, s) !shadowed) -> + shadowed := (kind, s) :: !shadowed; + let w = + match kind with + | "label" | "constructor" -> + Warnings.Open_shadow_label_constructor (kind, s) + | _ -> Warnings.Open_shadow_identifier (kind, s) + in + Location.prerr_warning loc w + | _ -> () + end; + used := true + in + open_signature ~errors:true ~loc:lid.loc (Some slot) lid.txt env + end + else open_signature ~errors:true ~loc:lid.loc None lid.txt env + (* General forms of the lookup functions *) +let walk_locks_for_module_lookup ~errors ~lock ~loc ~env ~lid locks = + if lock then + walk_locks ~errors ~loc ~env ~item:Module ~lid mda_mode None locks + else + mode_default mda_mode + let lookup_module_path ~errors ~use ~lock ~loc ~load lid env : Path.t * _ = let path, locks = match lid with @@ -3440,11 +3488,32 @@ let lookup_module_path ~errors ~use ~lock ~loc ~load lid env : Path.t * _ = let path_f, _comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in Papply(path_f, path_arg), [] in - let vmode = - if lock then - walk_locks ~errors ~loc ~env ~item:Module ~lid mda_mode None locks + let vmode = walk_locks_for_module_lookup ~errors ~lock ~loc ~lid ~env locks in + path, vmode + +let lookup_module_instance_path ~errors ~use ~lock ~loc ~load name env = + (* The locks are whatever locks we would find if we went through + [lookup_module_path] on a module not found in the environment *) + let locks = IdTbl.get_all_locks env.modules in + let path = + if !Clflags.transparent_modules && not load then + let path, () = + lookup_global_name_module_no_locks Don't_load ~errors ~use ~loc name env + in + path else - mode_default mda_mode + let path, (_ : module_data) = + lookup_global_name_module_no_locks Load ~errors ~use ~loc name env + in + path + in + let vmode = + let lid : Longident.t = + (* This is only used for error reporting. Probably in the long term we + want [Longident.t] to include instance names *) + Lident (name |> Global_module.Name.to_string) + in + walk_locks_for_module_lookup ~errors ~lock ~loc ~lid ~env locks in path, vmode @@ -3634,6 +3703,12 @@ let lookup_module_path ?(use=true) ?(lock=use) ~loc ~load lid env = in path, vmode.mode +let lookup_module_instance_path ?(use=true) ?(lock=use) ~loc ~load lid env = + let path, vmode = + lookup_module_instance_path ~errors:true ~use ~lock ~loc ~load lid env + in + path, vmode.mode + let lookup_module ?(use=true) ?(lock=use) ~loc lid env = let path, desc, vmode = lookup_module ~errors:true ~use ~lock ~loc lid env in path, desc, vmode.mode @@ -4155,18 +4230,22 @@ let report_lookup_error _loc env ppf = function fprintf ppf "Illegal recursive module reference" | Structure_used_as_functor lid -> fprintf ppf "@[The module %a is a structure, it cannot be applied@]" + (Style.as_inline_code !print_longident) lid + | Abstract_used_as_functor (lid, p) -> + fprintf ppf "@[The module %a is of abstract type %a, it cannot be applied@]" (Style.as_inline_code !print_longident) lid - | Abstract_used_as_functor lid -> - fprintf ppf "@[The module %a is abstract, it cannot be applied@]" - (Style.as_inline_code !print_longident) lid - | Functor_used_as_structure lid -> + (Style.as_inline_code !print_path) p + | Functor_used_as_structure (lid, reason) -> fprintf ppf "@[The module %a is a functor, \ - it cannot have any components@]" + it cannot %a@]" (Style.as_inline_code !print_longident) lid - | Abstract_used_as_structure lid -> - fprintf ppf "@[The module %a is abstract, \ - it cannot have any components@]" + print_structure_components_reason reason + | Abstract_used_as_structure (lid, p, reason) -> + fprintf ppf "@[The module %a is of abstract type %a, \ + it cannot %a@]" (Style.as_inline_code !print_longident) lid + (Style.as_inline_code !print_path) p + print_structure_components_reason reason | Generative_used_as_applicative lid -> fprintf ppf "@[The functor %a is generative,@ it@ cannot@ be@ \ applied@ in@ type@ expressions@]" @@ -4235,6 +4314,8 @@ let report_lookup_error _loc env ppf = function (Style.as_inline_code !print_longident) lid (Jkind.Violation.report_with_offender ~offender:(fun ppf -> !print_type_expr ppf typ)) err + | Error_from_persistent_env err -> + Persistent_env.report_error ppf err let report_error ppf = function | Missing_module(_, path1, path2) -> diff --git a/upstream/ocaml_flambda/typing/env.mli b/upstream/ocaml_flambda/typing/env.mli index 234828dab..54a69062b 100644 --- a/upstream/ocaml_flambda/typing/env.mli +++ b/upstream/ocaml_flambda/typing/env.mli @@ -45,8 +45,9 @@ type summary = | Env_persistent of summary * Ident.t | Env_value_unbound of summary * string * value_unbound_reason | Env_module_unbound of summary * string * module_unbound_reason + (* CR zqian: track [add_lock] as well *) -type address = +type address = Persistent_env.address = | Aunit of Compilation_unit.t | Alocal of Ident.t | Adot of address * int @@ -209,6 +210,10 @@ type lock_item = | Module | Class +type structure_components_reason = + | Project + | Open + type lookup_error = | Unbound_value of Longident.t * unbound_value_hint | Unbound_type of Longident.t @@ -224,9 +229,9 @@ type lookup_error = | Masked_self_variable of Longident.t | Masked_ancestor_variable of Longident.t | Structure_used_as_functor of Longident.t - | Abstract_used_as_functor of Longident.t - | Functor_used_as_structure of Longident.t - | Abstract_used_as_structure of Longident.t + | Abstract_used_as_functor of Longident.t * Path.t + | Functor_used_as_structure of Longident.t * structure_components_reason + | Abstract_used_as_structure of Longident.t * Path.t * structure_components_reason | Generative_used_as_applicative of Longident.t | Illegal_reference_to_recursive_module | Cannot_scrape_alias of Longident.t * Path.t @@ -235,6 +240,7 @@ type lookup_error = | Value_used_in_closure of lock_item * Longident.t * Mode.Value.Comonadic.error * closure_context | Local_value_used_in_exclave of lock_item * Longident.t | Non_value_used_in_object of Longident.t * type_expr * Jkind.Violation.t + | Error_from_persistent_env of Persistent_env.error val lookup_error: Location.t -> t -> lookup_error -> 'a @@ -280,6 +286,9 @@ val lookup_module_path: Path.t * Mode.Value.l val lookup_modtype_path: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t +val lookup_module_instance_path: + ?use:bool -> ?lock:bool -> loc:Location.t -> load:bool -> + Global_module.Name.t -> t -> Path.t * Mode.Value.l val lookup_constructor: ?use:bool -> loc:Location.t -> constructor_usage -> Longident.t -> t -> @@ -407,12 +416,15 @@ val add_signature_lazy: Subst.Lazy.signature_item list -> t -> t Used to implement open. Returns None if the path refers to a functor, not a structure. *) val open_signature: - ?used_slot:bool ref -> - ?loc:Location.t -> ?toplevel:bool -> - Asttypes.override_flag -> Path.t -> - t -> (t, [`Not_found | `Functor]) result + used_slot:bool ref -> + loc:Location.t -> toplevel:bool -> + Asttypes.override_flag -> Longident.t Location.loc -> + t -> Path.t * t + +(* CR zqian: locks beyond the open are not tracked. Fix that. *) +val open_signature_by_path: Path.t -> t -> t -val open_pers_signature: string -> t -> (t, [`Not_found]) result +val open_pers_signature: string -> t -> Path.t * t val remove_last_open: Path.t -> t -> t option diff --git a/upstream/ocaml_flambda/typing/envaux.ml b/upstream/ocaml_flambda/typing/envaux.ml index e3d94244a..65d2f44fb 100644 --- a/upstream/ocaml_flambda/typing/envaux.ml +++ b/upstream/ocaml_flambda/typing/envaux.ml @@ -71,11 +71,7 @@ let rec env_from_summary sum subst = | Env_open(s, path) -> let env = env_from_summary s subst in let path' = Subst.module_path subst path in - begin match Env.open_signature Asttypes.Override path' env with - | Ok env -> env - | Error `Functor -> assert false - | Error `Not_found -> raise (Error (Module_not_found path')) - end + Env.open_signature_by_path path' env | Env_functor_arg(Env_module(s, id, pres, desc), id') when Ident.same id id' -> let desc = diff --git a/upstream/ocaml_flambda/typing/jkind.ml b/upstream/ocaml_flambda/typing/jkind.ml index 50fff4e92..b835975e0 100644 --- a/upstream/ocaml_flambda/typing/jkind.ml +++ b/upstream/ocaml_flambda/typing/jkind.ml @@ -288,7 +288,7 @@ module Error = struct { jkind : const; required_layouts_level : Language_extension.maturity } - | Unknown_jkind of Jane_syntax.Jkind.t + | Unknown_jkind of Parsetree.jkind_annotation | Multiple_jkinds of { from_annotation : const; from_attribute : const @@ -733,9 +733,9 @@ module Const = struct } let rec of_user_written_annotation_unchecked_level - (jkind : Jane_syntax.Jkind.t) : t = - match jkind with - | Abbreviation { txt = name; loc } -> ( + (jkind : Parsetree.jkind_annotation) : t = + match jkind.pjkind_desc with + | Abbreviation name -> ( (* CR layouts v2.8: move this to predef *) match name with (* CR layouts v3.0: remove this hack once non-null jkinds are out of alpha. @@ -755,7 +755,7 @@ module Const = struct | "bits32" -> Builtin.bits32.jkind | "bits64" -> Builtin.bits64.jkind | "vec128" -> Builtin.vec128.jkind - | _ -> raise ~loc (Unknown_jkind jkind)) + | _ -> raise ~loc:jkind.pjkind_loc (Unknown_jkind jkind)) | Mod (jkind, modifiers) -> let base = of_user_written_annotation_unchecked_level jkind in (* for each mode, lower the corresponding modal bound to be that mode *) @@ -791,20 +791,27 @@ module Const = struct *) (* CR layouts: When everything is stable, remove this function. *) let get_required_layouts_level (_context : History.annotation_context) - (jkind : t) : Language_extension.maturity = - match jkind.layout, jkind.nullability_upper_bound with - | (Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) | Any), _ - | Base Value, Non_null -> - Stable - | Base Void, _ | Base Value, Maybe_null -> Alpha - | Product _, _ -> Beta - - let of_user_written_annotation ~context Location.{ loc; txt = annot } = + (jkind : t) = + let rec scan_layout (l : Layout.Const.t) : Language_extension.maturity = + match l, jkind.nullability_upper_bound with + | (Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) | Any), _ + | Base Value, Non_null -> + Stable + | Product layouts, _ -> + List.fold_left + (fun m l -> Language_extension.Maturity.max m (scan_layout l)) + Language_extension.Stable layouts + | Base Void, _ | Base Value, Maybe_null -> Alpha + in + scan_layout jkind.layout + + let of_user_written_annotation ~context (annot : Parsetree.jkind_annotation) = let const = of_user_written_annotation_unchecked_level annot in let required_layouts_level = get_required_layouts_level context const in if not (Language_extension.is_at_least Layouts required_layouts_level) then - raise ~loc (Insufficient_level { jkind = const; required_layouts_level }); + raise ~loc:annot.pjkind_loc + (Insufficient_level { jkind = const; required_layouts_level }); const end @@ -1171,9 +1178,9 @@ let of_const ~why let of_annotated_const ~context ~const ~const_loc = of_const ~why:(Annotated (context, const_loc)) const -let of_annotation ~context (annot : _ Location.loc) = +let of_annotation ~context (annot : Parsetree.jkind_annotation) = let const = Const.of_user_written_annotation ~context annot in - let jkind = of_annotated_const ~const ~const_loc:annot.loc ~context in + let jkind = of_annotated_const ~const ~const_loc:annot.pjkind_loc ~context in jkind, (const, annot) let of_annotation_option_default ~default ~context = @@ -1188,14 +1195,13 @@ let of_attribute ~context let of_type_decl ~context (decl : Parsetree.type_declaration) = let jkind_of_annotation = - Jane_syntax.Layouts.of_type_declaration decl - |> Option.map (fun (annot, attrs) -> - let t, const = of_annotation ~context annot in - t, const, attrs) + Option.map + (fun annot -> of_annotation ~context annot) + decl.ptype_jkind_annotation in let jkind_of_attribute = Builtin_attributes.jkind decl.ptype_attributes - |> Option.map (fun attr -> + |> Option.map (fun (attr : _ Location.loc) -> let t, const = of_attribute ~context attr in (* This is a bit of a lie: the "annotation" here is being forged based on the jkind attribute. But: the jkind @@ -1204,26 +1210,28 @@ let of_type_decl ~context (decl : Parsetree.type_declaration) = valid (and equivalent) to write as an annotation, so this lie is harmless. *) - let annot = - Location.map - (fun attr -> - let name = Builtin_attributes.jkind_attribute_to_string attr in - Jane_syntax.Jkind.(Abbreviation (Const.mk name Location.none))) - attr + let annot : Parsetree.jkind_annotation = + { pjkind_loc = attr.loc; + pjkind_desc = + (let name = + Builtin_attributes.jkind_attribute_to_string attr.txt + in + Parsetree.Abbreviation name) + } in - t, (const, annot), decl.ptype_attributes) + t, (const, annot)) in match jkind_of_annotation, jkind_of_attribute with | None, None -> None | (Some _ as x), None | None, (Some _ as x) -> x - | Some (_, (from_annotation, _), _), Some (_, (from_attribute, _), _) -> + | Some (_, (from_annotation, _)), Some (_, (from_attribute, _)) -> raise ~loc:decl.ptype_loc (Multiple_jkinds { from_annotation; from_attribute }) let of_type_decl_default ~context ~default (decl : Parsetree.type_declaration) = match of_type_decl ~context decl with - | Some (t, const, attrs) -> t, Some const, attrs - | None -> default, None, decl.ptype_attributes + | Some (t, const) -> t, Some const + | None -> default, None let for_boxed_record ~all_void = if all_void @@ -1250,6 +1258,22 @@ let for_arrow = } ~why:(Value_creation Arrow) +let for_object = + fresh_jkind + { layout = Sort (Base Value); + modes_upper_bounds = + (* The crossing of objects are based on the fact that they are + produced/defined/allocated at legacy, which applies to only the + comonadic axes. *) + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.legacy; + monadic = Alloc.Monadic.Const.max + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Non_null + } + ~why:(Value_creation Object) + (******************************) (* elimination and defaulting *) @@ -2083,10 +2107,10 @@ module Debug_printers = struct module Const = struct let t ppf (jkind : Const.t) = fprintf ppf - "@[{ layout = %a@,\ - ; modes_upper_bounds = %a@,\ - ; externality_upper_bound = %a@,\ - ; nullability_upper_bound = %a@,\ + "@[{ layout = %a@,\ + ; modes_upper_bounds = %a@,\ + ; externality_upper_bound = %a@,\ + ; nullability_upper_bound = %a@,\ }@]" Layout.Const.Debug_printers.t jkind.layout Modes.print jkind.modes_upper_bounds Externality.print jkind.externality_upper_bound @@ -2101,7 +2125,7 @@ let report_error ~loc : Error.t -> _ = function (* CR layouts v2.9: use the context to produce a better error message. When RAE tried this, some types got printed like [t/2], but the [/2] shouldn't be there. Investigate and fix. *) - "@[Unknown layout %a@]" Pprintast.jkind jkind + "@[Unknown layout %a@]" Pprintast.jkind_annotation jkind | Multiple_jkinds { from_annotation; from_attribute } -> Location.errorf ~loc "@[A type declaration's layout can be given at most once.@;\ @@ -2136,6 +2160,6 @@ let () = (* CR layouts v2.8: Remove the definitions below by propagating changes outside of this file. *) -type annotation = Const.t * Jane_syntax.Jkind.annotation +type annotation = Const.t * Parsetree.jkind_annotation let default_to_value_and_get t = default_to_value_and_get t diff --git a/upstream/ocaml_flambda/typing/jkind.mli b/upstream/ocaml_flambda/typing/jkind.mli index 45a75dca4..04d54db03 100644 --- a/upstream/ocaml_flambda/typing/jkind.mli +++ b/upstream/ocaml_flambda/typing/jkind.mli @@ -197,7 +197,7 @@ module Const : sig val get_externality_upper_bound : t -> Externality.t val of_user_written_annotation : - context:History.annotation_context -> Jane_syntax.Jkind.annotation -> t + context:History.annotation_context -> Parsetree.jkind_annotation -> t (* CR layouts: Remove this once we have a better story for printing with jkind abbreviations. *) @@ -330,13 +330,13 @@ type annotation = Types.type_expr Jkind_types.annotation val of_annotation : context:History.annotation_context -> - Jane_syntax.Jkind.annotation -> + Parsetree.jkind_annotation -> 'd t * annotation val of_annotation_option_default : default:'d t -> context:History.annotation_context -> - Jane_syntax.Jkind.annotation option -> + Parsetree.jkind_annotation option -> 'd t * annotation option (** Find a jkind from a type declaration. Type declarations are special because @@ -345,17 +345,14 @@ val of_annotation_option_default : attributes, and [of_type_decl] needs to look in two different places on the [type_declaration] to account for these two alternatives. - Returns the jkind, the user-written annotation, and the remaining unconsumed - attributes. (The attributes include old-style [[@@immediate]] or - [[@@immediate64]] attributes if those are present, but excludes any - attribute used by Jane Syntax to encode a [: jkind]-style jkind.) + Returns the jkind and the user-written annotation. Raises if a disallowed or unknown jkind is present. *) val of_type_decl : context:History.annotation_context -> Parsetree.type_declaration -> - (jkind_l * annotation * Parsetree.attributes) option + (jkind_l * annotation) option (** Find a jkind from a type declaration in the same way as [of_type_decl], defaulting to ~default. @@ -366,7 +363,7 @@ val of_type_decl_default : context:History.annotation_context -> default:jkind_l -> Parsetree.type_declaration -> - jkind_l * annotation option * Parsetree.attributes + jkind_l * annotation option (** Choose an appropriate jkind for a boxed record type, given whether all of its fields are [void]. *) @@ -379,6 +376,9 @@ val for_boxed_variant : all_voids:bool -> jkind_l (** The jkind of an arrow type. *) val for_arrow : jkind_l +(** The jkind of an object type. *) +val for_object : jkind_l + (******************************) (* elimination and defaulting *) diff --git a/upstream/ocaml_flambda/typing/jkind_types.ml b/upstream/ocaml_flambda/typing/jkind_types.ml index 89e07658a..3fb99d357 100644 --- a/upstream/ocaml_flambda/typing/jkind_types.ml +++ b/upstream/ocaml_flambda/typing/jkind_types.ml @@ -581,4 +581,4 @@ module Const = struct } end -type 'type_expr annotation = 'type_expr Const.t * Jane_syntax.Jkind.annotation +type 'type_expr annotation = 'type_expr Const.t * Parsetree.jkind_annotation diff --git a/upstream/ocaml_flambda/typing/jkind_types.mli b/upstream/ocaml_flambda/typing/jkind_types.mli index ec266f092..e88907a92 100644 --- a/upstream/ocaml_flambda/typing/jkind_types.mli +++ b/upstream/ocaml_flambda/typing/jkind_types.mli @@ -163,4 +163,4 @@ module Const : sig end (** CR layouts v2.8: remove this when printing is improved *) -type 'type_expr annotation = 'type_expr Const.t * Jane_syntax.Jkind.annotation +type 'type_expr annotation = 'type_expr Const.t * Parsetree.jkind_annotation diff --git a/upstream/ocaml_flambda/typing/mode_intf.mli b/upstream/ocaml_flambda/typing/mode_intf.mli index 0d8ca8ae4..7f01288f6 100644 --- a/upstream/ocaml_flambda/typing/mode_intf.mli +++ b/upstream/ocaml_flambda/typing/mode_intf.mli @@ -240,6 +240,8 @@ module type S = sig val aliased : lr val unique : lr + + val zap_to_ceil : ('l * allowed) t -> Const.t end module Contention : sig diff --git a/upstream/ocaml_flambda/typing/oprint.ml b/upstream/ocaml_flambda/typing/oprint.ml index 71a2499a3..7306bc99c 100644 --- a/upstream/ocaml_flambda/typing/oprint.ml +++ b/upstream/ocaml_flambda/typing/oprint.ml @@ -392,8 +392,6 @@ let pr_var_jkinds = mention non-legacy modes *) let print_out_mode_legacy ppf = function | Omd_local -> fprintf ppf "local_" - | Omd_unique -> fprintf ppf "unique_" - | Omd_once -> fprintf ppf "once_" let print_out_mode_new = pp_print_string diff --git a/upstream/ocaml_flambda/typing/outcometree.mli b/upstream/ocaml_flambda/typing/outcometree.mli index 3b3094c2e..bfb431dc2 100644 --- a/upstream/ocaml_flambda/typing/outcometree.mli +++ b/upstream/ocaml_flambda/typing/outcometree.mli @@ -81,8 +81,6 @@ type arg_label = type out_mode_legacy = | Omd_local - | Omd_unique - | Omd_once type out_mode_new = string diff --git a/upstream/ocaml_flambda/typing/parmatch.ml b/upstream/ocaml_flambda/typing/parmatch.ml index 88093f660..de72ed0b1 100644 --- a/upstream/ocaml_flambda/typing/parmatch.ml +++ b/upstream/ocaml_flambda/typing/parmatch.ml @@ -52,6 +52,7 @@ let make_pat desc ty tenv = {pat_desc = desc; pat_loc = Location.none; pat_extra = []; pat_type = ty ; pat_env = tenv; pat_attributes = []; + pat_unique_barrier = Unique_barrier.not_computed (); } let omega = Patterns.omega diff --git a/upstream/ocaml_flambda/typing/patterns.ml b/upstream/ocaml_flambda/typing/patterns.ml index 1f988c2b8..87ef2197c 100644 --- a/upstream/ocaml_flambda/typing/patterns.ml +++ b/upstream/ocaml_flambda/typing/patterns.ml @@ -27,6 +27,7 @@ let omega = { pat_type = Ctype.none; pat_env = Env.empty; pat_attributes = []; + pat_unique_barrier = Unique_barrier.not_computed (); } let rec omegas i = diff --git a/upstream/ocaml_flambda/typing/persistent_env.ml b/upstream/ocaml_flambda/typing/persistent_env.ml index 75e25f3cd..6b0da3153 100644 --- a/upstream/ocaml_flambda/typing/persistent_env.ml +++ b/upstream/ocaml_flambda/typing/persistent_env.ml @@ -34,11 +34,39 @@ type error = | Direct_reference_from_wrong_package of CU.t * filepath * CU.Prefix.t | Illegal_import_of_parameter of Global_module.Name.t * filepath - | Not_compiled_as_parameter of Global_module.Name.t * filepath + | Not_compiled_as_parameter of Global_module.Name.t | Imported_module_has_unset_parameter of { imported : Global_module.Name.t; parameter : Global_module.Name.t; } + | Imported_module_has_no_such_parameter of + { imported : CU.Name.t; + valid_parameters : Global_module.Name.t list; + parameter : Global_module.Name.t; + value : Global_module.Name.t; + } + | Not_compiled_as_argument of + { param : Global_module.Name.t; + value : Global_module.Name.t; + filename : filepath; + } + | Argument_type_mismatch of + { value : Global_module.Name.t; + filename : filepath; + expected : Global_module.Name.t; + actual : Global_module.Name.t; + } + | Inconsistent_global_name_resolution of { + name: Global_module.Name.t; + old_global : Global_module.t; + new_global : Global_module.t; + first_mentioned_by : Global_module.Name.t; + now_mentioned_by : Global_module.Name.t; + } + | Unbound_module_as_argument_value of + { instance: Global_module.Name.t; + value: Global_module.Name.t; + } exception Error of error let error err = raise (Error err) @@ -64,13 +92,18 @@ type can_load_cmis = | Can_load_cmis | Cannot_load_cmis of Lazy_backtrack.log -(* Data relating directly to a .cmi *) +type global_name_info = { + gn_global : Global_module.t; + gn_mentioned_by : Global_module.Name.t; (* For error reporting *) +} + +(* Data relating directly to a .cmi - does not depend on arguments *) type import = { imp_is_param : bool; - imp_params : Global_module.Name.t list; + imp_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) imp_arg_for : Global_module.Name.t option; imp_impl : CU.t option; (* None iff import is a parameter *) - imp_sign : Subst.Lazy.signature; + imp_raw_sign : Signature_with_global_bindings.t; imp_filename : string; imp_visibility: Load_path.visibility; imp_crcs : Import_info.Intf.t array; @@ -83,6 +116,20 @@ type import_info = | Missing | Found of import +(* Data relating to a global name (possibly with arguments) but not necessarily + a value in scope. For example, if we've encountered a module only by seeing + it used as the name or value of an argument in a [Global_module.Name.t], we + won't bind it or construct a [pers_struct] for it but it will have a + [pers_name]. *) +type pers_name = { + pn_import : import; + pn_global : Global_module.t; + pn_arg_for : Global_module.Name.t option; + (* Currently always the same as [pn_import.imp_arg_for], since parameters + don't have parameters *) + pn_sign : Subst.Lazy.signature; +} + (* What a global identifier is actually bound to in Lambda code *) type binding = | Runtime_parameter of Ident.t (* Bound to a runtime parameter *) @@ -100,7 +147,9 @@ module Param_set = Global_module.Name.Set (* If you add something here, _do not forget_ to add it to [clear]! *) type 'a t = { + globals : (Global_module.Name.t, global_name_info) Hashtbl.t; imports : (CU.Name.t, import_info) Hashtbl.t; + persistent_names : (Global_module.Name.t, pers_name) Hashtbl.t; persistent_structures : (Global_module.Name.t, 'a pers_struct_info) Hashtbl.t; imported_units: CU.Name.Set.t ref; @@ -111,7 +160,9 @@ type 'a t = { } let empty () = { + globals = Hashtbl.create 17; imports = Hashtbl.create 17; + persistent_names = Hashtbl.create 17; persistent_structures = Hashtbl.create 17; imported_units = ref CU.Name.Set.empty; imported_opaque_units = ref CU.Name.Set.empty; @@ -122,7 +173,9 @@ let empty () = { let clear penv = let { + globals; imports; + persistent_names; persistent_structures; imported_units; imported_opaque_units; @@ -130,7 +183,9 @@ let clear penv = crc_units; can_load_cmis; } = penv in + Hashtbl.clear globals; Hashtbl.clear imports; + Hashtbl.clear persistent_names; Hashtbl.clear persistent_structures; imported_units := CU.Name.Set.empty; imported_opaque_units := CU.Name.Set.empty; @@ -159,6 +214,11 @@ let find_import_info_in_cache {imports; _} import = | Missing -> None | Found imp -> Some imp +let find_name_info_in_cache {persistent_names; _} name = + match Hashtbl.find persistent_names name with + | exception Not_found -> None + | pn -> Some pn + let find_info_in_cache {persistent_structures; _} name = match Hashtbl.find persistent_structures name with | exception Not_found -> None @@ -179,7 +239,7 @@ let register_parameter ({param_imports; _} as penv) modname = () | Some imp -> if not imp.imp_is_param then - raise (Error (Not_compiled_as_parameter(modname, imp.imp_filename))) + raise (Error (Not_compiled_as_parameter modname)) end; param_imports := Param_set.add modname !param_imports @@ -263,10 +323,7 @@ let acknowledge_import penv ~check modname pers_sig = let params = cmi.cmi_params in let crcs = cmi.cmi_crcs in let flags = cmi.cmi_flags in - let sign = - (* Freshen identifiers bound by signature *) - Subst.Lazy.signature Make_local Subst.identity cmi.cmi_sign - in + let sign = Signature_with_global_bindings.read_from_cmi cmi in if not (CU.Name.equal modname found_name) then error (Illegal_renaming(modname, found_name, filename)); List.iter @@ -303,7 +360,7 @@ let acknowledge_import penv ~check modname pers_sig = imp_params = params; imp_arg_for = arg_for; imp_impl = impl; - imp_sign = sign; + imp_raw_sign = sign; imp_filename = filename; imp_visibility = visibility; imp_crcs = crcs; @@ -344,23 +401,297 @@ let find_import ~allow_hidden penv ~check modname = add_import penv modname; acknowledge_import penv ~check modname psig +let remember_global { globals; _ } global ~mentioned_by = + if Global_module.has_arguments global then + let global_name = Global_module.to_name global in + match Hashtbl.find globals global_name with + | exception Not_found -> + Hashtbl.add globals global_name + { gn_global = global; gn_mentioned_by = mentioned_by } + | { gn_global = old_global; gn_mentioned_by = first_mentioned_by } -> + if not (Global_module.equal old_global global) then + error (Inconsistent_global_name_resolution { + name = global_name; + old_global; + new_global = global; + first_mentioned_by; + now_mentioned_by = mentioned_by; + }) + +let current_unit_is_aux name ~allow_args = + match CU.get_current () with + | None -> false + | Some current -> + match CU.to_global_name current with + | Some { head; args } -> + (args = [] || allow_args) + && CU.Name.equal name (head |> CU.Name.of_string) + | None -> false + +let current_unit_is name = + current_unit_is_aux name ~allow_args:false + +let current_unit_is_instance_of name = + current_unit_is_aux name ~allow_args:true + (* Enforce the subset rule: we can only refer to a module if that module's - parameters are also our parameters. *) -let check_for_unset_parameters penv modname import = + parameters are also our parameters. This assumes that all of the arguments in + [global] have already been checked, so we only need to check [global] + itself (in other words, we don't need to recurse). + + Formally, the subset rule for an unelaborated global (that is, a + [Global_module.Name.t]) says that [M[P_1:A_1]...[P_n:A_n]] is accessible if, + for each parameter [P] that [M] takes, either [P] is one of the parameters + [P_i], or the current compilation unit also takes [P]. + + This function takes an _elaborated_ global (that is, a [Global_module.t]), + which "bakes in" crucial information: all of the instantiated module's + parameters are accounted for, so we need only concern ourselves with the + syntax of the global and the current compilation unit's parameters. + Specifically, the subset rule for an elaborated global says that + [M[P_1:A_1]...[P_n:A_n]{Q_1:B_1}...{Q_m:B_m}] is accessible if each hidden + argument value [B_i] is a parameter of the current unit. Operationally, this + makes sense since the hidden argument [{Q:B}] means "as the argument [Q] to + [M], we're passing our own parameter [B] along." (Currently [B] is always + simply [Q] again. This is likely to change with future extensions, but the + requirement will be the same: [B] needs to be something we're taking as a + parameter.) *) +let check_for_unset_parameters penv global = List.iter - (fun param -> - if not (is_registered_parameter_import penv param) then + (fun ({ param = _; value = arg_value } : Global_module.argument) -> + let value_name = Global_module.to_name arg_value in + if not (is_registered_parameter_import penv value_name) then error (Imported_module_has_unset_parameter { - imported = modname; - parameter = param; + imported = Global_module.to_name global; + parameter = value_name; })) - import.imp_params + global.Global_module.hidden_args -let make_binding _penv modname (import : import) : binding = - match import with - | { imp_impl = Some unit; imp_params = [] } -> Constant unit - | { imp_impl = None } | { imp_params = _ :: _ } -> - Runtime_parameter (Ident.create_local_binding_for_global modname) +let rec global_of_global_name penv ~check name = + match Hashtbl.find penv.globals name with + | { gn_global; _ } -> gn_global + | exception Not_found -> + let pn = find_pers_name ~allow_hidden:true penv check name in + pn.pn_global + +and compute_global penv modname ~params check = + let arg_global_by_param_name = + List.map + (fun ({ param = name; value } : Global_module.Name.argument) -> + match global_of_global_name penv ~check value with + | value -> name, value + | exception Not_found -> + error + (Unbound_module_as_argument_value { instance = modname; value })) + modname.Global_module.Name.args + in + let subst : Global_module.subst = Global_module.Name.Map.of_list arg_global_by_param_name in + if check && modname.Global_module.Name.args <> [] then begin + (* A paragraph for the future that I don't want to lose track of: + + Produce the expected type of each argument. This takes into account + substitutions among the parameter types: if the parameters are T and + To_string[T] and the arguments are [Int] and [Int_to_string], we want to + check that [Int] has type [T] and that [Int_to_string] has type + [To_string[T\Int]]. + + For now, our parameters don't take parameters, so we can just assert that + the parameter name has no arguments and keep it as the expected type. *) + let expected_type_by_param_name = + List.map + (fun param -> + assert (not (Global_module.has_arguments param)); + Global_module.to_name param, param) + params + in + let compare_by_param (param1, _) (param2, _) = + Global_module.Name.compare param1 param2 + in + Misc.Stdlib.List.merge_iter + ~cmp:compare_by_param + expected_type_by_param_name + arg_global_by_param_name + ~left_only: + (fun _ -> + (* Parameter with no argument: fine (subset rule will be checked by + [check_for_unset_parameters] later) *) + ()) + ~right_only: + (fun (param, value) -> + (* Argument with no parameter: not fine *) + raise + (Error (Imported_module_has_no_such_parameter { + imported = CU.Name.of_head_of_global_name modname; + valid_parameters = params |> List.map Global_module.to_name; + parameter = param; + value = value |> Global_module.to_name; + }))) + ~both: + (fun (param_name, expected_type_global) (_arg_name, arg_value_global) -> + let arg_value = arg_value_global |> Global_module.to_name in + let pn = find_pers_name ~allow_hidden:true penv check arg_value in + let actual_type = + match pn.pn_arg_for with + | None -> + error (Not_compiled_as_argument + { param = param_name; value = arg_value; + filename = pn.pn_import.imp_filename }) + | Some ty -> ty + in + let actual_type_global = + global_of_global_name penv ~check actual_type + in + if not (Global_module.equal expected_type_global actual_type_global) + then begin + let expected_type = Global_module.to_name expected_type_global in + if Global_module.Name.equal expected_type actual_type then + (* This shouldn't happen, I don't think, but if it does, I'd rather + not output an "X != X" sort of error message *) + Misc.fatal_errorf + "Mismatched argument type (despite same name):@ \ + expected %a,@ got %a" + Global_module.print expected_type_global + Global_module.print actual_type_global + else + raise (Error (Argument_type_mismatch { + value = arg_value; + filename = pn.pn_import.imp_filename; + expected = expected_type; + actual = actual_type; + })) + end) + end; + (* Form the name without any arguments at all, then substitute in all the + arguments. A bit roundabout but should be sound *) + let hidden_args = + List.map + (fun param : Global_module.argument -> + { param = Global_module.to_name param; value = param }) + params + in + let global_without_args = + (* Won't raise an exception, since the hidden args are all different + (since the params are different, or else we have bigger problems) *) + Global_module.create_exn modname.Global_module.Name.head [] ~hidden_args + in + let global, _changed = Global_module.subst global_without_args subst in + global + +and acknowledge_pers_name penv check global_name import = + let params = import.imp_params in + let arg_for = import.imp_arg_for in + let sign = import.imp_raw_sign in + let global = compute_global penv global_name ~params check in + (* This checks only [global] itself without recursing into argument values. + That's fine, however, since those argument values will have come from + recursive calls to [global_of_global_name] and therefore have passed + through here already. *) + check_for_unset_parameters penv global; + let {persistent_names; _} = penv in + let sign = + let bindings = + List.map + (fun ({ param; value } : Global_module.argument) -> param, value) + global.Global_module.visible_args + in + (* Only need to substitute the visible args, since the hidden args only + reflect substitutions already made by visible args *) + Signature_with_global_bindings.subst sign bindings + in + Array.iter + (fun bound_global -> + remember_global penv bound_global ~mentioned_by:global_name) + sign.bound_globals; + let pn = { pn_import = import; + pn_global = global; + pn_arg_for = arg_for; + pn_sign = sign.sign; + } in + if check then check_consistency penv import; + Hashtbl.add persistent_names global_name pn; + remember_global penv global ~mentioned_by:global_name; + pn + +and find_pers_name ~allow_hidden penv check name = + let {persistent_names; _} = penv in + match Hashtbl.find persistent_names name with + | pn -> pn + | exception Not_found -> + let unit_name = CU.Name.of_head_of_global_name name in + let import = find_import ~allow_hidden penv ~check unit_name in + acknowledge_pers_name penv check name import + +let read_pers_name penv check name filename = + let unit_name = CU.Name.of_head_of_global_name name in + let import = read_import penv ~check unit_name filename in + acknowledge_pers_name penv check name import + +let need_local_ident penv (global : Global_module.t) = + (* There are three equivalent ways to phrase the question we're asking here: + + 1. Is this either a parameter or an open import? + 2. Will the generated lambda code need a parameter to take this module's + value? + 3. Is the value not statically bound? + + Crucially, all modules (besides the one being compiled or instantiated) + must be either statically bound or toplevel parameters, since the actual + functor calls that instantiate open modules happen elsewhere (so that they + can happen exactly once). *) + let global_name = global |> Global_module.to_name in + let name = global_name |> CU.Name.of_head_of_global_name in + if is_registered_parameter_import penv global_name + then + (* Already a parameter *) + true + else if current_unit_is name + then + (* Not actually importing it in the sense of needing its value (we're + building its value!) *) + false + else if current_unit_is_instance_of name + then + (* We're instantiating the module, so (here and only here!) we're accessing + its actual functor, which is a compile-time constant *) + (* CR lmaurer: Relying on [current_unit_is_instance_of] here feels hacky + when only a pretty specific call sequence gets here. *) + false + else if Global_module.is_complete global + then + (* It's a compile-time constant *) + false + else + (* Some argument is missing, or some argument's argument is missing, etc., + so it's not a compile-time constant *) + true + +let make_binding penv (global : Global_module.t) (impl : CU.t option) : binding = + let name = Global_module.to_name global in + if need_local_ident penv global + then Runtime_parameter (Ident.create_local_binding_for_global name) + else + let unit_from_cmi = + match impl with + | Some unit -> unit + | None -> + Misc.fatal_errorf + "Can't bind a parameter statically:@ %a" + Global_module.print global + in + let unit = + match global.visible_args with + | [] -> + (* Make sure the names are consistent up to the pack prefix *) + assert (Global_module.Name.equal + (unit_from_cmi |> CU.to_global_name_without_prefix) + name); + unit_from_cmi + | _ -> + (* Make sure the unit isn't supposed to be packed *) + assert (not (CU.is_packed unit_from_cmi)); + CU.of_global_name name + in + Constant unit type address = | Aunit of Compilation_unit.t @@ -379,25 +710,24 @@ type 'a sig_reader = (* Add a persistent structure to the hash table and bind it in the [Env]. Checks that OCaml source is allowed to refer to this module. *) -let acknowledge_pers_struct penv modname import val_of_pers_sig = - if modname.Global_module.Name.args <> [] then - Misc.fatal_errorf "TODO: Unsupported instance name: %a" - Global_module.Name.print modname; +let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = let {persistent_structures; _} = penv in + let import = pers_name.pn_import in + let global = pers_name.pn_global in + let sign = pers_name.pn_sign in let is_param = import.imp_is_param in - let sign = import.imp_sign in + let impl = import.imp_impl in let filename = import.imp_filename in let flags = import.imp_flags in - check_for_unset_parameters penv modname import; begin match is_param, is_registered_parameter_import penv modname with | true, false -> error (Illegal_import_of_parameter(modname, filename)) | false, true -> - error (Not_compiled_as_parameter(modname, filename)) + error (Not_compiled_as_parameter modname) | true, true | false, false -> () end; - let binding = make_binding penv modname import in + let binding = make_binding penv global impl in let address : address = match binding with | Runtime_parameter id -> Alocal id @@ -432,22 +762,20 @@ let acknowledge_pers_struct penv modname import val_of_pers_sig = ps let read_pers_struct penv val_of_pers_sig check modname cmi ~add_binding = - let unit_name = CU.Name.of_head_of_global_name modname in - let import = read_import penv ~check unit_name cmi in + let pers_name = read_pers_name penv check modname cmi in if add_binding then ignore - (acknowledge_pers_struct penv modname import val_of_pers_sig + (acknowledge_pers_struct penv modname pers_name val_of_pers_sig : _ pers_struct_info); - import.imp_sign + pers_name.pn_sign let find_pers_struct ~allow_hidden penv val_of_pers_sig check name = let {persistent_structures; _} = penv in match Hashtbl.find persistent_structures name with | ps -> check_visibility ~allow_hidden ps.ps_import; ps | exception Not_found -> - let unit_name = CU.Name.of_head_of_global_name name in - let import = find_import ~allow_hidden penv ~check unit_name in - acknowledge_pers_struct penv name import val_of_pers_sig + let pers_name = find_pers_name ~allow_hidden penv check name in + acknowledge_pers_struct penv name pers_name val_of_pers_sig let describe_prefix ppf prefix = if CU.Prefix.is_empty prefix then @@ -489,9 +817,16 @@ let check_pers_struct ~allow_hidden penv f ~loc name = Format.asprintf "%a is inaccessible from %a" CU.print unit describe_prefix prefix + (* The cmi is necessary, otherwise the functor cannot be + generated. Moreover, aliases of functor arguments are forbidden. *) | Illegal_import_of_parameter _ -> assert false | Not_compiled_as_parameter _ -> assert false | Imported_module_has_unset_parameter _ -> assert false + | Imported_module_has_no_such_parameter _ -> assert false + | Not_compiled_as_argument _ -> assert false + | Argument_type_mismatch _ -> assert false + | Inconsistent_global_name_resolution _ -> assert false + | Unbound_module_as_argument_value _ -> assert false in let warn = Warnings.No_cmi_file(name_as_string, Some msg) in Location.prerr_warning loc warn @@ -553,17 +888,12 @@ let parameters {param_imports; _} = let looked_up {persistent_structures; _} modname = Hashtbl.mem persistent_structures modname -let is_imported {imported_units; _} s = - CU.Name.Set.mem s !imported_units - let is_imported_opaque {imported_opaque_units; _} s = CU.Name.Set.mem s !imported_opaque_units let implemented_parameter penv modname = - match - find_import_info_in_cache penv (CU.Name.of_head_of_global_name modname) - with - | Some { imp_arg_for; _ } -> imp_arg_for + match find_name_info_in_cache penv modname with + | Some { pn_arg_for; _ } -> pn_arg_for | None -> None let make_cmi penv modname kind sign alerts = @@ -577,11 +907,20 @@ let make_cmi penv modname kind sign alerts = let params = (* Needs to be consistent with [Translmod] *) parameters penv + |> List.map (global_of_global_name penv ~check:true) in + (* Need to calculate [params] before these since [global_of_global_name] has + side effects *) let crcs = imports penv in + let globals = + Hashtbl.to_seq_values penv.globals + |> Array.of_seq + |> Array.map (fun ({ gn_global; _ }) -> gn_global) + in { cmi_name = modname; cmi_kind = kind; + cmi_globals = globals; cmi_sign = sign; cmi_params = params; cmi_crcs = Array.of_list crcs; @@ -594,16 +933,14 @@ let save_cmi penv psig = let { cmi_name = modname; cmi_kind = kind; - cmi_sign = _; - cmi_crcs = _; cmi_flags = flags; } = cmi in let crc = output_to_file_via_temporary (* see MPR#7472, MPR#4991 *) ~mode: [Open_binary] filename (fun temp_filename oc -> output_cmi temp_filename oc cmi) in - (* Enter signature in consistbl so that imports() - will also return its crc *) + (* Enter signature in consistbl so that imports() and crc_of_unit() will + also return its crc *) let data : Import_info.Intf.Nonalias.Kind.t = match kind with | Normal { cmi_impl } -> Normal cmi_impl @@ -613,9 +950,6 @@ let save_cmi penv psig = ) ~exceptionally:(fun () -> remove_file filename) -(* TODO: These should really have locations in them where possible (adapting - [Typemod]'s [Error] constructor is probably the easiest path) *) - let report_error ppf = let open Format in function @@ -643,19 +977,6 @@ let report_error ppf = filename (Style.as_inline_code CU.print) unit1 (Style.as_inline_code CU.print) unit2 - | Illegal_import_of_parameter(modname, filename) -> - fprintf ppf - "@[The file %a@ contains the interface of a parameter.@ \ - %a is not declared as a parameter for the current unit (-parameter %a).@]" - (Style.as_inline_code Location.print_filename) filename - (Style.as_inline_code Global_module.Name.print) modname - (Style.as_inline_code Global_module.Name.print) modname - | Not_compiled_as_parameter(modname, filename) -> - fprintf ppf - "@[The module %a@ is specified as a parameter, but %a@ \ - was not compiled with -as-parameter.@]" - (Style.as_inline_code Global_module.Name.print) modname - (Style.as_inline_code Location.print_filename) filename | Direct_reference_from_wrong_package(unit, filename, prefix) -> fprintf ppf "@[Invalid reference to %a (in file %s) from %a.@ %s]" @@ -663,23 +984,110 @@ let report_error ppf = filename describe_prefix prefix "Can only access members of this library's package or a containing package" + | Illegal_import_of_parameter(modname, filename) -> + fprintf ppf + "@[The file %a@ contains the interface of a parameter.@ \ + %a@ is not declared as a parameter for the current unit.@]@.\ + @[@{Hint@}: \ + @[Compile the current unit with \ + @{-parameter %a@}.@]@]" + (Style.as_inline_code Location.print_filename) filename + (Style.as_inline_code Global_module.Name.print) modname + Global_module.Name.print modname + | Not_compiled_as_parameter modname -> + fprintf ppf + "@[The module %a@ is a parameter but is not declared as such for the \ + current unit.@]@.\ + @[@{Hint@}: \ + @[Compile the current unit with @{-parameter \ + %a@}.@]@]" + (Style.as_inline_code Global_module.Name.print) modname + Global_module.Name.print modname | Imported_module_has_unset_parameter { imported = modname; parameter = param } -> fprintf ppf "@[The module %a@ is not accessible because it takes %a@ \ as a parameter and the current unit does not.@]@.\ @[@{Hint@}: \ - @[Pass `-parameter %a`@ to add %a@ as a parameter@ \ + @[Pass @{-parameter %a@}@ to add %a@ as a parameter@ \ of the current unit.@]@]" (Style.as_inline_code Global_module.Name.print) modname (Style.as_inline_code Global_module.Name.print) param + Global_module.Name.print param + (Style.as_inline_code Global_module.Name.print) param + | Imported_module_has_no_such_parameter + { valid_parameters; imported = modname; parameter = param; value = _; } -> + let pp_hint ppf () = + match valid_parameters with + | [] -> + fprintf ppf + "Compile %a@ with @{-parameter %a@}@ to make it a \ + parameter." + (Style.as_inline_code CU.Name.print) modname + Global_module.Name.print param + | _ -> + let print_params = + Format.pp_print_list ~pp_sep:Format.pp_print_space + (Style.as_inline_code Global_module.Name.print) + in + fprintf ppf "Parameters for %a:@ @[%a@]" + (Style.as_inline_code CU.Name.print) modname + print_params valid_parameters + in + fprintf ppf + "@[The module %a@ has no parameter %a.@]@.\ + @[@{Hint@}: @[%a@]@]" + (Style.as_inline_code CU.Name.print) modname (Style.as_inline_code Global_module.Name.print) param + pp_hint () + | Not_compiled_as_argument { param; value; filename } -> + fprintf ppf + "@[The module %a@ cannot be used as an argument for parameter \ + %a.@]@.\ + @[@{Hint@}: \ + @[Compile %a@ with @{-as-argument-for %a@}.@]@]" + (Style.as_inline_code Global_module.Name.print) value (Style.as_inline_code Global_module.Name.print) param + (Style.as_inline_code Location.print_filename) filename + Global_module.Name.print param + | Argument_type_mismatch { value; filename; expected; actual; } -> + fprintf ppf + "@[The module %a@ is used as an argument for the parameter %a@ \ + but %a@ is an argument for %a.@]@.\ + @[@{Hint@}: \ + @[%a@ was compiled with \ + @{-as-argument-for %a@}.@]@]" + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Name.print) expected + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Name.print) actual + (Style.as_inline_code Location.print_filename) filename + Global_module.Name.print expected + | Inconsistent_global_name_resolution + { name; old_global; new_global; first_mentioned_by; now_mentioned_by } -> + fprintf ppf + "@[The name %a@ was bound to %a@ by %a@ \ + but it is instead bound to %a@ by %a.@]" + (Style.as_inline_code Global_module.Name.print) name + (Style.as_inline_code Global_module.print) old_global + (Style.as_inline_code Global_module.Name.print) first_mentioned_by + (Style.as_inline_code Global_module.print) new_global + (Style.as_inline_code Global_module.Name.print) now_mentioned_by + | Unbound_module_as_argument_value { instance; value } -> + fprintf ppf + "@[Unbound module %a@ in instance %a@]" + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Name.print) instance let () = Location.register_error_of_exn (function | Error err -> + (* Note that this module don't have location info in its errors, since + (unlike [Env]) it doesn't take [Location.t]s as arguments. However, + [Env] is often able to add location info to our errors by + re-raising them with the [Env.Error_from_persistent_env] + constructor. *) Some (Location.error_of_printer_file report_error err) | _ -> None ) diff --git a/upstream/ocaml_flambda/typing/persistent_env.mli b/upstream/ocaml_flambda/typing/persistent_env.mli index 4f7488844..fbaaad39c 100644 --- a/upstream/ocaml_flambda/typing/persistent_env.mli +++ b/upstream/ocaml_flambda/typing/persistent_env.mli @@ -16,9 +16,7 @@ open Misc -module Consistbl_data : sig - type t -end +module Consistbl_data = Import_info.Intf.Nonalias.Kind module Consistbl : module type of struct include Consistbl.Make (Compilation_unit.Name) (Consistbl_data) @@ -33,11 +31,38 @@ type error = | Direct_reference_from_wrong_package of Compilation_unit.t * filepath * Compilation_unit.Prefix.t | Illegal_import_of_parameter of Global_module.Name.t * filepath - | Not_compiled_as_parameter of Global_module.Name.t * filepath + | Not_compiled_as_parameter of Global_module.Name.t | Imported_module_has_unset_parameter of { imported : Global_module.Name.t; parameter : Global_module.Name.t; - } + } + | Imported_module_has_no_such_parameter of + { imported : Compilation_unit.Name.t; + valid_parameters : Global_module.Name.t list; + parameter : Global_module.Name.t; + value : Global_module.Name.t; + } + | Not_compiled_as_argument of + { param : Global_module.Name.t; + value : Global_module.Name.t; + filename : filepath; + } + | Argument_type_mismatch of + { value : Global_module.Name.t; + filename : filepath; + expected : Global_module.Name.t; + actual : Global_module.Name.t; + } + | Inconsistent_global_name_resolution of + { name : Global_module.Name.t; + old_global : Global_module.t; + new_global : Global_module.t; + first_mentioned_by : Global_module.Name.t; + now_mentioned_by : Global_module.Name.t; + } + | Unbound_module_as_argument_value of + { instance : Global_module.Name.t; value : Global_module.Name.t; } + exception Error of error @@ -114,10 +139,6 @@ val is_parameter_import : 'a t -> Global_module.Name.t -> bool [penv] (it may have failed) *) val looked_up : 'a t -> Global_module.Name.t -> bool -(* [is_imported penv md] checks if [md] has been successfully - imported in the environment [penv] *) -val is_imported : 'a t -> Compilation_unit.Name.t -> bool - (* [is_imported_opaque penv md] checks if [md] has been imported in [penv] as an opaque module *) val is_imported_opaque : 'a t -> Compilation_unit.Name.t -> bool @@ -126,11 +147,22 @@ val is_imported_opaque : 'a t -> Compilation_unit.Name.t -> bool opaque module *) val register_import_as_opaque : 'a t -> Compilation_unit.Name.t -> unit +(* [local_ident penv md] returns the local identifier generated for [md] if + [md] is either a parameter or a dependency with a parameter. This is used + strictly for code generation - types should always use persistent + [Ident.t]s. *) +val local_ident : 'a t -> Global_module.Name.t -> Ident.t option + (* [implemented_parameter penv md] returns the argument to [-as-argument-for] that [md] was compiled with. *) val implemented_parameter : 'a t -> Global_module.Name.t -> Global_module.Name.t option +val global_of_global_name : 'a t + -> check:bool + -> Global_module.Name.t + -> Global_module.t + val make_cmi : 'a t -> Compilation_unit.Name.t -> Cmi_format.kind @@ -148,10 +180,10 @@ val without_cmis : 'a t -> ('b -> 'c) -> 'b -> 'c (* may raise Consistbl.Inconsistency *) val import_crcs : 'a t -> source:filepath -> - Import_info.t array -> unit + Import_info.Intf.t array -> unit (* Return the set of compilation units imported, with their CRC *) -val imports : 'a t -> Import_info.t list +val imports : 'a t -> Import_info.Intf.t list (* Return the set of imports represented as runtime parameters. If this module is indeed parameterised (that is, [parameters] returns a non-empty list), it will be compiled as diff --git a/upstream/ocaml_flambda/typing/predef.ml b/upstream/ocaml_flambda/typing/predef.ml index cc49c4738..67c4a01c7 100644 --- a/upstream/ocaml_flambda/typing/predef.ml +++ b/upstream/ocaml_flambda/typing/predef.ml @@ -216,9 +216,10 @@ let predef_jkind_annotation primitive = right kind. But this hack is OK as its result is just used in printing/untypeast. *) - let user_written : _ Location.loc = - Jane_syntax.Jkind.(Abbreviation (Const.mk primitive.name Location.none)) - |> Location.mknoloc + let user_written : Parsetree.jkind_annotation = + { pjkind_desc = Abbreviation primitive.name; + pjkind_loc = Location.none; + } in primitive.jkind, user_written) primitive @@ -540,28 +541,34 @@ let add_simd_stable_extension_types add_type env = Jkind.Const.Builtin.immutable_data.jkind) ~jkind_annotation:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_int8x16 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_int8x16) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_int8x16) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_int16x8 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_int16x8) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_int16x8) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_int32x4 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_int32x4) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_int32x4) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_int64x2 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_int64x2) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_int64x2) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_float32x4 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_float32x4) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_float32x4) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_float64x2 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_float64x2) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_float64x2) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 let add_small_number_extension_types add_type env = diff --git a/upstream/ocaml_flambda/typing/printtyp.ml b/upstream/ocaml_flambda/typing/printtyp.ml index 2fa89abe0..92d711b65 100644 --- a/upstream/ocaml_flambda/typing/printtyp.ml +++ b/upstream/ocaml_flambda/typing/printtyp.ml @@ -1313,10 +1313,11 @@ let add_type_to_preparation = prepare_type (* Disabled in classic mode when printing an unification error *) let print_labels = ref true -let out_jkind_of_user_jkind (jkind : Jane_syntax.Jkind.annotation) = - let rec out_jkind_const_of_user_jkind : Jane_syntax.Jkind.t -> out_jkind_const = function +let out_jkind_of_user_jkind jkind = + let rec out_jkind_const_of_user_jkind (jkind : Parsetree.jkind_annotation) : out_jkind_const = + match jkind.pjkind_desc with | Default -> Ojkind_const_default - | Abbreviation abbrev -> Ojkind_const_abbreviation (abbrev :> string Location.loc).txt + | Abbreviation abbrev -> Ojkind_const_abbreviation abbrev | Mod (base, modes) -> let base = out_jkind_const_of_user_jkind base in let modes = @@ -1327,7 +1328,7 @@ let out_jkind_of_user_jkind (jkind : Jane_syntax.Jkind.annotation) = Ojkind_const_product (List.map out_jkind_const_of_user_jkind ts) | With _ | Kind_of _ -> failwith "XXX unimplemented jkind syntax" in - Ojkind_const (out_jkind_const_of_user_jkind jkind.txt) + Ojkind_const (out_jkind_const_of_user_jkind jkind) let out_jkind_of_const_jkind jkind = Ojkind_const (Jkind.Const.to_out_jkind_const jkind) @@ -1394,9 +1395,9 @@ let tree_of_modes modes = (* The mapping passed to [tree_of_mode] must cover all non-legacy modes *) let l = [ tree_of_mode diff.areality [Mode.Locality.Const.Local, Omd_legacy Omd_local]; - tree_of_mode diff.linearity [Mode.Linearity.Const.Once, Omd_legacy Omd_once]; + tree_of_mode diff.linearity [Mode.Linearity.Const.Once, Omd_new "once"]; + tree_of_mode diff.uniqueness [Mode.Uniqueness.Const.Unique, Omd_new "unique"]; tree_of_mode diff.portability [Mode.Portability.Const.Portable, Omd_new "portable"]; - tree_of_mode diff.uniqueness [Mode.Uniqueness.Const.Unique, Omd_legacy Omd_unique]; tree_of_mode diff.contention [Mode.Contention.Const.Contended, Omd_new "contended"; Mode.Contention.Const.Shared, Omd_new "shared"]] in @@ -1435,7 +1436,9 @@ let rec tree_of_typexp mode alloc_mode ty = let arg_mode = Alloc.zap_to_legacy marg in let t1 = if is_optional l then - match get_desc (tpoly_get_mono ty1) with + match + get_desc (Ctype.expand_head !printing_env (tpoly_get_mono ty1)) + with | Tconstr(path, [ty], _) when Path.same path Predef.path_option -> tree_of_typexp mode arg_mode ty @@ -2273,7 +2276,7 @@ let rec tree_of_class_type mode params = in let tr = if is_optional l then - match get_desc ty with + match get_desc (Ctype.expand_head !printing_env ty) with | Tconstr(path, [ty], _) when Path.same path Predef.path_option -> tree_of_typexp mode ty | _ -> Otyp_stuff "" diff --git a/upstream/ocaml_flambda/typing/printtyped.ml b/upstream/ocaml_flambda/typing/printtyped.ml index 0bef833ad..4f1a8a94f 100644 --- a/upstream/ocaml_flambda/typing/printtyped.ml +++ b/upstream/ocaml_flambda/typing/printtyped.ml @@ -170,7 +170,7 @@ let typevar_jkind ~print_quote ppf (v, l) = | Some (_, jkind) -> fprintf ppf " (%a : %a)" pptv v - Pprintast.jkind jkind.txt + Pprintast.jkind_annotation jkind let tuple_component_label i ppf = function | None -> line i ppf "Label: None\n" @@ -513,7 +513,7 @@ and expression i ppf x = | Texp_variant (l, eo) -> line i ppf "Texp_variant \"%s\"\n" l; option i expression_alloc_mode ppf eo; - | Texp_record { fields; representation; extended_expression; alloc_mode = am} -> + | Texp_record { fields; representation; extended_expression; alloc_mode = am } -> line i ppf "Texp_record\n"; let i = i+1 in alloc_mode_option i ppf am; @@ -522,8 +522,8 @@ and expression i ppf x = line i ppf "representation =\n"; record_representation (i+1) ppf representation; line i ppf "extended_expression =\n"; - option (i+1) expression ppf extended_expression; - | Texp_field (e, li, _, _) -> + option (i+1) expression ppf (Option.map fst extended_expression); + | Texp_field (e, li, _, _, _) -> line i ppf "Texp_field\n"; expression i ppf e; longident i ppf li; diff --git a/upstream/ocaml_flambda/typing/solver.ml b/upstream/ocaml_flambda/typing/solver.ml index 72bbc2405..fe57c143d 100644 --- a/upstream/ocaml_flambda/typing/solver.ml +++ b/upstream/ocaml_flambda/typing/solver.ml @@ -33,17 +33,37 @@ type 'a error = right : 'a } -(** Map the function to the list, and returns the first [Error] found; - Returns [Ok ()] if no error. *) -let rec find_error (f : 'x -> ('a, 'b) Result.t) : 'x list -> ('a, 'b) Result.t - = function - | [] -> Ok () - | x :: rest -> ( - match f x with Ok () -> find_error f rest | Error _ as e -> e) - module Solver_mono (C : Lattices_mono) = struct + type any_morph = Any_morph : ('a, 'b, 'd) C.morph -> any_morph + + module VarMap = Map.Make (struct + type t = int * any_morph + + let compare (i1, m1) (i2, m2) = + match Int.compare i1 i2 with 0 -> compare m1 m2 | i -> i + end) + + (** Map the function to the list, and returns the first [Error] found; + Returns [Ok ()] if no error. *) + let find_error (f : 'x -> ('a, 'b) Result.t) (t : 'x VarMap.t) : + ('a, 'b) Result.t = + let r = ref (Ok ()) in + let _ = + VarMap.for_all + (fun _ x -> + match f x with + | Ok () -> true + | Error _ as e -> + r := e; + false) + t + in + !r + + let var_map_to_list t = VarMap.fold (fun _ a xs -> a :: xs) t [] + type 'a var = - { mutable vlower : 'a lmorphvar list; + { mutable vlower : 'a lmorphvar VarMap.t; (** A list of variables directly under the current variable. Each is a pair [f] [v], and we have [f v <= u] where [u] is the current variable. @@ -79,12 +99,14 @@ module Solver_mono (C : Lattices_mono) = struct and ('b, 'd) morphvar = | Amorphvar : 'a var * ('a, 'b, 'd) C.morph -> ('b, 'd) morphvar + let get_key (Amorphvar (v, m)) = v.id, Any_morph m + module VarSet = Set.Make (Int) type change = | Cupper : 'a var * 'a -> change | Clower : 'a var * 'a -> change - | Cvlower : 'a var * 'a lmorphvar list -> change + | Cvlower : 'a var * 'a lmorphvar VarMap.t -> change type changes = change list @@ -105,11 +127,11 @@ module Solver_mono (C : Lattices_mono) = struct | Amode : 'a -> ('a, 'l * 'r) mode | Amodevar : ('a, 'd) morphvar -> ('a, 'd) mode | Amodejoin : - 'a * ('a, 'l * disallowed) morphvar list + 'a * ('a, 'l * disallowed) morphvar VarMap.t -> ('a, 'l * disallowed) mode (** [Amodejoin a [mv0, mv1, ..]] represents [a join mv0 join mv1 join ..] *) | Amodemeet : - 'a * ('a, disallowed * 'r) morphvar list + 'a * ('a, disallowed * 'r) morphvar VarMap.t -> ('a, disallowed * 'r) mode (** [Amodemeet a [mv0, mv1, ..]] represents [a meet mv0 meet mv1 meet ..]. *) @@ -143,7 +165,8 @@ module Solver_mono (C : Lattices_mono) = struct else let traversed = VarSet.add v.id traversed in let p = print_morphvar ~traversed obj in - Format.fprintf ppf "{%a}" (Format.pp_print_list p) v.vlower + Format.fprintf ppf "{%a}" (Format.pp_print_list p) + (var_map_to_list v.vlower) and print_morphvar : type a d. ?traversed:VarSet.t -> a C.obj -> _ -> (a, d) morphvar -> _ = @@ -165,13 +188,13 @@ module Solver_mono (C : Lattices_mono) = struct (Format.pp_print_list ~pp_sep:(fun ppf () -> Format.fprintf ppf ",") (print_morphvar ?traversed obj)) - mvs + (var_map_to_list mvs) | Amodemeet (a, mvs) -> Format.fprintf ppf "meet(%a,%a)" (C.print obj) a (Format.pp_print_list ~pp_sep:(fun ppf () -> Format.fprintf ppf ",") (print_morphvar ?traversed obj)) - mvs + (var_map_to_list mvs) module Morphvar = Magic_allow_disallow (struct type ('a, _, 'd) sided = ('a, 'd) morphvar constraint 'd = 'l * 'r @@ -202,27 +225,31 @@ module Solver_mono (C : Lattices_mono) = struct function | Amode c -> Amode c | Amodevar mv -> Amodevar (Morphvar.allow_left mv) - | Amodejoin (c, mvs) -> Amodejoin (c, List.map Morphvar.allow_left mvs) + | Amodejoin (c, mvs) -> Amodejoin (c, VarMap.map Morphvar.allow_left mvs) let allow_right : type a l r. (a, l * allowed) mode -> (a, l * r) mode = function | Amode c -> Amode c | Amodevar mv -> Amodevar (Morphvar.allow_right mv) - | Amodemeet (c, mvs) -> Amodemeet (c, List.map Morphvar.allow_right mvs) + | Amodemeet (c, mvs) -> Amodemeet (c, VarMap.map Morphvar.allow_right mvs) let disallow_left : type a l r. (a, l * r) mode -> (a, disallowed * r) mode = function | Amode c -> Amode c | Amodevar mv -> Amodevar (Morphvar.disallow_left mv) - | Amodejoin (c, mvs) -> Amodejoin (c, List.map Morphvar.disallow_left mvs) - | Amodemeet (c, mvs) -> Amodemeet (c, List.map Morphvar.disallow_left mvs) + | Amodejoin (c, mvs) -> + Amodejoin (c, VarMap.map Morphvar.disallow_left mvs) + | Amodemeet (c, mvs) -> + Amodemeet (c, VarMap.map Morphvar.disallow_left mvs) let disallow_right : type a l r. (a, l * r) mode -> (a, l * disallowed) mode = function | Amode c -> Amode c | Amodevar mv -> Amodevar (Morphvar.disallow_right mv) - | Amodejoin (c, mvs) -> Amodejoin (c, List.map Morphvar.disallow_right mvs) - | Amodemeet (c, mvs) -> Amodemeet (c, List.map Morphvar.disallow_right mvs) + | Amodejoin (c, mvs) -> + Amodejoin (c, VarMap.map Morphvar.disallow_right mvs) + | Amodemeet (c, mvs) -> + Amodemeet (c, VarMap.map Morphvar.disallow_right mvs) end) let mlower dst (Amorphvar (var, morph)) = C.apply dst morph var.lower @@ -246,9 +273,9 @@ module Solver_mono (C : Lattices_mono) = struct | Amode a -> Amode (C.apply dst morph a) | Amodevar mv -> Amodevar (apply_morphvar dst morph mv) | Amodejoin (a, vs) -> - Amodejoin (C.apply dst morph a, List.map (apply_morphvar dst morph) vs) + Amodejoin (C.apply dst morph a, VarMap.map (apply_morphvar dst morph) vs) | Amodemeet (a, vs) -> - Amodemeet (C.apply dst morph a, List.map (apply_morphvar dst morph) vs) + Amodemeet (C.apply dst morph a, VarMap.map (apply_morphvar dst morph) vs) (** Arguments are not checked and used directly. They must satisfy the INVARIANT listed above. *) @@ -283,7 +310,7 @@ module Solver_mono (C : Lattices_mono) = struct then Error v.upper else ( update_lower ~log obj v a'; - if C.le obj v.upper v.lower then set_vlower ~log v []; + if C.le obj v.upper v.lower then set_vlower ~log v VarMap.empty; Ok ()) let submode_cmv : @@ -330,7 +357,7 @@ module Solver_mono (C : Lattices_mono) = struct then update_lower ~log obj v mu_lower); r) in - if C.le obj v.upper v.lower then set_vlower ~log v []; + if C.le obj v.upper v.lower then set_vlower ~log v VarMap.empty; r) and submode_mvc : @@ -371,8 +398,6 @@ module Solver_mono (C : Lattices_mono) = struct disallow_left (disallow_right mv0) == disallow_left (disallow_right mv1)) || match C.eq_morph f0 f1 with None -> false | Some Refl -> v0 == v1 - let exists mu mvs = List.exists (fun mv -> eq_morphvar mv mu) mvs - let submode_mvmv (type a) ~log (dst : a C.obj) (Amorphvar (v, f) as mv) (Amorphvar (u, g) as mu) = if C.le dst (mupper dst mv) (mlower dst mu) @@ -398,7 +423,8 @@ module Solver_mono (C : Lattices_mono) = struct let src = C.src dst g in let g'f = C.compose src g' (C.disallow_right f) in let x = Amorphvar (v, g'f) in - if not (exists x u.vlower) then set_vlower ~log u (x :: u.vlower); + if not (VarMap.exists (fun _ mv -> eq_morphvar mv x) u.vlower) + then set_vlower ~log u (VarMap.add (get_key x) x u.vlower); Ok ()) let cnt_id = ref 0 @@ -408,7 +434,7 @@ module Solver_mono (C : Lattices_mono) = struct cnt_id := id + 1; let upper = Option.value upper ~default:(C.max obj) in let lower = Option.value lower ~default:(C.min obj) in - let vlower = Option.value vlower ~default:[] in + let vlower = Option.value vlower ~default:VarMap.empty in { upper; lower; vlower; id } let submode (type a r l) (obj : a C.obj) (a : (a, allowed * r) mode) @@ -462,20 +488,14 @@ module Solver_mono (C : Lattices_mono) = struct find_error (fun mv -> submode_mvmv ~log obj mv mu) mvs) mus))) - let cons_dedup x xs = if exists x xs then xs else x :: xs + let cons_dedup x xs = VarMap.add (get_key x) x xs - (* Similar to [List.rev_append] but dedup the result (assuming both inputs are - deduped) *) - let rev_append_dedup l0 l1 = - let rec loop rest acc = - match rest with [] -> acc | x :: xs -> loop xs (cons_dedup x acc) - in - loop l0 l1 + let union_prefer_left t0 t1 = VarMap.union (fun _ a _b -> Some a) t0 t1 let join (type a r) obj l = let rec loop : a -> - (a, allowed * disallowed) morphvar list -> + (a, allowed * disallowed) morphvar VarMap.t -> (a, allowed * r) mode list -> (a, allowed * disallowed) mode = fun a mvs rest -> @@ -493,14 +513,14 @@ module Solver_mono (C : Lattices_mono) = struct | Amodevar mv -> loop (C.join obj a (mlower obj mv)) (cons_dedup mv mvs) xs | Amodejoin (b, mvs') -> - loop (C.join obj a b) (rev_append_dedup mvs' mvs) xs) + loop (C.join obj a b) (union_prefer_left mvs' mvs) xs) in - loop (C.min obj) [] l + loop (C.min obj) VarMap.empty l let meet (type a l) obj l = let rec loop : a -> - (a, disallowed * allowed) morphvar list -> + (a, disallowed * allowed) morphvar VarMap.t -> (a, l * allowed) mode list -> (a, disallowed * allowed) mode = fun a mvs rest -> @@ -518,9 +538,9 @@ module Solver_mono (C : Lattices_mono) = struct | Amodevar mv -> loop (C.meet obj a (mupper obj mv)) (cons_dedup mv mvs) xs | Amodemeet (b, mvs') -> - loop (C.meet obj a b) (rev_append_dedup mvs' mvs) xs) + loop (C.meet obj a b) (union_prefer_left mvs' mvs) xs) in - loop (C.max obj) [] l + loop (C.max obj) VarMap.empty l let get_conservative_ceil : type a l r. a C.obj -> (a, l * r) mode -> a = fun obj m -> @@ -528,9 +548,9 @@ module Solver_mono (C : Lattices_mono) = struct | Amode a -> a | Amodevar mv -> mupper obj mv | Amodemeet (a, mvs) -> - List.fold_left (fun acc mv -> C.meet obj acc (mupper obj mv)) a mvs + VarMap.fold (fun _ mv acc -> C.meet obj acc (mupper obj mv)) mvs a | Amodejoin (a, mvs) -> - List.fold_left (fun acc mv -> C.join obj acc (mupper obj mv)) a mvs + VarMap.fold (fun _ mv acc -> C.join obj acc (mupper obj mv)) mvs a let get_conservative_floor : type a l r. a C.obj -> (a, l * r) mode -> a = fun obj m -> @@ -538,9 +558,9 @@ module Solver_mono (C : Lattices_mono) = struct | Amode a -> a | Amodevar mv -> mlower obj mv | Amodejoin (a, mvs) -> - List.fold_left (fun acc mv -> C.join obj acc (mupper obj mv)) a mvs + VarMap.fold (fun _ mv acc -> C.join obj acc (mupper obj mv)) mvs a | Amodemeet (a, mvs) -> - List.fold_left (fun acc mv -> C.meet obj acc (mlower obj mv)) a mvs + VarMap.fold (fun _ mv acc -> C.meet obj acc (mlower obj mv)) mvs a (* Due to our biased implementation, the ceil is precise. *) let get_ceil = get_conservative_ceil @@ -596,13 +616,13 @@ module Solver_mono (C : Lattices_mono) = struct | Amodevar mv -> zap_to_floor_morphvar obj mv ~commit:log | Amodejoin (a, mvs) -> let floor = - List.fold_left - (fun acc mv -> + VarMap.fold + (fun _ mv acc -> C.join obj acc (zap_to_floor_morphvar obj mv ~commit:None)) - a mvs + mvs a in - List.iter - (fun mv -> assert (submode_mvc obj mv floor ~log |> Result.is_ok)) + VarMap.iter + (fun _ mv -> assert (submode_mvc obj mv floor ~log |> Result.is_ok)) mvs; floor @@ -612,10 +632,10 @@ module Solver_mono (C : Lattices_mono) = struct | Amode a -> a | Amodevar mv -> zap_to_floor_morphvar obj mv ~commit:None | Amodejoin (a, mvs) -> - List.fold_left - (fun acc mv -> + VarMap.fold + (fun _ mv acc -> C.join obj acc (zap_to_floor_morphvar obj mv ~commit:None)) - a mvs + mvs a let print : type a l r. @@ -639,7 +659,11 @@ module Solver_mono (C : Lattices_mono) = struct (* [~lower] is not precise (because [mlower mv] is not precise), but it doesn't need to be *) ( Amodevar - (Amorphvar (fresh ~lower:(mlower obj mv) ~vlower:[mv] obj, C.id)), + (Amorphvar + ( fresh ~lower:(mlower obj mv) + ~vlower:(VarMap.singleton (get_key mv) mv) + obj, + C.id )), true ) | Amodejoin (a, mvs) -> (* [~lower] is not precise here, but it doesn't need to be *) @@ -660,8 +684,8 @@ module Solver_mono (C : Lattices_mono) = struct let u = fresh obj in let mu = Amorphvar (u, C.id) in assert (Result.is_ok (submode_mvc obj ~log:None mu a)); - List.iter - (fun mv -> assert (Result.is_ok (submode_mvmv obj ~log:None mu mv))) + VarMap.iter + (fun _ mv -> assert (Result.is_ok (submode_mvmv obj ~log:None mu mv))) mvs; allow_left (Amodevar mu), true end diff --git a/upstream/ocaml_flambda/typing/tast_iterator.ml b/upstream/ocaml_flambda/typing/tast_iterator.ml index 5566b7a83..ed8024b88 100644 --- a/upstream/ocaml_flambda/typing/tast_iterator.ml +++ b/upstream/ocaml_flambda/typing/tast_iterator.ml @@ -351,8 +351,8 @@ let expr sub {exp_loc; exp_extra; exp_desc; exp_env; exp_attributes; _} = | _, Kept _ -> () | _, Overridden (lid, exp) -> iter_loc sub lid; sub.expr sub exp) fields; - Option.iter (sub.expr sub) extended_expression; - | Texp_field (exp, lid, _, _) -> + Option.iter (fun (exp, _) -> sub.expr sub exp) extended_expression; + | Texp_field (exp, lid, _, _, _) -> iter_loc sub lid; sub.expr sub exp | Texp_setfield (exp1, _, lid, _, exp2) -> @@ -707,7 +707,14 @@ let value_binding sub ({vb_loc; vb_pat; vb_expr; vb_attributes; _} as vb) = let env _sub _ = () -let jkind_annotation sub (_, l) = iter_loc sub l +let jkind_annotation sub ((_, l) : Jkind.annotation) = + (* iterate over locations contained within parsetree jkind annotation *) + let ast_iterator = + { Ast_iterator.default_iterator + with location = (fun _this loc -> sub.location sub loc) + } + in + ast_iterator.jkind_annotation ast_iterator l let item_declaration _sub _ = () diff --git a/upstream/ocaml_flambda/typing/tast_mapper.ml b/upstream/ocaml_flambda/typing/tast_mapper.ml index 7f45c94bd..f02bbe1f2 100644 --- a/upstream/ocaml_flambda/typing/tast_mapper.ml +++ b/upstream/ocaml_flambda/typing/tast_mapper.ml @@ -485,11 +485,12 @@ let expr sub x = in Texp_record { fields; representation; - extended_expression = Option.map (sub.expr sub) extended_expression; + extended_expression = + Option.map (fun (exp, ubr) -> (sub.expr sub exp, ubr)) extended_expression; alloc_mode } - | Texp_field (exp, lid, ld, float) -> - Texp_field (sub.expr sub exp, map_loc sub lid, ld, float) + | Texp_field (exp, lid, ld, float, ubr) -> + Texp_field (sub.expr sub exp, map_loc sub lid, ld, float, ubr) | Texp_setfield (exp1, am, lid, ld, exp2) -> Texp_setfield ( sub.expr sub exp1, @@ -987,7 +988,14 @@ let value_binding sub x = let env _sub x = x -let jkind_annotation sub (c, l) = (c, map_loc sub l) +let jkind_annotation sub (c, annot) = + (* map over locations contained within parsetree jkind annotation *) + let ast_mapper = + { Ast_mapper.default_mapper + with location = (fun _this loc -> sub.location sub loc) + } + in + (c, ast_mapper.jkind_annotation ast_mapper annot) let default = { diff --git a/upstream/ocaml_flambda/typing/typeclass.ml b/upstream/ocaml_flambda/typing/typeclass.ml index 804f94d57..bf41ff585 100644 --- a/upstream/ocaml_flambda/typing/typeclass.ml +++ b/upstream/ocaml_flambda/typing/typeclass.ml @@ -2137,7 +2137,7 @@ let check_recmod_decl env sdecl = (* Approximate the class declaration as class ['params] id = object end *) let approx_class sdecl = let open Ast_helper in - let self' = Typ.any () in + let self' = Typ.any None in let clty' = Cty.signature ~loc:sdecl.pci_expr.pcty_loc (Csig.mk self' []) in { sdecl with pci_expr = clty' } diff --git a/upstream/ocaml_flambda/typing/typecore.ml b/upstream/ocaml_flambda/typing/typecore.ml index 973a459dd..2da6dbb0e 100644 --- a/upstream/ocaml_flambda/typing/typecore.ml +++ b/upstream/ocaml_flambda/typing/typecore.ml @@ -262,6 +262,7 @@ type error = | Cannot_stack_allocate of Env.locality_context option | Unsupported_stack_allocation of unsupported_stack_allocation | Not_allocation + | Impossible_function_jkind of type_expr * jkind_lr exception Error of Location.t * Env.t * error exception Error_forward of Location.error @@ -747,22 +748,15 @@ let constant : Parsetree.constant -> (Typedtree.constant, error) result = if Language_extension.is_enabled Small_numbers then Ok (Const_float32 f) else Error (Float32_literal f) | Pconst_float (f,Some c) -> Error (Unknown_literal (f, c)) - -let constant_or_raise env loc cst = - match constant cst with - | Ok c -> c - | Error err -> raise (Error (loc, env, err)) - -let unboxed_constant : Jane_syntax.Layouts.constant -> (Typedtree.constant, error) result - = function - | Float (f, None) -> Ok (Const_unboxed_float f) - | Float (f, Some 's') -> - if Language_extension.is_enabled Small_numbers then Ok (Const_unboxed_float32 f) - else Error (Float32_literal (Misc.format_as_unboxed_literal f)) - | Float (x, Some c) -> - Error (Unknown_literal (Misc.format_as_unboxed_literal x, c)) - | Integer (i, suffix) -> - begin match constant_integer i ~suffix with + | Pconst_unboxed_float (f, None) -> + Ok (Const_unboxed_float f) + | Pconst_unboxed_float (f, Some 's') -> + if Language_extension.is_enabled Small_numbers then Ok (Const_unboxed_float32 f) + else Error (Float32_literal (Misc.format_as_unboxed_literal f)) + | Pconst_unboxed_float (x, Some c) -> + Error (Unknown_literal (Misc.format_as_unboxed_literal x, c)) + | Pconst_unboxed_integer (i, suffix) -> + begin match constant_integer i ~suffix with | Ok (Int32 v) -> Ok (Const_unboxed_int32 v) | Ok (Int64 v) -> Ok (Const_unboxed_int64 v) | Ok (Nativeint v) -> Ok (Const_unboxed_nativeint v) @@ -770,12 +764,24 @@ let unboxed_constant : Jane_syntax.Layouts.constant -> (Typedtree.constant, erro | Error Int64_literal_overflow -> Error (Literal_overflow "int64#") | Error Nativeint_literal_overflow -> Error (Literal_overflow "nativeint#") | Error Unknown_constant_literal -> - Error (Unknown_literal (Misc.format_as_unboxed_literal i, suffix)) - end + Error (Unknown_literal (Misc.format_as_unboxed_literal i, suffix)) + end -let unboxed_constant_or_raise env loc cst = - match unboxed_constant cst with - | Ok c -> c +let constant_or_raise env loc cst = + match constant cst with + | Ok c -> + (match c with + | Const_unboxed_int32 _ + | Const_unboxed_int64 _ + | Const_unboxed_nativeint _ + | Const_unboxed_float _ + | Const_unboxed_float32 _ -> + Language_extension.assert_enabled ~loc Layouts + Language_extension.Stable + | Const_int _ | Const_char _ | Const_string _ | Const_float _ + | Const_float32 _ | Const_int32 _ | Const_int64 _ | Const_nativeint _ -> + ()); + c | Error err -> raise (Error (loc, env, err)) (* Specific version of type_option, using newty rather than newgenty *) @@ -886,13 +892,19 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let expect_mode_cross env ty (expected_mode : expected_mode) = - if not (is_principal ty) then expected_mode else - let jkind = type_jkind_purely env ty in +let expect_mode_cross_jkind jkind (expected_mode : expected_mode) = let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in mode_morph (Value.imply upper_bounds) expected_mode +let expect_mode_cross env ty (expected_mode : expected_mode) = + if not (is_principal ty) then expected_mode else + let jkind = type_jkind_purely env ty in + expect_mode_cross_jkind jkind expected_mode + +(** The expected mode for objects *) +let mode_object = expect_mode_cross_jkind Jkind.for_object mode_legacy + let mode_annots_from_pat pat = let modes = match pat.ppat_desc with @@ -1784,7 +1796,7 @@ let build_or_pat env loc lid = let f = rf_either [ty] ~no_arg:false ~matched:true in (l, Some {pat_desc=Tpat_any; pat_loc=Location.none; pat_env=env; pat_type=ty; pat_extra=[]; - pat_attributes=[]}) + pat_attributes=[];pat_unique_barrier=Unique_barrier.not_computed () }) :: pats, (l, f) :: fields | _ -> pats, fields) @@ -1804,7 +1816,8 @@ let build_or_pat env loc lid = (fun (l,p) -> {pat_desc=Tpat_variant(l,p,row'); pat_loc=gloc; pat_env=env; pat_type=ty; - pat_extra=[]; pat_attributes=[]}) + pat_extra=[]; pat_attributes=[]; + pat_unique_barrier=Unique_barrier.not_computed () }) pats in match pats with @@ -1818,7 +1831,7 @@ let build_or_pat env loc lid = (fun pat pat0 -> {pat_desc=Tpat_or(pat0,pat,Some row0); pat_extra=[]; pat_loc=gloc; pat_env=env; pat_type=ty; - pat_attributes=[]}) + pat_attributes=[]; pat_unique_barrier=Unique_barrier.not_computed () }) pat pats in (path, rp { r with pat_loc = loc }) @@ -2368,9 +2381,7 @@ let split_half_typed_cases env zipped_cases = ) zipped_cases ([], []) let rec has_literal_pattern p = - match Jane_syntax.Pattern.of_ast p with - | Some (jpat, _attrs) -> has_literal_pattern_jane_syntax jpat - | None -> match p.ppat_desc with + match p.ppat_desc with | Ppat_constant _ | Ppat_interval _ -> true @@ -2391,7 +2402,7 @@ let rec has_literal_pattern p = | Ppat_open (_, p) -> has_literal_pattern p | Ppat_tuple (ps, _) -> has_literal_pattern_labeled_tuple ps - | Ppat_array ps -> + | Ppat_array (_, ps) -> List.exists has_literal_pattern ps | Ppat_unboxed_tuple (ps, _) -> has_literal_pattern_labeled_tuple ps | Ppat_record (ps, _) -> @@ -2399,11 +2410,6 @@ let rec has_literal_pattern p = | Ppat_or (p, q) -> has_literal_pattern p || has_literal_pattern q -and has_literal_pattern_jane_syntax : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array (Iapat_immutable_array ps) -> - List.exists has_literal_pattern ps - | Jpat_layout (Lpat_constant _) -> true - and has_literal_pattern_labeled_tuple labeled_ps = List.exists (fun (_, p) -> has_literal_pattern p) labeled_ps @@ -2525,7 +2531,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = instance expected_ty; pat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } in let type_tuple_pat spl closed = (* CR layouts v5: consider sharing code with [type_unboxed_tuple_pat] below @@ -2535,8 +2542,7 @@ and type_pat_aux (* If it's a principally-known tuple pattern, try to reorder *) | Ttuple labeled_tl when is_principal expected_ty -> begin match closed with - | Open -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples () + | Open -> Language_extension.assert_enabled ~loc Labeled_tuples () | Closed -> () end; reorder_pat loc penv spl closed labeled_tl expected_ty @@ -2551,8 +2557,9 @@ and type_pat_aux in let pl = List.map (fun (lbl, p, t, alloc_mode) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) lbl; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + lbl; lbl, type_pat tps Value ~alloc_mode p t) spl_ann in @@ -2561,18 +2568,18 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = newty (Ttuple (List.map (fun (lbl, p) -> lbl, p.pat_type) pl)); pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } in let type_unboxed_tuple_pat spl closed = - Jane_syntax_parsing.assert_extension_enabled ~loc Layouts - Language_extension.Beta; + Language_extension.assert_enabled ~loc Layouts + Language_extension.Stable; let args = match get_desc (expand_head !!penv expected_ty) with (* If it's a principally-known tuple pattern, try to reorder *) | Tunboxed_tuple labeled_tl when is_principal expected_ty -> begin match closed with - | Open -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples () + | Open -> Language_extension.assert_enabled ~loc Labeled_tuples () | Closed -> () end; reorder_pat loc penv spl closed labeled_tl expected_ty @@ -2588,8 +2595,9 @@ and type_pat_aux in let pl = List.map (fun (lbl, p, t, alloc_mode, sort) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) lbl; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + lbl; lbl, type_pat tps Value ~alloc_mode p t, sort) spl_ann in @@ -2601,27 +2609,9 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } - in - match Jane_syntax.Pattern.of_ast sp with - | Some (jpat, attrs) -> begin - (* Normally this would go to an auxiliary function, but this function - takes so many parameters, has such a complex type, and uses so many - local definitions, it seems better to just put the pattern matching - here. This shouldn't mess up the diff *too* much. *) - match jpat with - | Jpat_immutable_array (Iapat_immutable_array spl) -> - type_pat_array Immutable spl attrs - | Jpat_layout (Lpat_constant cst) -> - let cst = unboxed_constant_or_raise !!penv loc cst in - rvp @@ solve_expected { - pat_desc = Tpat_constant cst; - pat_loc = loc; pat_extra=[]; - pat_type = type_constant cst; - pat_attributes = attrs; - pat_env = !!penv } - end - | None -> + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } + in match sp.ppat_desc with Ppat_any -> rvp { @@ -2629,7 +2619,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = instance expected_ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_var name -> let ty = instance expected_ty in let alloc_mode = @@ -2643,7 +2634,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_unpack name -> let t = instance expected_ty in begin match name.txt with @@ -2654,7 +2646,8 @@ and type_pat_aux pat_extra=[Tpat_unpack, name.loc, sp.ppat_attributes]; pat_type = t; pat_attributes = []; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Some s -> let v = { name with txt = s } in (* We're able to pass ~is_module:true here without an error because @@ -2668,7 +2661,8 @@ and type_pat_aux pat_extra=[Tpat_unpack, loc, sp.ppat_attributes]; pat_type = t; pat_attributes = []; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } end | Ppat_alias(sq, name) -> let q = type_pat tps Value sq expected_ty in @@ -2682,7 +2676,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = q.pat_type; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_constant cst -> let cst = constant_or_raise !!penv loc cst in rvp @@ solve_expected { @@ -2690,7 +2685,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = type_constant cst; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_interval (Pconst_char c1, Pconst_char c2) -> let open Ast_helper.Pat in let gloc = Location.ghostify loc in @@ -2751,10 +2747,7 @@ and type_pat_aux match sarg' with None -> [] | Some sarg' -> - match Jane_syntax.Pattern.of_ast sarg' with - | Some ((Jpat_immutable_array _, _) - | (Jpat_layout _, _)) -> [sarg'] - | None -> match sarg' with + match sarg' with | {ppat_desc = Ppat_tuple (spl, _)} as sp when constr.cstr_arity > 1 || Builtin_attributes.explicit_arity sp.ppat_attributes @@ -2816,7 +2809,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = instance expected_ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_variant(tag, sarg) -> assert (tag <> Parmatch.some_private_tag); let constant = (sarg = None) in @@ -2833,7 +2827,8 @@ and type_pat_aux pat_loc = loc; pat_extra = []; pat_type = pat_type; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_record(lid_sp_list, closed) -> assert (lid_sp_list <> []); let expected_type, record_ty = @@ -2866,6 +2861,7 @@ and type_pat_aux pat_type = instance record_ty; pat_attributes = sp.ppat_attributes; pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed (); } in let lbl_a_list = @@ -2877,9 +2873,15 @@ and type_pat_aux in let lbl_a_list = List.map type_label_pat lbl_a_list in rvp @@ solve_expected (make_record_pat lbl_a_list) - | Ppat_array spl -> - type_pat_array (Mutable Alloc.Comonadic.Const.legacy) - spl sp.ppat_attributes + | Ppat_array (mut, spl) -> + let mut = + match mut with + | Mutable -> Mutable Alloc.Comonadic.Const.legacy + | Immutable -> + Language_extension.assert_enabled ~loc Immutable_arrays (); + Immutable + in + type_pat_array mut spl sp.ppat_attributes | Ppat_or(sp1, sp2) -> (* Reset pattern forces for just [tps2] because later we append [tps1] and [tps2]'s pattern forces, and we don't want to duplicate [tps]'s pattern @@ -2932,7 +2934,8 @@ and type_pat_aux pat_loc = loc; pat_extra = []; pat_type = instance expected_ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_lazy sp1 -> submode ~loc ~env:!!penv alloc_mode.mode mode_force_lazy; let nv = solve_Ppat_lazy ~refine:false loc penv expected_ty in @@ -2943,7 +2946,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = instance expected_ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_constraint(sp_constrained, sty, ms) -> (* Pretend separate = true *) begin match sty with @@ -2985,6 +2989,7 @@ and type_pat_aux pat_type = expected_ty; pat_env = !!penv; pat_attributes = sp.ppat_attributes; + pat_unique_barrier = Unique_barrier.not_computed (); } | Ppat_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) @@ -3120,9 +3125,6 @@ let combine_pat_tuple_arity a b = else Not_local_tuple let rec pat_tuple_arity spat = - match Jane_syntax.Pattern.of_ast spat with - | Some (jpat, _attrs) -> pat_tuple_arity_jane_syntax jpat - | None -> match spat.ppat_desc with | Ppat_tuple (args, _) -> Local_tuple (List.length args) | Ppat_unboxed_tuple (args,_c) -> Local_tuple (List.length args) @@ -3135,10 +3137,6 @@ let rec pat_tuple_arity spat = combine_pat_tuple_arity (pat_tuple_arity sp1) (pat_tuple_arity sp2) | Ppat_constraint(p, _, _) | Ppat_open(_, p) | Ppat_alias(p, _) -> pat_tuple_arity p -and pat_tuple_arity_jane_syntax : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array (Iapat_immutable_array _) -> Not_local_tuple - | Jpat_layout (Lpat_constant _) -> Not_local_tuple - let rec cases_tuple_arity cases = match cases with | [] -> Maybe_local_tuple @@ -3318,7 +3316,8 @@ let rec check_counter_example_pat (* "make pattern" and "make pattern then continue" *) let mp ?(pat_type = expected_ty) desc = { pat_desc = desc; pat_loc = loc; pat_extra=[]; - pat_type = instance pat_type; pat_attributes = []; pat_env = !!penv } in + pat_type = instance pat_type; pat_attributes = []; pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } in let mkp k ?pat_type desc = k (mp ?pat_type desc) in let must_backtrack_on_gadt = match info.splitting_mode with @@ -3345,11 +3344,7 @@ let rec check_counter_example_pat end | Tpat_alias (p, _, _, _, _) -> check_rec ~info p expected_ty k | Tpat_constant cst -> - let cst = - match Untypeast.constant cst with - | `Parsetree cst -> constant_or_raise !!penv loc cst - | `Jane_syntax cst -> unboxed_constant_or_raise !!penv loc cst - in + let cst = constant_or_raise !!penv loc (Untypeast.constant cst) in k @@ solve_expected (mp (Tpat_constant cst) ~pat_type:(type_constant cst)) | Tpat_tuple tpl -> let tpl_ann = @@ -3702,7 +3697,7 @@ let collect_unknown_apply_args env funct ty_fun mode_fun rev_args sargs ret_tvar let (sort_arg, mode_arg, ty_arg_mono, mode_ret, ty_res) = let ty_fun = expand_head env ty_fun in match get_desc ty_fun with - | Tvar _ -> + | Tvar { jkind; _ } -> let ty_arg_mono, sort_arg = new_rep_var ~why:Function_argument () in let ty_arg = newmono ty_arg_mono in let ty_res = @@ -3717,8 +3712,14 @@ let collect_unknown_apply_args env funct ty_fun mode_fun rev_args sargs ret_tvar let mode_arg = Alloc.newvar () in let mode_ret = Alloc.newvar () in let kind = (lbl, mode_arg, mode_ret) in - unify env ty_fun - (newty (Tarrow(kind,ty_arg,ty_res,commu_var ()))); + begin try + unify env ty_fun + (newty (Tarrow(kind,ty_arg,ty_res,commu_var ()))); + with + | Unify _ -> + raise(Error(funct.exp_loc, env, + Impossible_function_jkind (ty_fun, jkind))) + end; (sort_arg, mode_arg, ty_arg_mono, mode_ret, ty_res) | Tarrow ((l, mode_arg, mode_ret), ty_arg, ty_res, _) when labels_match ~param:l ~arg:lbl -> @@ -3976,8 +3977,8 @@ let rec is_nonexpansive exp = lbl.lbl_mut = Immutable && is_nonexpansive exp | Kept _ -> true) fields - && is_nonexpansive_opt extended_expression - | Texp_field(exp, _, _, _) -> is_nonexpansive exp + && is_nonexpansive_opt (Option.map fst extended_expression) + | Texp_field(exp, _, _, _, _) -> is_nonexpansive exp | Texp_ifthenelse(_cond, ifso, ifnot) -> is_nonexpansive ifso && is_nonexpansive_opt ifnot | Texp_sequence (_e1, _jkind, e2) -> is_nonexpansive e2 (* PR#4354 *) @@ -4125,9 +4126,6 @@ let loc_rest_of_function let approx_type_default () = newvar (Jkind.Builtin.any ~why:Dummy_jkind) let rec approx_type env sty = - match Jane_syntax.Core_type.of_ast sty with - | Some (jty, attrs) -> approx_type_jst env attrs jty - | None -> match sty.ptyp_desc with | Ptyp_arrow (p, ({ ptyp_desc = Ptyp_poly _ } as arg_sty), sty, arg_mode, _) -> let p = Typetexp.transl_label p (Some arg_sty) in @@ -4170,19 +4168,7 @@ let rec approx_type env sty = end | _ -> approx_type_default () -and approx_type_jst _env _attrs : Jane_syntax.Core_type.t -> _ = function - | Jtyp_layout (Ltyp_var _) -> approx_type_default () - | Jtyp_layout (Ltyp_poly _) -> approx_type_default () - | Jtyp_layout (Ltyp_alias _) -> approx_type_default () - -let type_pattern_approx_jane_syntax : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array _ - | Jpat_layout (Lpat_constant _) -> () - let type_pattern_approx env spat ty_expected = - match Jane_syntax.Pattern.of_ast spat with - | Some (jpat, _attrs) -> type_pattern_approx_jane_syntax jpat - | None -> match spat.ppat_desc with | Ppat_constraint(_, Some sty, arg_type_mode) -> let inferred_ty = @@ -4257,9 +4243,7 @@ let type_approx_fun_one_param let rec type_approx env sexp ty_expected = let loc = sexp.pexp_loc in - match Jane_syntax.Expression.of_ast sexp with - | Some (jexp, _attrs) -> type_approx_aux_jane_syntax jexp - | None -> match sexp.pexp_desc with + match sexp.pexp_desc with Pexp_let (_, _, e) -> type_approx env e ty_expected | Pexp_function (params, c, body) -> type_approx_function env params c body ty_expected ~loc @@ -4284,15 +4268,6 @@ let rec type_approx env sexp ty_expected = type_approx env e ty_expected | _ -> () -and type_approx_aux_jane_syntax - (jexp : Jane_syntax.Expression.t) - = - match jexp with - | Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout (Lexp_constant _) - | Jexp_layout (Lexp_newtype _) -> () - and type_tuple_approx (env: Env.t) loc ty_expected l = let labeled_tys = List.map (fun (label, _) -> label, newvar (Jkind.Builtin.value_or_null ~why:Tuple_element)) l @@ -4569,20 +4544,13 @@ let contains_variant_either ty = let shallow_iter_ppat_labeled_tuple f lst = List.iter (fun (_,p) -> f p) lst -let shallow_iter_ppat_jane_syntax f : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array (Iapat_immutable_array pats) -> List.iter f pats - | Jpat_layout (Lpat_constant _) -> () - let shallow_iter_ppat f p = - match Jane_syntax.Pattern.of_ast p with - | Some (jpat, _attrs) -> shallow_iter_ppat_jane_syntax f jpat - | None -> match p.ppat_desc with | Ppat_any | Ppat_var _ | Ppat_constant _ | Ppat_interval _ | Ppat_construct (_, None) | Ppat_extension _ | Ppat_type _ | Ppat_unpack _ -> () - | Ppat_array pats -> List.iter f pats + | Ppat_array (_, pats) -> List.iter f pats | Ppat_or (p1,p2) -> f p1; f p2 | Ppat_variant (_, arg) -> Option.iter f arg | Ppat_tuple (lst, _) -> List.iter (fun (_,p) -> f p) lst @@ -4634,9 +4602,7 @@ let may_contain_gadts p = labeled tuple patterns as well. *) let turn_let_into_match p = exists_ppat (fun p -> - match Jane_syntax.Pattern.of_ast p with - | Some ((Jpat_layout _ | Jpat_immutable_array _), _) -> false - | None -> match p.ppat_desc with + match p.ppat_desc with | Ppat_construct _ -> true | Ppat_tuple (_, Open) -> true | Ppat_tuple (ps, _) when components_have_label ps -> true @@ -4733,9 +4699,7 @@ let is_exclave_extension_node = function the "expected type" provided by the context. *) let rec is_inferred sexp = - match Jane_syntax.Expression.of_ast sexp with - | Some (jexp, _attrs) -> is_inferred_jane_syntax jexp - | None -> match sexp.pexp_desc with + match sexp.pexp_desc with | Pexp_apply ({ pexp_desc = Pexp_extension({ txt }, PStr []) }, [Nolabel, sbody]) when is_exclave_extension_node txt -> @@ -4747,11 +4711,6 @@ let rec is_inferred sexp = | Pexp_ifthenelse (_, e1, Some e2) -> is_inferred e1 && is_inferred e2 | _ -> false -and is_inferred_jane_syntax : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout (Lexp_constant _ | Lexp_newtype _) -> false - (* check if the type of %apply or %revapply matches the type expected by the specialized typing rule for those primitives. *) @@ -5063,7 +5022,8 @@ let vb_exp_constraint {pvb_expr=expr; pvb_pat=pat; pvb_constraint=ct; pvb_modes= | Some (Pvc_constraint { locally_abstract_univars;typ}) -> let loc = Location.merge [ loc; pat.ppat_loc ] in let expr = Exp.constraint_ ~loc expr (Some typ) modes in - List.fold_right (Exp.newtype ~loc) locally_abstract_univars expr + let mk_newtype name body = Exp.newtype ~loc name None body in + List.fold_right mk_newtype locally_abstract_univars expr let vb_pat_constraint ({pvb_pat=pat; pvb_expr = exp; pvb_modes = modes; _ } as vb) = @@ -5084,7 +5044,8 @@ let vb_pat_constraint Pat.constraint_ ~loc pat (Some typ) modes | Some (Pvc_constraint {locally_abstract_univars=vars; typ }), _, _ -> let varified = Typ.varify_constructors vars typ in - let t = Typ.poly ~loc:typ.ptyp_loc vars varified in + let vars_jkinds = List.map (fun var -> var, None) vars in + let t = Typ.poly ~loc:typ.ptyp_loc vars_jkinds varified in let loc = Location.merge [ loc; t.ptyp_loc ] in Pat.constraint_ ~loc pat (Some t) modes | None, (Ppat_any | Ppat_constraint _), _ -> maybe_add_modes_constraint pat @@ -5192,18 +5153,7 @@ and type_expect_ unify_exp ~sdesc_for_hint:desc env (re exp) (instance ty_expected)); exp in - match Jane_syntax.Expression.of_ast sexp with - | Some (jexp, attributes) -> - type_expect_jane_syntax - ~loc - ~env - ~expected_mode - ~ty_expected - ~explanation - ~rue - ~attributes - jexp - | None -> match desc with + match desc with | Pexp_ident lid -> let path, (actual_mode : Env.actual_mode), desc, kind = type_ident env ~recarg lid @@ -5456,8 +5406,8 @@ and type_expect_ rt, funct in let type_sfunct_args sfunct extra_args = - match Jane_syntax.Expression.of_ast sfunct, sfunct.pexp_desc with - | None, Pexp_apply (sfunct, args) -> + match sfunct.pexp_desc with + | Pexp_apply (sfunct, args) -> type_sfunct sfunct, args @ extra_args | _ -> type_sfunct sfunct, extra_args @@ -5753,7 +5703,8 @@ and type_expect_ end in let label_definitions = Array.map unify_kept lbl.lbl_all in - Some {exp with exp_type = ty_exp}, label_definitions + let ubr = Unique_barrier.not_computed () in + Some ({exp with exp_type = ty_exp}, ubr), label_definitions in let num_fields = match lbl_exp_list with [] -> assert false @@ -5772,7 +5723,7 @@ and type_expect_ exp_desc = Texp_record { fields; representation; extended_expression = opt_exp; - alloc_mode + alloc_mode; }; exp_loc = loc; exp_extra = []; exp_type = instance ty_expected; @@ -5822,7 +5773,7 @@ and type_expect_ Non_boxing uu in rue { - exp_desc = Texp_field(record, lid, label, boxing); + exp_desc = Texp_field(record, lid, label, boxing, Unique_barrier.not_computed ()); exp_loc = loc; exp_extra = []; exp_type = ty_arg; exp_attributes = sexp.pexp_attributes; @@ -5855,14 +5806,21 @@ and type_expect_ exp_type = instance Predef.type_unit; exp_attributes = sexp.pexp_attributes; exp_env = env } - | Pexp_array(sargl) -> + | Pexp_array(mut, sargl) -> + let mutability = + match mut with + | Mutable -> Mutable Alloc.Comonadic.Const.legacy + | Immutable -> + Language_extension.assert_enabled ~loc Immutable_arrays (); + Immutable + in type_generic_array ~loc ~env ~expected_mode ~ty_expected ~explanation - ~mutability:(Mutable Alloc.Comonadic.Const.legacy) + ~mutability ~attributes:sexp.pexp_attributes sargl | Pexp_ifthenelse(scond, sifso, sifnot) -> @@ -6289,9 +6247,9 @@ and type_expect_ in re { exp with exp_extra = (Texp_poly cty, loc, sexp.pexp_attributes) :: exp.exp_extra } - | Pexp_newtype(name, sbody) -> + | Pexp_newtype(name, jkind, sbody) -> type_newtype_expr ~loc ~env ~expected_mode ~rue ~attributes:sexp.pexp_attributes - name None sbody + name jkind sbody | Pexp_pack m -> (* CR zqian: pass [expected_mode] to [type_package] *) submode ~loc ~env Value.legacy expected_mode; @@ -6498,7 +6456,11 @@ and type_expect_ exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_stack e -> - let exp = type_expect env expected_mode e ty_expected_explained in + let expected_mode' = + mode_morph (Value.join_with (Comonadic Areality) Regionality.Const.Local) + expected_mode + in + let exp = type_expect env expected_mode' e ty_expected_explained in let unsupported category = raise (Error (exp.exp_loc, env, Unsupported_stack_allocation category)) in @@ -6508,11 +6470,11 @@ and type_expect_ | Texp_variant (_, Some (_, alloc_mode)) | Texp_record {alloc_mode = Some alloc_mode; _} | Texp_array (_, _, _, alloc_mode) - | Texp_field (_, _, _, Boxing (alloc_mode, _)) -> + | Texp_field (_, _, _, Boxing (alloc_mode, _), _) -> begin match Locality.submode Locality.local (Alloc.proj (Comonadic Areality) alloc_mode.mode) with | Ok () -> () - | Error _ -> raise (Error (exp.exp_loc, env, + | Error _ -> raise (Error (e.pexp_loc, env, Cannot_stack_allocate alloc_mode.locality_context)) end | Texp_list_comprehension _ -> unsupported List_comprehension @@ -6525,8 +6487,18 @@ and type_expect_ | _ -> raise (Error (exp.exp_loc, env, Not_allocation)) end; + submode ~loc ~env (Value.min_with (Comonadic Areality) Regionality.local) + expected_mode; let exp_extra = (Texp_stack, loc, []) :: exp.exp_extra in {exp with exp_extra} + | Pexp_comprehension comp -> + Language_extension.assert_enabled ~loc Comprehensions (); + type_comprehension_expr + ~loc + ~env + ~ty_expected + ~attributes:sexp.pexp_attributes + comp and expression_constraint pexp = { type_without_constraint = (fun env expected_mode -> @@ -7541,7 +7513,8 @@ and type_argument ?explanation ?recarg env (mode : expected_mode) sarg pat_type = ty; pat_extra=[]; pat_attributes = []; - pat_loc = Location.none; pat_env = env}, + pat_loc = Location.none; pat_env = env; + pat_unique_barrier = Unique_barrier.not_computed () }, {exp_type = ty; exp_loc = Location.none; exp_env = exp_env; exp_extra = []; exp_attributes = []; exp_desc = @@ -7837,8 +7810,9 @@ and type_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected let expl = List.map2 (fun (label, body) ((_, ty), argument_mode) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) label; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + label; let argument_mode = mode_default argument_mode in let argument_mode = expect_mode_cross env ty argument_mode in (label, type_expect env argument_mode body (mk_expected ty))) @@ -7854,8 +7828,7 @@ and type_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected and type_unboxed_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected ~explanation ~attributes sexpl = - Jane_syntax_parsing.assert_extension_enabled ~loc Layouts - Language_extension.Beta; + Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; let arity = List.length sexpl in assert (arity >= 2); let argument_mode = expected_mode.mode in @@ -7893,8 +7866,9 @@ and type_unboxed_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected let expl = List.map2 (fun (label, body) ((_, ty, sort), argument_mode) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) label; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + label; let argument_mode = mode_default argument_mode in let argument_mode = expect_mode_cross env ty argument_mode in (label, type_expect env argument_mode body (mk_expected ty), sort)) @@ -7936,11 +7910,7 @@ and type_construct env (expected_mode : expected_mode) loc lid sarg match sarg with | None -> [] | Some se -> begin - match Jane_syntax.Expression.of_ast se with - | Some (( Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout _), _) -> [se] - | None -> match se.pexp_desc with + match se.pexp_desc with | Pexp_tuple sel when constr.cstr_arity > 1 || Builtin_attributes.explicit_arity attrs -> @@ -8508,18 +8478,11 @@ and type_function_cases_expect and type_let ?check ?check_strict ?(force_toplevel = false) existential_context env rec_flag spat_sexp_list allow_modules = let rec sexp_is_fun sexp = - match Jane_syntax.Expression.of_ast sexp with - | Some (jexp, _attrs) -> jexp_is_fun jexp - | None -> match sexp.pexp_desc with + match sexp.pexp_desc with | Pexp_function _ -> true | Pexp_constraint (e, _, _) - | Pexp_newtype (_, e) -> sexp_is_fun e + | Pexp_newtype (_, _, e) -> sexp_is_fun e | _ -> false - and jexp_is_fun : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout (Lexp_constant _) -> false - | Jexp_layout (Lexp_newtype (_, _, e)) -> sexp_is_fun e in let vb_is_fun { pvb_expr = sexp; _ } = sexp_is_fun sexp in let entirely_functions = List.for_all vb_is_fun spat_sexp_list in @@ -8965,19 +8928,6 @@ and type_generic_array exp_attributes = attributes; exp_env = env } -and type_expect_jane_syntax - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes - : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension x -> - type_comprehension_expr - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x - | Jexp_immutable_array x -> - type_immutable_array - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x - | Jexp_layout x -> - type_jkind_expr - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x - and type_expect_mode ~loc ~env ~(modes : Alloc.Const.Option.t) expected_mode = let min = Alloc.Const.Option.value ~default:Alloc.Const.min modes |> Const.alloc_as_value in let max = Alloc.Const.Option.value ~default:Alloc.Const.max modes |> Const.alloc_as_value in @@ -9192,10 +9142,7 @@ and type_n_ary_function we need to provide modes while typechecking comprehensions, we will reference this comment by its incipit (the initial question, right at the start). *) -and type_comprehension_expr - ~loc ~env ~expected_mode:_ ~ty_expected ~explanation:_ ~rue:_~attributes - cexpr = - let open Jane_syntax.Comprehensions in +and type_comprehension_expr ~loc ~env ~ty_expected ~attributes cexpr = (* - [comprehension_type]: For printing nicer error messages. - [container_type]: @@ -9207,18 +9154,20 @@ and type_comprehension_expr - [{body = sbody; clauses}]: The actual comprehension to be translated. *) let comprehension_type, container_type, make_texp, - {body = sbody; clauses}, jkind = + {pcomp_body = sbody; pcomp_clauses}, jkind = match cexpr with - | Cexp_list_comprehension comp -> + | Pcomp_list_comprehension comp -> (List_comprehension : comprehension_type), Predef.type_list, (fun tcomp -> Texp_list_comprehension tcomp), comp, Predef.list_argument_jkind - | Cexp_array_comprehension (amut, comp) -> + | Pcomp_array_comprehension (amut, comp) -> let container_type, mut = match amut with | Mutable -> Predef.type_array, Mutable Alloc.Comonadic.Const.legacy - | Immutable -> Predef.type_iarray, Immutable + | Immutable -> + Language_extension.assert_enabled ~loc Immutable_arrays (); + Predef.type_iarray, Immutable in (Array_comprehension mut : comprehension_type), container_type, @@ -9246,7 +9195,7 @@ and type_comprehension_expr (* To understand why we don't provide modes here, see "What modes should comprehensions use?", above *) type_comprehension_clauses - ~loc ~env ~comprehension_type ~container_type clauses + ~loc ~env ~comprehension_type ~container_type pcomp_clauses in let comp_body = (* To understand why comprehension bodies are checked at [mode_global], see @@ -9269,8 +9218,8 @@ and type_comprehension_clauses (* Calls [reset_pattern] *) and type_comprehension_clause ~loc ~comprehension_type ~container_type env - : Jane_syntax.Comprehensions.clause -> _ = function - | For bindings -> + = function + | Pcomp_for bindings -> (* TODO: fix handling of first-class module patterns *) let tps = create_type_pat_state Modules_rejected in let tbindings = @@ -9285,7 +9234,7 @@ and type_comprehension_clause ~loc ~comprehension_type ~container_type env add_pattern_variables ~check ~check_as:check env pvs in env, Texp_comp_for tbindings - | When cond -> + | Pcomp_when cond -> let tcond = (* To understand why [when] conditions can be checked at an arbitrary mode, see "What modes should comprehensions use?" in @@ -9304,7 +9253,10 @@ and type_comprehension_binding ~container_type ~env tps - Jane_syntax.Comprehensions.{ pattern; iterator; attributes } = + { pcomp_cb_pattern = pattern; + pcomp_cb_iterator = iterator; + pcomp_cb_attributes = attributes } + = { comp_cb_iterator = type_comprehension_iterator ~loc ~env ~comprehension_type ~container_type tps pattern iterator @@ -9313,9 +9265,8 @@ and type_comprehension_binding } and type_comprehension_iterator - ~loc ~env ~comprehension_type ~container_type tps pattern - : Jane_syntax.Comprehensions.iterator -> _ = function - | Range { start; stop; direction } -> + ~loc ~env ~comprehension_type ~container_type tps pattern = function + | Pcomp_range { start; stop; direction } -> let tbound ~explanation bound = (* To understand why [for ... = ...] iterator range endpoints can be checked at an arbitrary mode, see "What modes should comprehensions @@ -9338,7 +9289,7 @@ and type_comprehension_iterator ~param:pattern in Texp_comp_range { ident; pattern; start; stop; direction } - | In seq -> + | Pcomp_in seq -> let item_ty = newvar (Jkind.Builtin.any ~why:Dummy_jkind) in let seq_ty = container_type item_ty in let sequence = @@ -9373,41 +9324,9 @@ and type_comprehension_iterator in Texp_comp_in { pattern; sequence } -and type_immutable_array - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue:_ ~attributes - : Jane_syntax.Immutable_arrays.expression -> _ = function - | Iaexp_immutable_array elts -> - type_generic_array - ~loc - ~env - ~expected_mode - ~ty_expected - ~explanation - ~mutability:Immutable - ~attributes - elts - -and type_jkind_expr - ~loc ~env ~expected_mode ~ty_expected:_ ~explanation:_ ~rue ~attributes - : Jane_syntax.Layouts.expression -> _ = function - | Lexp_constant x -> type_unboxed_constant ~loc ~env ~rue ~attributes x - | Lexp_newtype (name, jkind_annot, sbody) -> - type_newtype_expr ~loc ~env ~expected_mode ~rue ~attributes - name (Some jkind_annot) sbody - -and type_unboxed_constant ~loc ~env ~rue ~attributes cst = - let cst = unboxed_constant_or_raise env loc cst in - rue { - exp_desc = Texp_constant cst; - exp_loc = loc; - exp_extra = []; - exp_type = type_constant cst; - exp_attributes = attributes; - exp_env = env } - (* Typing of method call *) and type_send env loc explanation e met = - let obj = type_exp env mode_legacy e in + let obj = type_exp env mode_object e in let (meth, typ) = match obj.exp_desc with | Texp_ident(_, _, {val_kind = Val_self(sign, meths, _, _)}, _, _) -> @@ -10512,6 +10431,14 @@ let report_error ~loc env = function print_unsupported_stack_allocation category | Not_allocation -> Location.errorf ~loc "This expression is not an allocation site." + | Impossible_function_jkind (ty, jkind) -> + Location.errorf ~loc + "@[@[This expression is used as a function, but its type@ %a@]@ \ + has kind %a, which cannot be the kind of a function.@ \ + (Functions always have kind %a.)@]" + (Style.as_inline_code Printtyp.type_expr) ty + (Style.as_inline_code Jkind.format) jkind + (Style.as_inline_code Jkind.format) Jkind.for_arrow let report_error ~loc env err = Printtyp.wrap_printing_env_error env diff --git a/upstream/ocaml_flambda/typing/typecore.mli b/upstream/ocaml_flambda/typing/typecore.mli index 891dc8758..ec9cf9028 100644 --- a/upstream/ocaml_flambda/typing/typecore.mli +++ b/upstream/ocaml_flambda/typing/typecore.mli @@ -315,6 +315,7 @@ type error = | Cannot_stack_allocate of Env.locality_context option | Unsupported_stack_allocation of unsupported_stack_allocation | Not_allocation + | Impossible_function_jkind of type_expr * jkind_lr exception Error of Location.t * Env.t * error exception Error_forward of Location.error diff --git a/upstream/ocaml_flambda/typing/typedecl.ml b/upstream/ocaml_flambda/typing/typedecl.ml index de34685fe..173d9ab35 100644 --- a/upstream/ocaml_flambda/typing/typedecl.ml +++ b/upstream/ocaml_flambda/typing/typedecl.ml @@ -261,7 +261,7 @@ let enter_type ?abstract_abbrevs rec_flag env sdecl (id, uid) = jkind of the variable put in manifests here is updated when constraints are checked and then unified with the real manifest and checked against the kind. *) - let type_jkind, type_jkind_annotation, sdecl_attributes = + let type_jkind, type_jkind_annotation = Jkind.of_type_decl_default ~context:(Type_declaration path) ~default:any @@ -297,7 +297,7 @@ in type_is_newtype = false; type_expansion_scope = Btype.lowest_level; type_loc = sdecl.ptype_loc; - type_attributes = sdecl_attributes; + type_attributes = sdecl.ptype_attributes; type_unboxed_default = false; type_uid = uid; type_has_illegal_crossings = false; @@ -362,7 +362,7 @@ let is_fixed_type sd = (* CR layouts upstreaming: The Ptyp_alias case also covers the case for a jkind annotation, conveniently. When upstreaming jkinds, this function will need a case for jkind-annotation aliases. *) - Ptyp_alias (sty, _) -> has_row_var sty + Ptyp_alias (sty, _jkind, _) -> has_row_var sty | Ptyp_class _ | Ptyp_object (_, Open) | Ptyp_variant (_, Open, _) @@ -541,24 +541,22 @@ let transl_constructor_arguments ~new_var_jkind ~unboxed defined types. It is updated later by [update_constructor_arguments_jkinds] *) let make_constructor - env loc ~cstr_path ~type_path ~unboxed type_params (svars : _ Either.t) + env loc ~cstr_path ~type_path ~unboxed type_params svars sargs sret_type = - let tvars = match svars with - | Left vars_only -> List.map (fun v -> v.txt, None) vars_only - | Right vars_jkinds -> - List.map - (fun (v, l) -> - v.txt, - Option.map - (fun annot -> - let const = - Jkind.Const.of_user_written_annotation - ~context:(Constructor_type_parameter (cstr_path, v.txt)) - annot - in - const, annot) - l) - vars_jkinds + let tvars = + List.map + (fun (v, l) -> + v.txt, + Option.map + (fun annot -> + let const = + Jkind.Const.of_user_written_annotation + ~context:(Constructor_type_parameter (cstr_path, v.txt)) + annot + in + const, annot) + l) + svars in match sret_type with | None -> @@ -574,19 +572,16 @@ let make_constructor TyVarEnv.with_local_scope begin fun () -> let closed = match svars with - | Left [] | Right [] -> false + | [] -> false | _ -> true in let targs, tret_type, args, ret_type, _univars = Ctype.with_local_level_if closed begin fun () -> TyVarEnv.reset (); let univar_list = - match svars with - | Left vars_only -> TyVarEnv.make_poly_univars vars_only - | Right vars_jkinds -> - TyVarEnv.make_poly_univars_jkinds - ~context:(fun v -> Constructor_type_parameter (cstr_path, v)) - vars_jkinds + TyVarEnv.make_poly_univars_jkinds + ~context:(fun v -> Constructor_type_parameter (cstr_path, v)) + svars in let univars = if closed then Some univar_list else None in let args, targs = @@ -787,11 +782,11 @@ let transl_declaration env sdecl (id, uid) = | _ -> false, false (* Not unboxable, mark as boxed *) in verify_unboxed_attr unboxed_attr sdecl; - let jkind_from_annotation, jkind_annotation, sdecl_attributes = + let jkind_from_annotation, jkind_annotation = match Jkind.of_type_decl ~context:(Type_declaration path) sdecl with - | Some (jkind, jkind_annotation, sdecl_attributes) -> - Some jkind, Some jkind_annotation, sdecl_attributes - | None -> None, None, sdecl.ptype_attributes + | Some (jkind, jkind_annotation) -> + Some jkind, Some jkind_annotation + | None -> None, None in let (tman, man) = match sdecl.ptype_manifest with None -> None, None @@ -814,7 +809,7 @@ let transl_declaration env sdecl (id, uid) = Remove when we allow users to define their own null constructors. *) | Ptype_abstract when - Builtin_attributes.has_or_null_reexport sdecl_attributes -> + Builtin_attributes.has_or_null_reexport sdecl.ptype_attributes -> let param = (* We require users to define ['a t = 'a or_null]. Manifest must be set to [or_null] so typechecking stays correct. *) @@ -832,7 +827,7 @@ let transl_declaration env sdecl (id, uid) = in Ttype_abstract, type_kind, jkind | (Ptype_variant _ | Ptype_record _ | Ptype_open) when - Builtin_attributes.has_or_null_reexport sdecl_attributes -> + Builtin_attributes.has_or_null_reexport sdecl.ptype_attributes -> raise (Error (sdecl.ptype_loc, Non_abstract_reexport path)) | Ptype_abstract -> Ttype_abstract, Type_abstract Definition, @@ -857,19 +852,11 @@ let transl_declaration env sdecl (id, uid) = raise(Error(sdecl.ptype_loc, Too_many_constructors)); let make_cstr scstr = let name = Ident.create_local scstr.pcd_name.txt in - let svars, attributes = - match Jane_syntax.Layouts.of_constructor_declaration scstr with - | None -> - Either.Left scstr.pcd_vars, - scstr.pcd_attributes - | Some (vars_jkinds, attributes) -> - Either.Right vars_jkinds, - attributes - in + let attributes = scstr.pcd_attributes in let tvars, targs, tret_type, args, ret_type = make_constructor ~unboxed:unbox env scstr.pcd_loc ~cstr_path:(Path.Pident name) ~type_path:path params - svars scstr.pcd_args scstr.pcd_res + scstr.pcd_vars scstr.pcd_args scstr.pcd_res in let tcstr = { cd_id = name; @@ -972,7 +959,7 @@ let transl_declaration env sdecl (id, uid) = type_is_newtype = false; type_expansion_scope = Btype.lowest_level; type_loc = sdecl.ptype_loc; - type_attributes = sdecl_attributes; + type_attributes = sdecl.ptype_attributes; type_unboxed_default = unboxed_default; type_uid = uid; type_has_illegal_crossings = false; @@ -2347,27 +2334,15 @@ let transl_extension_constructor_decl args, jkinds, constructor_shape, constant, ret_type, Text_decl(tvars, targs, tret_type) -let transl_extension_constructor_jst env type_path _type_params - typext_params _priv loc id _attrs : - Jane_syntax.Extension_constructor.t -> _ = function - | Jext_layout (Lext_decl(vars_jkinds, args, res)) -> - transl_extension_constructor_decl - env type_path typext_params loc id (Right vars_jkinds) args res - let transl_extension_constructor ~scope env type_path type_params typext_params priv sext = let id = Ident.create_scoped ~scope sext.pext_name.txt in let loc = sext.pext_loc in let args, arg_jkinds, shape, constant, ret_type, kind = - match Jane_syntax.Extension_constructor.of_ast sext with - | Some (jext, attrs) -> - transl_extension_constructor_jst - env type_path type_params typext_params priv loc id attrs jext - | None -> match sext.pext_kind with Pext_decl(svars, sargs, sret_type) -> transl_extension_constructor_decl - env type_path typext_params loc id (Left svars) sargs sret_type + env type_path typext_params loc id svars sargs sret_type | Pext_rebind lid -> let usage : Env.constructor_usage = if priv = Public then Env.Exported else Env.Exported_private @@ -2889,7 +2864,7 @@ let rec parse_native_repr_attributes env core_type ty rmode ~global_repr ~is_layout_poly in ((mode, repr_arg) :: repr_args, repr_res) - | (Ptyp_poly (_, t) | Ptyp_alias (t, _)), _, _ -> + | (Ptyp_poly (_, t) | Ptyp_alias (t, _, _)), _, _ -> parse_native_repr_attributes env t ty rmode ~global_repr ~is_layout_poly | _ -> let rmode = @@ -3002,14 +2977,15 @@ let error_if_containing_unexpected_jkind prim cty ty = unexpected_layout_any_check prim cty ty (* Translate a value declaration *) -let transl_value_decl env loc valdecl = +let transl_value_decl env loc ~sig_modalities valdecl = let cty = Typetexp.transl_type_scheme env valdecl.pval_type in let modalities = - valdecl.pval_modalities - |> Typemode.transl_modalities ~maturity:Alpha Immutable - valdecl.pval_attributes - |> Mode.Modality.Value.of_const + match valdecl.pval_modalities with + | [] -> sig_modalities + | l -> Typemode.transl_modalities ~maturity:Alpha Immutable + valdecl.pval_attributes l in + let modalities = Mode.Modality.Value.of_const modalities in (* CR layouts v5: relax this to check for representability. *) begin match Ctype.constrain_type_jkind env cty.ctyp_type (Jkind.Builtin.value_or_null ~why:Structure_element) with @@ -3108,9 +3084,9 @@ let transl_value_decl env loc valdecl = in desc, newenv -let transl_value_decl env loc valdecl = +let transl_value_decl env ~sig_modalities loc valdecl = Builtin_attributes.warning_scope valdecl.pval_attributes - (fun () -> transl_value_decl env loc valdecl) + (fun () -> transl_value_decl env ~sig_modalities loc valdecl) (* Translate a "with" constraint -- much simplified version of transl_type_decl. For a constraint [Sig with t = sdecl], @@ -3332,7 +3308,7 @@ let approx_type_decl sdecl_list = let id = Ident.create_scoped ~scope sdecl.ptype_name.txt in let path = Path.Pident id in let injective = sdecl.ptype_kind <> Ptype_abstract in - let jkind, jkind_annotation, _sdecl_attributes = + let jkind, jkind_annotation = Jkind.of_type_decl_default ~context:(Type_declaration path) ~default:(Jkind.Builtin.value ~why:Default_type_jkind) diff --git a/upstream/ocaml_flambda/typing/typedecl.mli b/upstream/ocaml_flambda/typing/typedecl.mli index 36da3879e..4418515a6 100644 --- a/upstream/ocaml_flambda/typing/typedecl.mli +++ b/upstream/ocaml_flambda/typing/typedecl.mli @@ -35,7 +35,7 @@ val transl_type_extension: Typedtree.type_extension * Env.t * Shape.t list val transl_value_decl: - Env.t -> Location.t -> + Env.t -> sig_modalities:Mode.Modality.Value.Const.t -> Location.t -> Parsetree.value_description -> Typedtree.value_description * Env.t (* If the [fixed_row_path] optional argument is provided, diff --git a/upstream/ocaml_flambda/typing/typedtree.ml b/upstream/ocaml_flambda/typing/typedtree.ml index dc2e36369..fb0824d42 100644 --- a/upstream/ocaml_flambda/typing/typedtree.ml +++ b/upstream/ocaml_flambda/typing/typedtree.ml @@ -50,7 +50,49 @@ type _ pattern_category = | Value : value pattern_category | Computation : computation pattern_category -type unique_barrier = Mode.Uniqueness.r +module Unique_barrier = struct + (* For added safety, we record the states in the life of a barrier: + - Barriers start out as Not_computed + - They are enabled by the uniqueness analysis + - They are resolved in translcore + This allows us to error if the barrier is not enabled or resolved. *) + type barrier = + | Enabled of Mode.Uniqueness.lr + | Resolved of Mode.Uniqueness.Const.t + | Not_computed + + type t = barrier ref + + let not_computed () = ref Not_computed + + let enable barrier = match !barrier with + | Not_computed -> + barrier := Enabled (Uniqueness.newvar ()) + | _ -> Misc.fatal_error "Unique barrier was enabled twice" + + (* Due to or-patterns a barrier may have several upper bounds. *) + let add_upper_bound uniq barrier = + match !barrier with + | Enabled barrier -> Uniqueness.submode_exn barrier uniq + | _ -> Misc.fatal_error "Unique barrier got an upper bound in the wrong state" + + let resolve barrier = + match !barrier with + | Enabled uniq -> + let zapped = Uniqueness.zap_to_ceil uniq in + barrier := Resolved zapped; + zapped + | Resolved barrier -> barrier + | Not_computed -> + (* CR uniqueness: The uniqueness analysis does not go into legacy + language constructs such as objects; for those, we default to legacy. + We should change the uniqueness analysis to also traverse these + constructs. Then this case will be impossible to reach and we can fail + here. Failing here will protect us when future language extensions are + not traversing the uniqueness analysis. This ensures that the + unique barriers will stay sound for future extensions. *) + Uniqueness.Const.legacy +end type unique_use = Mode.Uniqueness.r * Mode.Linearity.l @@ -77,6 +119,7 @@ and 'a pattern_data = pat_type: type_expr; pat_env: Env.t; pat_attributes: attribute list; + pat_unique_barrier : Unique_barrier.t; } and pat_extra = @@ -168,11 +211,12 @@ and expression_desc = | Texp_record of { fields : ( Types.label_description * record_label_definition ) array; representation : Types.record_representation; - extended_expression : expression option; + extended_expression : (expression * Unique_barrier.t) option; alloc_mode : alloc_mode option } | Texp_field of - expression * Longident.t loc * label_description * texp_field_boxing + expression * Longident.t loc * label_description * texp_field_boxing * + Unique_barrier.t | Texp_setfield of expression * Mode.Locality.l * Longident.t loc * label_description * expression | Texp_array of mutability * Jkind.Sort.t * expression list * alloc_mode @@ -509,8 +553,10 @@ and primitive_coercion = and signature = { sig_items : signature_item list; + sig_modalities : Mode.Modality.Value.Const.t; sig_type : Types.signature; sig_final_env : Env.t; + sig_sloc : Location.t; } and signature_item = @@ -680,7 +726,7 @@ and type_declaration = typ_manifest: core_type option; typ_loc: Location.t; typ_attributes: attribute list; - typ_jkind_annotation: Jane_syntax.Jkind.annotation option; + typ_jkind_annotation: Parsetree.jkind_annotation option; } and type_kind = @@ -852,6 +898,7 @@ let as_computation_pattern (p : pattern) : computation general_pattern = pat_type = p.pat_type; pat_env = p.pat_env; pat_attributes = []; + pat_unique_barrier = p.pat_unique_barrier; } let function_arity params body = @@ -1190,7 +1237,7 @@ let rec exp_is_nominal exp = | Texp_variant (_, None) | Texp_construct (_, _, [], _) -> true - | Texp_field (parent, _, _, _) | Texp_send (parent, _, _) -> + | Texp_field (parent, _, _, _, _) | Texp_send (parent, _, _) -> exp_is_nominal parent | _ -> false diff --git a/upstream/ocaml_flambda/typing/typedtree.mli b/upstream/ocaml_flambda/typing/typedtree.mli index 5a876e6b3..be45d6430 100644 --- a/upstream/ocaml_flambda/typing/typedtree.mli +++ b/upstream/ocaml_flambda/typing/typedtree.mli @@ -62,12 +62,25 @@ type _ pattern_category = | Value : value pattern_category | Computation : computation pattern_category -(* CR zqian: use this field when overwriting is supported. *) -(** Access mode for a field projection, represented by the usage of the record - immediately following the projection. If the following usage is unique, the - projection must be borrowed and cannot be moved. If the following usage is - aliased, the projection can be aliased and moved. *) -type unique_barrier = Mode.Uniqueness.r +(** A unique barrier annotates field accesses (eg. Texp_field and patterns) + with the uniqueness mode of the allocation that is projected out of. + Projections out of unique allocations may not be pushed down in later + stages of the compiler, because the unique allocation may be overwritten. *) +module Unique_barrier : sig + type t + + (* Barriers start out as not computed. *) + val not_computed : unit -> t + + (* The uniqueness analysis enables all barriers. *) + val enable : t -> unit + + (* Record an upper bound on the uniqueness of the record. *) + val add_upper_bound : Mode.Uniqueness.r -> t -> unit + + (* Resolve the unique barrier once type-checking is complete. *) + val resolve : t -> Mode.Uniqueness.Const.t +end type unique_use = Mode.Uniqueness.r * Mode.Linearity.l @@ -96,6 +109,9 @@ and 'a pattern_data = pat_type: Types.type_expr; pat_env: Env.t; pat_attributes: attributes; + pat_unique_barrier : Unique_barrier.t; + (** This tracks whether the scrutinee of the pattern is used uniquely + within the body of the pattern match. *) } and pat_extra = @@ -285,7 +301,7 @@ and expression_desc = (** fun P0 P1 -> function p1 -> e1 | p2 -> e2 (body = Tfunction_cases _) fun P0 P1 -> E (body = Tfunction_body _) This construct has the same arity as the originating - {{!Jane_syntax.Expression.Jexp_n_ary_function}[Jexp_n_ary_function]}. + {{!Parsetree.Pexp_function}[Pexp_function]}. Arity determines when side-effects for effectful parameters are run (e.g. optional argument defaults, matching against lazy patterns). Parameters' effects are run left-to-right when an n-ary function is @@ -359,7 +375,7 @@ and expression_desc = | Texp_record of { fields : ( Types.label_description * record_label_definition ) array; representation : Types.record_representation; - extended_expression : expression option; + extended_expression : (expression * Unique_barrier.t) option; alloc_mode : alloc_mode option } (** { l1=P1; ...; ln=Pn } (extended_expression = None) @@ -377,7 +393,7 @@ and expression_desc = in which case it does not need allocation. *) | Texp_field of expression * Longident.t loc * Types.label_description * - texp_field_boxing + texp_field_boxing * Unique_barrier.t (** [texp_field_boxing] provides extra information depending on if the projection requires boxing. *) | Texp_setfield of @@ -782,8 +798,10 @@ and primitive_coercion = and signature = { sig_items : signature_item list; + sig_modalities : Mode.Modality.Value.Const.t; sig_type : Types.signature; sig_final_env : Env.t; + sig_sloc : Location.t; } and signature_item = @@ -958,7 +976,7 @@ and type_declaration = typ_manifest: core_type option; typ_loc: Location.t; typ_attributes: attributes; - typ_jkind_annotation: Jane_syntax.Jkind.annotation option; + typ_jkind_annotation: Parsetree.jkind_annotation option; } and type_kind = diff --git a/upstream/ocaml_flambda/typing/typemod.ml b/upstream/ocaml_flambda/typing/typemod.ml index 7b9df419d..51f1c8e5d 100644 --- a/upstream/ocaml_flambda/typing/typemod.ml +++ b/upstream/ocaml_flambda/typing/typemod.ml @@ -199,16 +199,8 @@ let extract_sig_functor_open funct_body env loc mty sig_acc = (* Compute the environment after opening a module *) -let type_open_ ?used_slot ?toplevel ovf env loc lid = - let path, _ = - Env.lookup_module_path ~lock:false ~load:true ~loc:lid.loc lid.txt env - in - match Env.open_signature ~loc ?used_slot ?toplevel ovf path env with - | Ok env -> path, env - | Error _ -> - let md = Env.find_module path env in - ignore (extract_sig_open env lid.loc md.md_type); - assert false +let type_open_ ?(used_slot=ref false) ?(toplevel=false) ovf env loc lid = + Env.open_signature ~loc ~used_slot ~toplevel ovf lid env let initial_env ~loc ~initially_opened_module ~open_implicit_modules = @@ -357,7 +349,7 @@ let path_is_strict_prefix = && list_is_strict_prefix l1 ~prefix:l2 let rec instance_name ~loc env syntax = - let ({ head; args } : Jane_syntax.Instances.instance) = syntax in + let { pmod_instance_head = head; pmod_instance_args = args } = syntax in let args = List.map (fun (param, value) : Global_module.Name.argument -> @@ -535,8 +527,9 @@ let () = Env.check_well_formed_module := check_well_formed_module let type_decl_is_alias sdecl = (* assuming no explicit constraint *) let eq_vars x y = - match Jane_syntax.Core_type.of_ast x, Jane_syntax.Core_type.of_ast y with - (* a jkind annotation on either type variable might mean this definition + (* Why not handle jkind annotations? + + a jkind annotation on either type variable might mean this definition is not an alias. Example: {v type ('a : value) t type ('a : immediate) t2 = ('a : immediate) t @@ -546,10 +539,8 @@ let type_decl_is_alias sdecl = (* assuming no explicit constraint *) conservatively say that any jkind annotations block alias detection. *) - | (Some _, _) | (_, Some _) -> false - | None, None -> match x.ptyp_desc, y.ptyp_desc with - | Ptyp_var sx, Ptyp_var sy -> sx = sy + | Ptyp_var (sx, None), Ptyp_var (sy, None) -> sx = sy | _, _ -> false in match sdecl.ptype_manifest with @@ -1034,9 +1025,6 @@ and apply_modalities_module_type env modalities = function making them abstract otherwise. *) let rec approx_modtype env smty = - match Jane_syntax.Module_type.of_ast smty with - | Some (jmty, _attrs) -> approx_modtype_jane_syntax env jmty - | None -> match smty.pmty_desc with Pmty_ident lid -> let path = @@ -1093,18 +1081,16 @@ let rec approx_modtype env smty = mty | Pmty_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) - -and approx_modtype_jane_syntax env = function - | Jane_syntax.Module_type.Jmty_strengthen { mty = smty; mod_id } -> - let mty = approx_modtype env smty in - let path, _ = - (* CR-someday: potentially improve error message for strengthening with - a mutually recursive module. *) - Env.lookup_module_path ~use:false ~load:false - ~loc:mod_id.loc mod_id.txt env - in - let aliasable = (not (Env.is_functor_arg path env)) in - Mty_strengthen (mty, path, Aliasability.aliasable aliasable) + | Pmty_strengthen (smty, mod_id) -> + let mty = approx_modtype env smty in + let path, _ = + (* CR-someday: potentially improve error message for strengthening with + a mutually recursive module. *) + Env.lookup_module_path ~use:false ~load:false + ~loc:mod_id.loc mod_id.txt env + in + let aliasable = (not (Env.is_functor_arg path env)) in + Mty_strengthen (mty, path, Aliasability.aliasable aliasable) and approx_module_declaration env pmd = { @@ -1114,27 +1100,21 @@ and approx_module_declaration env pmd = md_uid = Uid.internal_not_actually_unique; } -and approx_sig_jst' _env (jitem : Jane_syntax.Signature_item.t) _srem = - match jitem with - | Jsig_layout (Lsig_kind_abbrev _) -> - Misc.fatal_error "kind_abbrev not supported!" +and approx_sig env {psg_items; _} = approx_sig_items env psg_items -and approx_sig env ssg = +and approx_sig_items env ssg= match ssg with [] -> [] | item :: srem -> - match Jane_syntax.Signature_item.of_ast item with - | Some jitem -> approx_sig_jst' env jitem srem - | None -> match item.psig_desc with | Psig_type (rec_flag, sdecls) -> let decls = Typedecl.approx_type_decl sdecls in - let rem = approx_sig env srem in + let rem = approx_sig_items env srem in map_rec_type ~rec_flag (fun rs (id, info) -> Sig_type(id, info, rs, Exported)) decls rem - | Psig_typesubst _ -> approx_sig env srem + | Psig_typesubst _ -> approx_sig_items env srem | Psig_module { pmd_name = { txt = None; _ }; _ } -> - approx_sig env srem + approx_sig_items env srem | Psig_module pmd -> let scope = Ctype.create_scope () in let md = approx_module_declaration env pmd in @@ -1147,7 +1127,7 @@ and approx_sig env ssg = Env.enter_module_declaration ~scope (Option.get pmd.pmd_name.txt) pres md env in - Sig_module(id, pres, md, Trec_not, Exported) :: approx_sig newenv srem + Sig_module(id, pres, md, Trec_not, Exported) :: approx_sig_items newenv srem | Psig_modsubst pms -> let scope = Ctype.create_scope () in let _, md, _ = @@ -1162,7 +1142,7 @@ and approx_sig env ssg = let _, newenv = Env.enter_module_declaration ~scope pms.pms_name.txt pres md env in - approx_sig newenv srem + approx_sig_items newenv srem | Psig_recmodule sdecls -> let scope = Ctype.create_scope () in let decls = @@ -1184,29 +1164,29 @@ and approx_sig env ssg = map_rec (fun rs (id, md) -> Sig_module(id, Mp_present, md, rs, Exported)) decls - (approx_sig newenv srem) + (approx_sig_items newenv srem) | Psig_modtype d -> let info = approx_modtype_info env d in let scope = Ctype.create_scope () in let (id, newenv) = Env.enter_modtype ~scope d.pmtd_name.txt info env in - Sig_modtype(id, info, Exported) :: approx_sig newenv srem + Sig_modtype(id, info, Exported) :: approx_sig_items newenv srem | Psig_modtypesubst d -> let info = approx_modtype_info env d in let scope = Ctype.create_scope () in let (_id, newenv) = Env.enter_modtype ~scope d.pmtd_name.txt info env in - approx_sig newenv srem + approx_sig_items newenv srem | Psig_open sod -> let _, env = type_open_descr env sod in - approx_sig env srem + approx_sig_items env srem | Psig_include ({pincl_loc=loc; pincl_mod=mod_; pincl_kind=kind; pincl_attributes=attrs}, moda) -> begin match kind with | Functor -> - Jane_syntax_parsing.assert_extension_enabled ~loc Include_functor (); + Language_extension.assert_enabled ~loc Include_functor (); raise (Error(loc, env, Recursive_include_functor)) | Structure -> let mty = approx_modtype env mod_ in @@ -1225,11 +1205,11 @@ and approx_sig env ssg = apply_modalities_signature ~recursive env modalities sg in let sg, newenv = Env.enter_signature ~scope sg env in - sg @ approx_sig newenv srem + sg @ approx_sig_items newenv srem end | Psig_class sdecls | Psig_class_type sdecls -> let decls, env = Typeclass.approx_class_declarations env sdecls in - let rem = approx_sig env srem in + let rem = approx_sig_items env srem in map_rec (fun rs decl -> let open Typeclass in [ Sig_class_type(decl.clsty_ty_id, decl.clsty_ty_decl, rs, @@ -1238,8 +1218,10 @@ and approx_sig env ssg = ] ) decls [rem] |> List.flatten + | Psig_kind_abbrev _ -> + Misc.fatal_error "kind_abbrev not supported!" | _ -> - approx_sig env srem + approx_sig_items env srem and approx_modtype_info env sinfo = { @@ -1606,9 +1588,6 @@ and transl_modtype_functor_arg env sarg = and transl_modtype_aux env smty = let loc = smty.pmty_loc in - match Jane_syntax.Module_type.of_ast smty with - | Some (jmty, _attrs) -> transl_modtype_jane_syntax_aux ~loc env jmty - | None -> match smty.pmty_desc with Pmty_ident lid -> let path = transl_modtype_longident loc env lid.txt in @@ -1669,9 +1648,9 @@ and transl_modtype_aux env smty = mkmty (Tmty_typeof tmty) mty env loc smty.pmty_attributes | Pmty_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) - -and transl_modtype_jane_syntax_aux ~loc env = function - | Jane_syntax.Module_type.Jmty_strengthen { mty ; mod_id } -> + | Pmty_strengthen (mty, mod_id) -> + Language_extension.assert_enabled ~loc:smty.pmty_loc + Module_strengthening (); let tmty = transl_modtype_aux env mty in let path, md, _ = Env.lookup_module ~use:false ~loc:mod_id.loc mod_id.txt env @@ -1714,11 +1693,18 @@ and transl_with ~loc env remove_aliases (rev_tcstrs,sg) constr = let tcstr = Option.get tcstr in ((path, lid, tcstr) :: rev_tcstrs, sg) - - -and transl_signature env sg = +and transl_signature env {psg_items; psg_modalities; psg_loc} = let names = Signature_names.create () in + let has_sig_modalities = + match psg_modalities with + | [] -> false + | _ :: _ -> true + in + let sig_modalities = + Typemode.transl_modalities ~maturity:Alpha Immutable [] psg_modalities + in + let transl_include ~loc env sig_acc sincl modalities = let smty = sincl.pincl_mod in let tmty = @@ -1730,7 +1716,7 @@ and transl_signature env sg = let incl_kind, sg = match sincl.pincl_kind with | Functor -> - Jane_syntax_parsing.assert_extension_enabled ~loc Include_functor (); + Language_extension.assert_enabled ~loc Include_functor (); let sg, incl_kind = extract_sig_functor_open false env smty.pmty_loc mty sig_acc in @@ -1738,18 +1724,21 @@ and transl_signature env sg = | Structure -> Tincl_structure, extract_sig env smty.pmty_loc mty in - let sg, modalities = + let has_modalities, modalities = match modalities with - | [] -> sg, Mode.Modality.Value.Const.id + | [] -> has_sig_modalities, sig_modalities | _ -> - let modalities = - Typemode.transl_modalities ~maturity:Alpha Immutable [] modalities - in + true, Typemode.transl_modalities ~maturity:Alpha Immutable [] modalities + in + let sg = + if has_modalities then let recursive = not @@ Builtin_attributes.has_attribute "no_recursive_modalities" sincl.pincl_attributes in - apply_modalities_signature ~recursive env modalities sg, modalities + apply_modalities_signature ~recursive env modalities sg + else + sg in let sg, newenv = Env.enter_signature ~scope sg env in Signature_group.iter @@ -1766,21 +1755,12 @@ and transl_signature env sg = mksig (Tsig_include (incl, modalities)) env loc, sg, newenv in - let transl_sig_item_jst ~loc:_ _env _sig_acc : Jane_syntax.Signature_item.t -> _ = - function - | Jsig_layout (Lsig_kind_abbrev _) -> - Misc.fatal_error "kind_abbrev not supported!" - in - let transl_sig_item env sig_acc item = let loc = item.psig_loc in - match Jane_syntax.Signature_item.of_ast item with - | Some jitem -> transl_sig_item_jst ~loc env sig_acc jitem - | None -> match item.psig_desc with | Psig_value sdesc -> let (tdesc, newenv) = - Typedecl.transl_value_decl env item.psig_loc sdesc + Typedecl.transl_value_decl env ~sig_modalities item.psig_loc sdesc in Signature_names.check_value names tdesc.val_loc tdesc.val_id; mksig (Tsig_value tdesc) env loc, @@ -2035,6 +2015,8 @@ and transl_signature env sg = mksig (Tsig_attribute attr) env loc, [], env | Psig_extension (ext, _attrs) -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) + | Psig_kind_abbrev _ -> + Misc.fatal_error "kind_abbrev not supported!" in let rec transl_sig env sig_items sig_type = function | [] -> List.rev sig_items, List.rev sig_type, env @@ -2049,11 +2031,12 @@ and transl_signature env sg = Builtin_attributes.warning_scope [] (fun () -> let (trem, rem, final_env) = - transl_sig (Env.in_signature true env) [] [] sg + transl_sig (Env.in_signature true env) [] [] psg_items in let rem = Signature_names.simplify final_env names rem in let sg = - { sig_items = trem; sig_type = rem; sig_final_env = final_env } + { sig_items = trem; sig_type = rem; sig_final_env = final_env; + sig_modalities; sig_sloc = psg_loc } in Cmt_format.set_saved_types ((Cmt_format.Partial_signature sg) :: previous_saved_types); @@ -2547,48 +2530,13 @@ let rec type_module ?(alias=false) sttn funct_body anchor env smod = (fun () -> type_module_aux ~alias sttn funct_body anchor env smod) and type_module_aux ~alias sttn funct_body anchor env smod = - match Jane_syntax.Module_expr.of_ast smod with - Some ext -> - type_module_extension_aux ~alias sttn env smod ext - | None -> match smod.pmod_desc with Pmod_ident lid -> let path, mode = Env.lookup_module_path ~load:(not alias) ~loc:smod.pmod_loc lid.txt env in Mode.Value.submode_exn mode Mode.Value.legacy; - let md = { mod_desc = Tmod_ident (path, lid); - mod_type = Mty_alias path; - mod_env = env; - mod_attributes = smod.pmod_attributes; - mod_loc = smod.pmod_loc } in - let aliasable = not (Env.is_functor_arg path env) in - let shape = - Env.shape_of_path ~namespace:Shape.Sig_component_kind.Module env path - in - let shape = if alias && aliasable then Shape.alias shape else shape in - let md = - if alias && aliasable then - (Env.add_required_global path env; md) - else begin - let mty = Mtype.find_type_of_module - ~strengthen:sttn ~aliasable env path - in - match mty with - | Mty_alias p1 when not alias -> - let p1 = Env.normalize_module_path (Some smod.pmod_loc) env p1 in - let mty = Includemod.expand_module_alias - ~strengthen:sttn env p1 in - { md with - mod_desc = - Tmod_constraint (md, mty, Tmodtype_implicit, - Tcoerce_alias (env, path, Tcoerce_none)); - mod_type = mty } - | mty -> - { md with mod_type = mty } - end - in - md, shape + type_module_path_aux ~alias sttn env path lid smod | Pmod_structure sstr -> let (str, sg, names, shape, _finalenv) = type_structure funct_body anchor env sstr in @@ -2691,15 +2639,56 @@ and type_module_aux ~alias sttn funct_body anchor env smod = Shape.leaf_for_unpack | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) - -and type_module_extension_aux ~alias sttn env smod - : Jane_syntax.Module_expr.t -> _ = - function - | Emod_instance (Imod_instance glob) -> - ignore (alias, sttn); + | Pmod_instance glob -> + Language_extension.assert_enabled ~loc:smod.pmod_loc Instances (); let glob = instance_name ~loc:smod.pmod_loc env glob in - Misc.fatal_errorf "@[Unimplemented: instance identifier@ %a@]" - Global_module.Name.print glob + let path, mode = + Env.lookup_module_instance_path ~load:(not alias) ~loc:smod.pmod_loc + glob env + in + Mode.Value.submode_exn mode Mode.Value.legacy; + let lid = + (* Only used by [untypeast] *) + let name = + Format.asprintf "*instance %a*" Global_module.Name.print glob + in + Lident name |> Location.mknoloc + in + type_module_path_aux ~alias sttn env path lid smod + +and type_module_path_aux ~alias sttn env path lid smod = + let md = { mod_desc = Tmod_ident (path, lid); + mod_type = Mty_alias path; + mod_env = env; + mod_attributes = smod.pmod_attributes; + mod_loc = smod.pmod_loc } in + let aliasable = not (Env.is_functor_arg path env) in + let shape = + Env.shape_of_path ~namespace:Shape.Sig_component_kind.Module env path + in + let shape = if alias && aliasable then Shape.alias shape else shape in + let md = + if alias && aliasable then + (Env.add_required_global path env; md) + else begin + let mty = Mtype.find_type_of_module + ~strengthen:sttn ~aliasable env path + in + match mty with + | Mty_alias p1 when not alias -> + let p1 = Env.normalize_module_path (Some smod.pmod_loc) env p1 in + let mty = Includemod.expand_module_alias + ~strengthen:sttn env p1 in + { md with + mod_desc = + Tmod_constraint (md, mty, Tmodtype_implicit, + Tcoerce_alias (env, path, Tcoerce_none)); + mod_type = mty } + | mty -> + { md with mod_type = mty } + end + in + md, shape and type_application loc strengthen funct_body env smod = let rec extract_application funct_body env sargs smod = @@ -2924,7 +2913,7 @@ and type_structure ?(toplevel = None) funct_body anchor env sstr = let incl_kind, sg = match sincl.pincl_kind with | Functor -> - Jane_syntax_parsing.assert_extension_enabled ~loc Include_functor (); + Language_extension.assert_enabled ~loc Include_functor (); let sg, incl_kind = extract_sig_functor_open funct_body env smodl.pmod_loc modl.mod_type sig_acc @@ -2950,12 +2939,6 @@ and type_structure ?(toplevel = None) funct_body anchor env sstr = Tstr_include incl, sg, shape, new_env in - let type_str_item_jst ~loc:_ _env _shape_map jitem _sig_acc = - match (jitem : Jane_syntax.Structure_item.t) with - | Jstr_layout (Lstr_kind_abbrev _) -> - Misc.fatal_error "kind_abbrev not supported!" - in - let force_toplevel = (* A couple special cases are needed for the toplevel: @@ -2969,11 +2952,8 @@ and type_structure ?(toplevel = None) funct_body anchor env sstr = in let type_str_item - env shape_map ({pstr_loc = loc; pstr_desc = desc} as item) sig_acc = + env shape_map {pstr_loc = loc; pstr_desc = desc} sig_acc = let md_mode = Mode.Value.legacy in - match Jane_syntax.Structure_item.of_ast item with - | Some jitem -> type_str_item_jst ~loc env shape_map jitem sig_acc - | None -> match desc with | Pstr_eval (sexpr, attrs) -> let expr, sort = @@ -3064,7 +3044,7 @@ and type_structure ?(toplevel = None) funct_body anchor env sstr = shape_map, newenv | Pstr_primitive sdesc -> - let (desc, newenv) = Typedecl.transl_value_decl env loc sdesc in + let (desc, newenv) = Typedecl.transl_value_decl env ~sig_modalities:Mode.Modality.Value.Const.id loc sdesc in Signature_names.check_value names desc.val_loc desc.val_id; Tstr_primitive desc, [Sig_value(desc.val_id, desc.val_val, Exported)], @@ -3342,6 +3322,8 @@ and type_structure ?(toplevel = None) funct_body anchor env sstr = || not (Warnings.is_active (Misplaced_attribute "")) then Builtin_attributes.mark_alert_used x; Tstr_attribute x, [], shape_map, env + | Pstr_kind_abbrev _ -> + Misc.fatal_error "kind_abbrev not supported!" in let toplevel_sig = Option.value toplevel ~default:[] in let rec type_struct env shape_map sstr str_acc sig_acc @@ -3847,7 +3829,7 @@ let save_signature target modname tsg initial_env cmi = (Cmt_format.Interface tsg) initial_env None let cms_register_toplevel_signature_attributes ~sourcefile ~uid ast = - cms_register_toplevel_attributes ~sourcefile ~uid ast + cms_register_toplevel_attributes ~sourcefile ~uid ast.psg_items ~f:(function | { psig_desc = Psig_attribute attr; _ } -> Some attr | _ -> None) diff --git a/upstream/ocaml_flambda/typing/typemode.ml b/upstream/ocaml_flambda/typing/typemode.ml index 9b020815e..8cbd18650 100644 --- a/upstream/ocaml_flambda/typing/typemode.ml +++ b/upstream/ocaml_flambda/typing/typemode.ml @@ -58,7 +58,7 @@ let transl_annot (type m) ~(annot_type : m annot_type) ~required_mode_maturity annot : m Axis_pair.t = Option.iter (fun maturity -> - Jane_syntax_parsing.assert_extension_enabled ~loc:annot.loc Mode maturity) + Language_extension.assert_enabled ~loc:annot.loc Mode maturity) required_mode_maturity; match Axis_pair.of_string annot.txt, annot_type with | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) -> diff --git a/upstream/ocaml_flambda/typing/typeopt.ml b/upstream/ocaml_flambda/typing/typeopt.ml index 8b9c3b49b..a7f6db307 100644 --- a/upstream/ocaml_flambda/typing/typeopt.ml +++ b/upstream/ocaml_flambda/typing/typeopt.ml @@ -349,6 +349,9 @@ let value_kind_of_value_jkind jkind = *) exception Missing_cmi_fallback +(* CR vlaviron: replace this with proper nullability info *) +let mk_nn raw_kind = { raw_kind; nullable = Non_nullable } + let fallback_if_missing_cmi ~default f = try f () with Missing_cmi_fallback -> default @@ -404,44 +407,44 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty end; match get_desc scty with | Tconstr(p, _, _) when Path.same p Predef.path_int -> - num_nodes_visited, Pintval + num_nodes_visited, mk_nn Pintval | Tconstr(p, _, _) when Path.same p Predef.path_char -> - num_nodes_visited, Pintval + num_nodes_visited, mk_nn Pintval | Tconstr(p, _, _) when Path.same p Predef.path_float -> - num_nodes_visited, (Pboxedfloatval Pfloat64) + num_nodes_visited, mk_nn (Pboxedfloatval Pfloat64) | Tconstr(p, _, _) when Path.same p Predef.path_float32 -> - num_nodes_visited, (Pboxedfloatval Pfloat32) + num_nodes_visited, mk_nn (Pboxedfloatval Pfloat32) | Tconstr(p, _, _) when Path.same p Predef.path_int32 -> - num_nodes_visited, (Pboxedintval Pint32) + num_nodes_visited, mk_nn (Pboxedintval Pint32) | Tconstr(p, _, _) when Path.same p Predef.path_int64 -> - num_nodes_visited, (Pboxedintval Pint64) + num_nodes_visited, mk_nn (Pboxedintval Pint64) | Tconstr(p, _, _) when Path.same p Predef.path_nativeint -> - num_nodes_visited, (Pboxedintval Pnativeint) + num_nodes_visited, mk_nn (Pboxedintval Pnativeint) | Tconstr(p, _, _) when Path.same p Predef.path_int8x16 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_int16x8 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_int32x4 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_int64x2 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_float32x4 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_float64x2 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when (Path.same p Predef.path_array || Path.same p Predef.path_floatarray) -> (* CR layouts: [~elt_sort:None] here is bad for performance. To fix it, we need a place to store the sort on a [Tconstr]. *) - num_nodes_visited, Parrayval (array_type_kind ~elt_sort:None env loc ty) + num_nodes_visited, mk_nn (Parrayval (array_type_kind ~elt_sort:None env loc ty)) | Tconstr(p, _, _) -> begin let decl = try Env.find_type p env with Not_found -> raise Missing_cmi_fallback in if cannot_proceed () then num_nodes_visited, - value_kind_of_value_jkind decl.type_jkind + mk_nn (value_kind_of_value_jkind decl.type_jkind) else let visited = Numbers.Int.Set.add (get_id ty) visited in (* Default of [Pgenval] is currently safe for the missing cmi fallback @@ -449,24 +452,24 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty of [value_kind]. *) match decl.type_kind with | Type_variant (cstrs, rep) -> - fallback_if_missing_cmi ~default:(num_nodes_visited, Pgenval) + fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited cstrs rep) | Type_record (labels, rep) -> let depth = depth + 1 in - fallback_if_missing_cmi ~default:(num_nodes_visited, Pgenval) + fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind_record env ~loc ~visited ~depth ~num_nodes_visited labels rep) | Type_abstract _ -> num_nodes_visited, - value_kind_of_value_jkind decl.type_jkind - | Type_open -> num_nodes_visited, Pgenval + mk_nn (value_kind_of_value_jkind decl.type_jkind) + | Type_open -> num_nodes_visited, mk_nn Pgenval end | Ttuple labeled_fields -> if cannot_proceed () then - num_nodes_visited, Pgenval + num_nodes_visited, mk_nn Pgenval else - fallback_if_missing_cmi ~default:(num_nodes_visited, Pgenval) (fun () -> + fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> let visited = Numbers.Int.Set.add (get_id ty) visited in let depth = depth + 1 in let num_nodes_visited, fields = @@ -480,12 +483,12 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty num_nodes_visited labeled_fields in num_nodes_visited, - Pvariant { consts = []; non_consts = [0, Constructor_uniform fields] }) + mk_nn (Pvariant { consts = []; non_consts = [0, Constructor_uniform fields] })) | Tvariant row -> num_nodes_visited, - if Ctype.tvariant_not_immediate row then Pgenval else Pintval + if Ctype.tvariant_not_immediate row then mk_nn Pgenval else mk_nn Pintval | _ -> - num_nodes_visited, Pgenval + num_nodes_visited, mk_nn Pgenval and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited (cstrs : Types.constructor_declaration list) rep = @@ -578,6 +581,7 @@ and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited | Cstr_tuple [] -> true | (Cstr_tuple (_::_) | Cstr_record _) -> false in + let num_nodes_visited, raw_kind = if List.for_all is_constant cstrs then (num_nodes_visited, Pintval) else @@ -616,6 +620,8 @@ and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited | _::_ -> (num_nodes_visited, Pvariant { consts; non_consts }) end + in + num_nodes_visited, mk_nn raw_kind and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited (labels : Types.label_declaration list) rep = @@ -636,7 +642,7 @@ and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited labels in if is_mutable then - num_nodes_visited, Pgenval + num_nodes_visited, mk_nn Pgenval else let num_nodes_visited, fields = match rep with @@ -661,7 +667,7 @@ and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited optimization. *) match rep with | Record_float | Record_ufloat -> - num_nodes_visited, Pboxedfloatval Pfloat64 + num_nodes_visited, mk_nn (Pboxedfloatval Pfloat64) | Record_inlined _ | Record_boxed _ -> value_kind env ~loc ~visited ~depth ~num_nodes_visited label.ld_type @@ -709,7 +715,7 @@ and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited [0, fields] | Record_unboxed -> assert false in - (num_nodes_visited, Pvariant { consts = []; non_consts }) + (num_nodes_visited, mk_nn (Pvariant { consts = []; non_consts })) end let value_kind env loc ty = @@ -739,11 +745,12 @@ let[@inline always] rec layout_of_const_sort_generic ~value_kind ~error | Base Vec128 when Language_extension.(is_at_least Layouts Stable) && Language_extension.(is_at_least SIMD Stable) -> Lambda.Punboxed_vector Pvec128 - | Product consts when Language_extension.(is_at_least Layouts Beta) -> + | Product consts when Language_extension.(is_at_least Layouts Stable) -> (* CR layouts v7.1: assess whether it is important for performance to support deep value_kinds here *) Lambda.Punboxed_product - (List.map (layout_of_const_sort_generic ~value_kind:(lazy Pgenval) ~error) + (List.map (layout_of_const_sort_generic + ~value_kind:(lazy Lambda.generic_value) ~error) consts) | (( Base (Void | Float32 | Float64 | Word | Bits32 | Bits64 | Vec128) | Product _) as const) -> @@ -763,20 +770,16 @@ let layout env loc sort ty = | Base Vec128 as const -> raise (Error (loc, Simd_sort_without_extension (Jkind.Sort.of_const const, Some ty))) - | Base (Float64 | Word | Bits32 | Bits64) as const -> + | (Base (Float64 | Word | Bits32 | Bits64) | Product _) as const -> raise (Error (loc, Sort_without_extension (Jkind.Sort.of_const const, Stable, Some ty))) - | Product _ as const -> - raise (Error (loc, Sort_without_extension (Jkind.Sort.of_const const, - Beta, - Some ty))) ) let layout_of_sort loc sort = layout_of_const_sort_generic (Jkind.Sort.default_to_value_and_get sort) - ~value_kind:(lazy Pgenval) + ~value_kind:(lazy Lambda.generic_value) ~error:(function | Base Value -> assert false | Base Void -> @@ -787,18 +790,15 @@ let layout_of_sort loc sort = | Base Vec128 as const -> raise (Error (loc, Simd_sort_without_extension (Jkind.Sort.of_const const, None))) - | Base (Float64 | Word | Bits32 | Bits64) as const -> + | (Base (Float64 | Word | Bits32 | Bits64) | Product _) as const -> raise (Error (loc, Sort_without_extension (Jkind.Sort.of_const const, Stable, None))) - | Product _ as const -> - raise (Error (loc, Sort_without_extension (Jkind.Sort.of_const const, - Beta, - None)))) + ) let layout_of_const_sort c = layout_of_const_sort_generic c - ~value_kind:(lazy Pgenval) + ~value_kind:(lazy Lambda.generic_value) ~error:(fun const -> Misc.fatal_errorf "layout_of_const_sort: %a encountered" Jkind.Sort.Const.format const) @@ -865,7 +865,9 @@ let classify_lazy_argument : Typedtree.expression -> let value_kind_union (k1 : Lambda.value_kind) (k2 : Lambda.value_kind) = if Lambda.equal_value_kind k1 k2 then k1 - else Pgenval + (* CR vlaviron: we could be more precise by comparing nullability and + raw kinds separately *) + else Lambda.generic_value let rec layout_union l1 l2 = match l1, l2 with diff --git a/upstream/ocaml_flambda/typing/typetexp.ml b/upstream/ocaml_flambda/typing/typetexp.ml index fb87db43e..224e7dc57 100644 --- a/upstream/ocaml_flambda/typing/typetexp.ml +++ b/upstream/ocaml_flambda/typing/typetexp.ml @@ -165,7 +165,8 @@ module TyVarEnv : sig val make_poly_univars_jkinds : context:(string -> Jkind.History.annotation_context) -> - (string Location.loc * Jane_syntax.Jkind.annotation option) list -> poly_univars + (string Location.loc * Parsetree.jkind_annotation option) list + -> poly_univars (* see mli file *) val check_poly_univars : Env.t -> Location.t -> poly_univars -> type_expr list @@ -577,27 +578,27 @@ let transl_type_param_var env loc attrs name_opt { ctyp_desc = tvar; ctyp_type = ty; ctyp_env = env; ctyp_loc = loc; ctyp_attributes = attrs } -let transl_type_param_jst env loc attrs path : - Jane_syntax.Core_type.t -> _ = - function - | Jtyp_layout (Ltyp_var { name; jkind = jkind_annot }) -> - let jkind, jkind_annot = - Jkind.of_annotation ~context:(Type_parameter (path, name)) jkind_annot - in - transl_type_param_var env loc attrs name jkind (Some jkind_annot) - | Jtyp_layout (Ltyp_poly _ | Ltyp_alias _) -> - Misc.fatal_error "non-type-variable in transl_type_param_jst" - let transl_type_param env path jkind_default styp = let loc = styp.ptyp_loc in - match Jane_syntax.Core_type.of_ast styp with - | Some (etyp, attrs) -> transl_type_param_jst env loc attrs path etyp - | None -> + let transl_jkind_and_annot_opt jkind_annot name = + match jkind_annot with + | None -> jkind_default, None + | Some jkind_annot -> + let jkind, jkind_annot = + Jkind.of_annotation ~context:(Type_parameter (path, name)) jkind_annot + in + jkind, Some jkind_annot + in let attrs = styp.ptyp_attributes in match styp.ptyp_desc with - Ptyp_any -> transl_type_param_var env loc attrs None jkind_default None - | Ptyp_var name -> - transl_type_param_var env loc attrs (Some name) jkind_default None + Ptyp_any jkind -> + let name = None in + let jkind, jkind_annot = transl_jkind_and_annot_opt jkind name in + transl_type_param_var env loc attrs name jkind jkind_annot + | Ptyp_var (name, jkind) -> + let name = Some name in + let jkind, jkind_annot = transl_jkind_and_annot_opt jkind name in + transl_type_param_var env loc attrs name jkind jkind_annot | _ -> assert false let transl_type_param env path jkind_default styp = @@ -607,23 +608,24 @@ let transl_type_param env path jkind_default styp = (fun () -> transl_type_param env path jkind_default styp) let get_type_param_jkind path styp = - match Jane_syntax.Core_type.of_ast styp with - | None -> Jkind.of_new_legacy_sort ~why:(Unannotated_type_parameter path) - | Some (Jtyp_layout (Ltyp_var { name; jkind }), _attrs) -> + let of_annotation jkind name = let jkind, _ = - Jkind.of_annotation - ~context:(Type_parameter (path, name)) - jkind + Jkind.of_annotation ~context:(Type_parameter (path, name)) jkind in jkind - | Some _ -> Misc.fatal_error "non-type-variable in get_type_param_jkind" + in + match styp.ptyp_desc with + | Ptyp_any (Some jkind) -> + of_annotation jkind None + | Ptyp_var (name, Some jkind) -> + of_annotation jkind (Some name) + | _ -> Jkind.of_new_legacy_sort ~why:(Unannotated_type_parameter path) let get_type_param_name styp = - (* We don't need to check for jane-syntax here, just to get the - name. *) + (* We don't need to check for jkinds here, just to get the name. *) match styp.ptyp_desc with - | Ptyp_any -> None - | Ptyp_var name -> Some name + | Ptyp_any _ -> None + | Ptyp_var (name, _) -> Some name | _ -> Misc.fatal_error "non-type-variable in get_type_param_name" let rec extract_params styp = @@ -677,15 +679,14 @@ let enrich_with_attributes attrs annotation_context = | None -> annotation_context let jkind_of_annotation annotation_context attrs jkind = - Jkind.of_annotation ~context:(enrich_with_attributes attrs annotation_context) jkind + Jkind.of_annotation ~context:(enrich_with_attributes attrs annotation_context) + jkind (* translate the ['a 'b ('c : immediate) .] part of a polytype, returning a [poly_univars] *) -let transl_bound_vars : (_, _) Either.t -> _ = - function - | Left vars_only -> TyVarEnv.make_poly_univars vars_only - | Right vars_jkinds -> TyVarEnv.make_poly_univars_jkinds - ~context:(fun v -> Univar ("'" ^ v)) vars_jkinds +let transl_bound_vars vars_jkinds = + TyVarEnv.make_poly_univars_jkinds + ~context:(fun v -> Univar ("'" ^ v)) vars_jkinds (* Forward declaration (set in Typemod.type_open) *) let type_open : @@ -704,20 +705,23 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = { ctyp_desc; ctyp_type; ctyp_env = env; ctyp_loc = loc; ctyp_attributes = styp.ptyp_attributes } in - match Jane_syntax.Core_type.of_ast styp with - | Some (etyp, attrs) -> - transl_type_aux_jst env ~policy ~row_context mode attrs loc etyp - | None -> match styp.ptyp_desc with - Ptyp_any -> - let ty = - TyVarEnv.new_any_var loc env (TyVarEnv.new_jkind ~is_named:false policy) policy - in - ctyp (Ttyp_var (None, None)) ty - | Ptyp_var name -> + Ptyp_any jkind -> + let tjkind, tjkind_annot = + match jkind with + | None -> TyVarEnv.new_jkind ~is_named:false policy, None + | Some jkind -> + let tjkind, tjkind_annot = + jkind_of_annotation (Type_wildcard loc) styp.ptyp_attributes jkind + in + tjkind, Some tjkind_annot + in + let ty = TyVarEnv.new_any_var loc env tjkind policy in + ctyp (Ttyp_var (None, tjkind_annot)) ty + | Ptyp_var (name, jkind) -> let desc, typ = transl_type_var env ~policy ~row_context - styp.ptyp_attributes styp.ptyp_loc name None + styp.ptyp_attributes styp.ptyp_loc name jkind in ctyp desc typ | Ptyp_arrow _ -> @@ -768,8 +772,7 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = in ctyp desc typ | Ptyp_unboxed_tuple stl -> - Jane_syntax_parsing.assert_extension_enabled ~loc Layouts - Language_extension.Beta; + Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; let tl = List.map (fun (label, t) -> @@ -785,7 +788,7 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = let (path, decl) = Env.lookup_type ~loc:lid.loc lid.txt env in let stl = match stl with - | [ {ptyp_desc=Ptyp_any} as t ] when decl.type_arity > 1 -> + | [ {ptyp_desc=Ptyp_any None} as t ] when decl.type_arity > 1 -> List.map (fun _ -> t) decl.type_params | _ -> stl in @@ -877,10 +880,10 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = assert false in ctyp (Ttyp_class (path, lid, args)) ty - | Ptyp_alias(st, alias) -> + | Ptyp_alias(st, alias, jkind) -> let desc, typ = transl_type_alias env ~policy ~row_context - mode styp.ptyp_attributes loc st (Some alias) None + mode styp.ptyp_attributes loc st alias jkind in ctyp desc typ | Ptyp_variant(fields, closed, present) -> @@ -1007,7 +1010,7 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = | Ptyp_poly(vars, st) -> let desc, typ = transl_type_poly env ~policy ~row_context mode styp.ptyp_loc - (Either.Left vars) st + vars st in ctyp desc typ | Ptyp_package (p, l) -> @@ -1054,33 +1057,6 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = | Ptyp_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) -and transl_type_aux_jst env ~policy ~row_context mode attrs loc - (jtyp : Jane_syntax.Core_type.t) = - let ctyp_desc, ctyp_type = - match jtyp with - | Jtyp_layout typ -> - transl_type_aux_jst_layout env ~policy ~row_context mode attrs loc typ - in - { ctyp_desc; ctyp_type; ctyp_env = env; ctyp_loc = loc; - ctyp_attributes = attrs } - -and transl_type_aux_jst_layout env ~policy ~row_context mode attrs loc : - Jane_syntax.Layouts.core_type -> _ = function - | Ltyp_var { name = None; jkind } -> - let tjkind, tjkind_annot = - jkind_of_annotation (Type_wildcard loc) attrs jkind - in - Ttyp_var (None, Some tjkind_annot), - TyVarEnv.new_any_var loc env tjkind policy - | Ltyp_var { name = Some name; jkind } -> - transl_type_var env ~policy ~row_context attrs loc name (Some jkind) - | Ltyp_poly { bound_vars; inner_type } -> - transl_type_poly env ~policy ~row_context mode loc (Either.Right bound_vars) - inner_type - | Ltyp_alias { aliased_type; name; jkind } -> - transl_type_alias env ~policy ~row_context mode attrs loc aliased_type name - (Some jkind) - and transl_type_var env ~policy ~row_context attrs loc name jkind_annot_opt = let print_name = "'" ^ name in if not (valid_tyvar_name name) then @@ -1106,12 +1082,11 @@ and transl_type_var env ~policy ~row_context attrs loc name jkind_annot_opt = match constrain_type_jkind env ty jkind with | Ok () -> Some annot | Error err -> - raise (Error(jkind_annot.loc, env, Bad_jkind_annot (ty, err))) + raise (Error(jkind_annot.pjkind_loc, env, Bad_jkind_annot (ty, err))) in Ttyp_var (Some name, jkind_annot), ty -and transl_type_poly env ~policy ~row_context mode loc (vars : (_, _) Either.t) - st = +and transl_type_poly env ~policy ~row_context mode loc vars st = let typed_vars, new_univars, cty = with_local_level begin fun () -> let new_univars = transl_bound_vars vars in @@ -1152,7 +1127,7 @@ and transl_type_alias env ~row_context ~policy mode attrs styp_loc styp name_opt begin match constrain_type_jkind env t jkind with | Ok () -> () | Error err -> - raise (Error(jkind_annot.loc, env, Bad_jkind_annot(t, err))) + raise (Error(jkind_annot.pjkind_loc, env, Bad_jkind_annot(t, err))) end; Some annot in @@ -1200,12 +1175,12 @@ and transl_type_alias env ~row_context ~policy mode attrs styp_loc styp name_opt | Some jkind_annot -> jkind_annot in let jkind, annot = - jkind_of_annotation (Type_wildcard jkind_annot.loc) attrs jkind_annot + jkind_of_annotation (Type_wildcard jkind_annot.pjkind_loc) attrs jkind_annot in begin match constrain_type_jkind env cty_expr jkind with | Ok () -> () | Error err -> - raise (Error(jkind_annot.loc, env, + raise (Error(jkind_annot.pjkind_loc, env, Bad_jkind_annot(cty_expr, err))) end; cty, Some annot @@ -1218,8 +1193,9 @@ and transl_type_aux_tuple env ~loc ~policy ~row_context stl = let ctys = List.map (fun (label, t) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) label; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + label; label, transl_type env ~policy ~row_context Alloc.Const.legacy t) stl in @@ -1427,22 +1403,11 @@ let transl_type_scheme_poly env attrs loc vars inner_type = ctyp_loc = loc; ctyp_attributes = attrs } -let transl_type_scheme_jst env styp attrs loc : Jane_syntax.Core_type.t -> _ = - function - | Jtyp_layout (Ltyp_poly { bound_vars; inner_type }) -> - transl_type_scheme_poly env attrs loc (Right bound_vars) inner_type - | Jtyp_layout (Ltyp_var _ | Ltyp_alias _) -> - transl_type_scheme_mono env styp - let transl_type_scheme env styp = - match Jane_syntax.Core_type.of_ast styp with - | Some (etyp, attrs) -> - transl_type_scheme_jst env styp attrs styp.ptyp_loc etyp - | None -> match styp.ptyp_desc with | Ptyp_poly (vars, st) -> transl_type_scheme_poly env styp.ptyp_attributes - styp.ptyp_loc (Either.Left vars) st + styp.ptyp_loc vars st | _ -> transl_type_scheme_mono env styp diff --git a/upstream/ocaml_flambda/typing/typetexp.mli b/upstream/ocaml_flambda/typing/typetexp.mli index 835545fda..3a1ac480b 100644 --- a/upstream/ocaml_flambda/typing/typetexp.mli +++ b/upstream/ocaml_flambda/typing/typetexp.mli @@ -37,7 +37,7 @@ module TyVarEnv : sig val make_poly_univars_jkinds : context:(string -> Jkind.History.annotation_context) -> - (string Location.loc * Jane_syntax.Jkind.annotation option) list -> + (string Location.loc * Parsetree.jkind_annotation option) list -> poly_univars (** remember that a list of strings connotes univars; this must always be paired with a [check_poly_univars]. *) diff --git a/upstream/ocaml_flambda/typing/uniqueness_analysis.ml b/upstream/ocaml_flambda/typing/uniqueness_analysis.ml index c532e83da..69ce111ba 100644 --- a/upstream/ocaml_flambda/typing/uniqueness_analysis.ml +++ b/upstream/ocaml_flambda/typing/uniqueness_analysis.ml @@ -111,7 +111,7 @@ module Maybe_aliased : sig type t type access = - | Read + | Read of Unique_barrier.t | Write val string_of_access : access -> string @@ -119,7 +119,10 @@ module Maybe_aliased : sig (** The type representing a usage that could be either aliased or borrowed *) (** Extract an arbitrary occurrence from the usage *) - val extract_occurrence_access : t -> Occurrence.t * access + val extract_occurrence : t -> Occurrence.t + + (** extract an arbitrary access from this usage *) + val extract_access : t -> access (** Add a barrier. The uniqueness mode represents the usage immediately following the current usage. If that mode is Unique, the current usage @@ -130,13 +133,15 @@ module Maybe_aliased : sig val meet : t -> t -> t - val singleton : unique_barrier ref -> Occurrence.t -> access -> t + val singleton : Occurrence.t -> access -> t end = struct type access = - | Read + | Read of Unique_barrier.t | Write - let string_of_access = function Read -> "read from" | Write -> "written to" + let string_of_access = function + | Read _ -> "read from" + | Write -> "written to" (** list of occurences together with modes to be forced as borrowed in the future if needed. It is a list because of multiple control flows. For @@ -145,19 +150,24 @@ end = struct is the meet of all modes in the list. (recall that borrowed > aliased). Therefore, if this virtual mode needs to be forced borrowed, the whole list needs to be forced borrowed. *) - type t = (unique_barrier ref * Occurrence.t * access) list + type t = (Occurrence.t * access) list let meet l0 l1 = l0 @ l1 - let singleton r occ access = [r, occ, access] + let singleton occ access = [occ, access] + + let extract_occurrence = function [] -> assert false | (occ, _) :: _ -> occ - let extract_occurrence_access = function + let extract_access = function | [] -> assert false - | (_, occ, access) :: _ -> occ, access + | (_, access) :: _ -> access let add_barrier t uniq = List.iter - (fun (barrier, _, _) -> barrier := Uniqueness.meet [!barrier; uniq]) + (fun (_, access) -> + match access with + | Read barrier -> Unique_barrier.add_upper_bound uniq barrier + | _ -> ()) t end @@ -302,7 +312,7 @@ end = struct let extract_occurrence = function | Unused -> None | Borrowed occ -> Some occ - | Maybe_aliased t -> Some (Maybe_aliased.extract_occurrence_access t |> fst) + | Maybe_aliased t -> Some (Maybe_aliased.extract_occurrence t) | Aliased t -> Some (Aliased.extract_occurrence t) | Maybe_unique t -> Some (Maybe_unique.extract_occurrence t) @@ -312,7 +322,10 @@ end = struct | Borrowed _, t | t, Borrowed _ -> t | Maybe_aliased l0, Maybe_aliased l1 -> Maybe_aliased (Maybe_aliased.meet l0 l1) - | Maybe_aliased _, t | t, Maybe_aliased _ -> t + | Maybe_aliased _, t | t, Maybe_aliased _ -> + (* The barrier stays empty; if there is any unique after this, + the analysis will error *) + t | Aliased _, t | t, Aliased _ -> t | Maybe_unique l0, Maybe_unique l1 -> Maybe_unique (Maybe_unique.meet l0 l1) @@ -347,14 +360,14 @@ end = struct | Maybe_aliased t0, Maybe_aliased t1 -> Maybe_aliased (Maybe_aliased.meet t0 t1) | Maybe_aliased _, Aliased occ | Aliased occ, Maybe_aliased _ -> - (* The barrier stays empty; if there is any unique after this, it - will error *) + (* The barrier stays empty; if there is any unique after this, + the analysis will error *) Aliased occ | Maybe_aliased t0, Maybe_unique t1 | Maybe_unique t1, Maybe_aliased t0 -> (* t1 must be aliased *) force_aliased_multiuse t1 (Maybe_aliased t0) First; - (* The barrier stays empty; if there is any unique after this, it will - error *) + (* The barrier stays empty; if there is any unique after this, + the analysis will error *) aliased (Maybe_unique.extract_occurrence t1) Aliased.Forced | Aliased t0, Aliased _ -> Aliased t0 | Aliased t0, Maybe_unique t1 -> @@ -407,7 +420,10 @@ end = struct | Maybe_unique l, Borrowed occ -> force_aliased_multiuse l m1 First; aliased occ Aliased.Forced - | Aliased _, Maybe_aliased _ -> m0 + | Aliased _, Maybe_aliased _ -> + (* The barrier stays empty; if there is any unique after this, + the analysis will error *) + m0 | Maybe_unique l0, Maybe_aliased l1 -> (* Four cases: Aliased;Borrowed = Aliased @@ -417,8 +433,10 @@ end = struct As you can see, we need to force the m0 to Aliased, and m1 needn't be constrained. The result is always Aliased. + The barrier stays empty; if there is any unique after this, + the analysis will error. *) - let occ, _ = Maybe_aliased.extract_occurrence_access l1 in + let occ = Maybe_aliased.extract_occurrence l1 in force_aliased_multiuse l0 m1 First; aliased occ Aliased.Forced | Aliased _, Aliased _ -> m0 @@ -441,7 +459,7 @@ module Projection : sig | Record_field of string | Construct_field of string * int | Variant_field of label - | Memory_address + | Memory_address (* this is rendered as clubsuit in the ICFP'24 paper *) module Map : Map.S with type key = t end = struct @@ -766,7 +784,7 @@ module Paths : sig val choose : t -> t -> t val mark_implicit_borrow_memory_address : - Maybe_aliased.access -> Occurrence.t -> t -> UF.t + Occurrence.t -> Maybe_aliased.access -> t -> UF.t val mark_aliased : Occurrence.t -> Aliased.reason -> t -> UF.t end = struct @@ -808,13 +826,9 @@ end = struct let fresh () = [UF.Path.fresh_root ()] - let mark_implicit_borrow_memory_address access occ paths = - (* Currently we just generate a dummy unique_barrier ref that won't be - consumed. The distinction between implicit and explicit borrowing is - still needed because they are handled differently in closures *) - let barrier = ref (Uniqueness.max |> Uniqueness.disallow_left) in + let mark_implicit_borrow_memory_address occ access paths = mark - (Maybe_aliased (Maybe_aliased.singleton barrier occ access)) + (Maybe_aliased (Maybe_aliased.singleton occ access)) (memory_address paths) let mark_aliased occ reason paths = mark (Usage.aliased occ reason) paths @@ -857,9 +871,7 @@ module Value : sig val mark_maybe_unique : t -> UF.t (** Mark the memory_address of the value as implicitly borrowed - (borrow_or_aliased). We still ask for the [occ] argument, because - [Value.occ] is the occurrence of the value, not necessary the place where - it is borrowed. *) + (borrow_or_aliased). *) val mark_implicit_borrow_memory_address : Maybe_aliased.access -> t -> UF.t val mark_aliased : reason:boundary_reason -> t -> UF.t @@ -890,7 +902,7 @@ end = struct let mark_implicit_borrow_memory_address access = function | Fresh -> UF.unused | Existing { paths; occ; _ } -> - Paths.mark_implicit_borrow_memory_address access occ paths + Paths.mark_implicit_borrow_memory_address occ access paths let mark_maybe_unique = function | Fresh -> UF.unused @@ -1000,10 +1012,13 @@ let conjuncts_pattern_match l = let rec pattern_match_tuple pat values = match pat.pat_desc with | Tpat_or (pat0, pat1, _) -> + Unique_barrier.enable pat.pat_unique_barrier; let ext0, uf0 = pattern_match_tuple pat0 values in let ext1, uf1 = pattern_match_tuple pat1 values in Ienv.Extension.disjunct ext0 ext1, UF.choose uf0 uf1 | Tpat_tuple pats -> + (* No read: the tuple does not exist in memory *) + Unique_barrier.enable pat.pat_unique_barrier; List.map2 (fun (_, pat) value -> let paths = @@ -1025,22 +1040,40 @@ let rec pattern_match_tuple pat values = and pattern_match_single pat paths : Ienv.Extension.t * UF.t = let loc = pat.pat_loc in let occ = Occurrence.mk loc in + (* To read from the allocation, we need to borrow its memory cell + and set the unique_barrier. However, we do not read in every case, + since the user might want use a wildcard for already-consumed data. *) + let no_borrow_memory_address () = + Unique_barrier.enable pat.pat_unique_barrier; + ignore (Unique_barrier.resolve pat.pat_unique_barrier) + in + let borrow_memory_address () = + Unique_barrier.enable pat.pat_unique_barrier; + Paths.mark_implicit_borrow_memory_address occ (Read pat.pat_unique_barrier) + paths + in match pat.pat_desc with | Tpat_or (pat0, pat1, _) -> + no_borrow_memory_address (); let ext0, uf0 = pattern_match_single pat0 paths in let ext1, uf1 = pattern_match_single pat1 paths in Ienv.Extension.disjunct ext0 ext1, UF.choose uf0 uf1 - | Tpat_any -> Ienv.Extension.empty, UF.unused - | Tpat_var (id, _, _, _) -> Ienv.Extension.singleton id paths, UF.unused + | Tpat_any -> + no_borrow_memory_address (); + Ienv.Extension.empty, UF.unused + | Tpat_var (id, _, _, _) -> + no_borrow_memory_address (); + Ienv.Extension.singleton id paths, UF.unused | Tpat_alias (pat', id, _, _, _) -> + no_borrow_memory_address (); let ext0 = Ienv.Extension.singleton id paths in let ext1, uf = pattern_match_single pat' paths in Ienv.Extension.conjunct ext0 ext1, uf | Tpat_constant _ -> - ( Ienv.Extension.empty, - Paths.mark_implicit_borrow_memory_address Read occ paths ) + let uf_read = borrow_memory_address () in + Ienv.Extension.empty, uf_read | Tpat_construct (lbl, cd, pats, _) -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let pats_args = List.combine pats cd.cstr_args in let ext, uf_pats = List.mapi @@ -1053,7 +1086,7 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_pats | Tpat_variant (lbl, arg, _) -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let ext, uf_arg = match arg with | Some arg -> @@ -1063,7 +1096,7 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_arg | Tpat_record (pats, _) -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let ext, uf_pats = List.map (fun (_, l, pat) -> @@ -1074,7 +1107,7 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_pats | Tpat_array (_, _, pats) -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let ext, uf_pats = List.map (fun pat -> @@ -1085,13 +1118,15 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_pats | Tpat_lazy arg -> + no_borrow_memory_address (); + (* forced below: *) (* forcing a lazy expression is like calling a nullary-function *) let uf_force = Paths.mark_aliased occ Lazy paths in let paths = Paths.fresh () in let ext, uf_arg = pattern_match_single arg paths in ext, UF.par uf_force uf_arg | Tpat_tuple args -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let ext, uf_args = List.mapi (fun i (_, arg) -> @@ -1102,6 +1137,8 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_args | Tpat_unboxed_tuple args -> + (* No borrow since unboxed data can not be consumed. *) + no_borrow_memory_address (); let ext, uf_args = List.mapi (fun i (_, arg, _) -> @@ -1116,11 +1153,18 @@ let pattern_match pat = function | Match_tuple values -> pattern_match_tuple pat values | Match_single paths -> pattern_match_single pat paths -(* We ignore exceptions in uniqueness analysis. *) let comp_pattern_match pat value = - match split_pattern pat with - | Some pat', _ -> pattern_match pat' value - | None, _ -> Ienv.Extension.empty, UF.unused + let vals, exns = split_pattern pat in + (* We ignore exceptions in uniqueness analysis, + since they can never contain unique values. *) + (match exns with + | Some exns -> + let _ = pattern_match exns (Match_single Paths.untracked) in + () + | None -> ()); + match vals with + | Some pat' -> pattern_match pat' value + | None -> Ienv.Extension.empty, UF.unused let value_of_ident ienv unique_use occ path = match path with @@ -1187,7 +1231,8 @@ let lift_implicit_borrowing uf = (function | Maybe_aliased t -> (* implicit borrowing lifted. *) - let occ, access = Maybe_aliased.extract_occurrence_access t in + let occ = Maybe_aliased.extract_occurrence t in + let access = Maybe_aliased.extract_access t in Usage.aliased occ (Aliased.Lifted access) | m -> (* other usage stays the same *) @@ -1283,9 +1328,12 @@ let rec check_uniqueness_exp (ienv : Ienv.t) exp : UF.t = let value, uf_ext = match extended_expression with | None -> Value.fresh, UF.unused - | Some exp -> + | Some (exp, unique_barrier) -> let value, uf_exp = check_uniqueness_exp_as_value ienv exp in - let uf_read = Value.mark_implicit_borrow_memory_address Read value in + Unique_barrier.enable unique_barrier; + let uf_read = + Value.mark_implicit_borrow_memory_address (Read unique_barrier) value + in value, UF.par uf_exp uf_read in let uf_fields = @@ -1418,14 +1466,20 @@ and check_uniqueness_exp_as_value ienv exp : Value.t * UF.t = | Some value -> value in value, UF.unused - | Texp_field (e, _, l, float) -> ( + | Texp_field (e, _, l, float, unique_barrier) -> ( let value, uf = check_uniqueness_exp_as_value ienv e in match Value.paths value with - | None -> Value.fresh, uf + | None -> + (* No barrier: the expression 'e' is not overwritable. *) + Unique_barrier.enable unique_barrier; + Value.fresh, uf | Some paths -> (* accessing the field meaning borrowing the parent record's mem block. Note that the field itself is not borrowed or used *) - let uf_read = Value.mark_implicit_borrow_memory_address Read value in + Unique_barrier.enable unique_barrier; + let uf_read = + Value.mark_implicit_borrow_memory_address (Read unique_barrier) value + in let uf_boxing, value = let occ = Occurrence.mk loc in let paths = Paths.record_field l.lbl_modalities l.lbl_name paths in @@ -1555,9 +1609,8 @@ let report_multi_use inner first_is_of_second = let here_usage = "used" in let there_usage = match there with - | Usage.Maybe_aliased t -> ( - let _, access = Maybe_aliased.extract_occurrence_access t in - match access with Read -> "read from" | Write -> "written to") + | Usage.Maybe_aliased t -> + Maybe_aliased.string_of_access (Maybe_aliased.extract_access t) | Usage.Aliased t -> ( match Aliased.reason t with | Forced | Lazy -> "used" diff --git a/upstream/ocaml_flambda/typing/untypeast.ml b/upstream/ocaml_flambda/typing/untypeast.ml index e604d402f..c4fec7710 100644 --- a/upstream/ocaml_flambda/typing/untypeast.ml +++ b/upstream/ocaml_flambda/typing/untypeast.ml @@ -123,22 +123,19 @@ let rec extract_letop_patterns n pat = (** Mapping functions. *) let constant = function - | Const_char c -> `Parsetree (Pconst_char c) - | Const_string (s,loc,d) -> `Parsetree (Pconst_string (s,loc,d)) - | Const_int i -> `Parsetree (Pconst_integer (Int.to_string i, None)) - | Const_int32 i -> `Parsetree (Pconst_integer (Int32.to_string i, Some 'l')) - | Const_int64 i -> `Parsetree (Pconst_integer (Int64.to_string i, Some 'L')) - | Const_nativeint i -> `Parsetree (Pconst_integer (Nativeint.to_string i, Some 'n')) - | Const_float f -> `Parsetree (Pconst_float (f,None)) - | Const_float32 f -> `Parsetree (Pconst_float (f, Some 's')) - | Const_unboxed_float f -> `Jane_syntax (Jane_syntax.Layouts.Float (f, None)) - | Const_unboxed_float32 f -> `Jane_syntax (Jane_syntax.Layouts.Float (f, Some 's')) - | Const_unboxed_int32 i -> - `Jane_syntax (Jane_syntax.Layouts.Integer (Int32.to_string i, 'l')) - | Const_unboxed_int64 i -> - `Jane_syntax (Jane_syntax.Layouts.Integer (Int64.to_string i, 'L')) - | Const_unboxed_nativeint i -> - `Jane_syntax (Jane_syntax.Layouts.Integer (Nativeint.to_string i, 'n')) + | Const_char c -> Pconst_char c + | Const_string (s,loc,d) -> Pconst_string (s,loc,d) + | Const_int i -> Pconst_integer (Int.to_string i, None) + | Const_int32 i -> Pconst_integer (Int32.to_string i, Some 'l') + | Const_int64 i -> Pconst_integer (Int64.to_string i, Some 'L') + | Const_nativeint i -> Pconst_integer (Nativeint.to_string i, Some 'n') + | Const_float f -> Pconst_float (f,None) + | Const_float32 f -> Pconst_float (f, Some 's') + | Const_unboxed_float f -> Pconst_unboxed_float (f, None) + | Const_unboxed_float32 f -> Pconst_unboxed_float (f, Some 's') + | Const_unboxed_int32 i -> Pconst_unboxed_integer (Int32.to_string i, 'l') + | Const_unboxed_int64 i -> Pconst_unboxed_integer (Int64.to_string i, 'L') + | Const_unboxed_nativeint i -> Pconst_unboxed_integer (Nativeint.to_string i, 'n') let attribute sub a = { attr_name = map_loc sub a.attr_name; @@ -229,7 +226,7 @@ let type_parameter sub (ct, v) = (sub.typ sub ct, v) let type_declaration sub decl = let loc = sub.location sub decl.typ_loc in let attrs = sub.attributes sub decl.typ_attributes in - Jane_syntax.Layouts.type_declaration_of + Type.mk ~loc ~attrs ~params:(List.map (type_parameter sub) decl.typ_params) ~cstrs:( @@ -239,10 +236,9 @@ let type_declaration sub decl = decl.typ_cstrs) ~kind:(sub.type_kind sub decl.typ_kind) ~priv:decl.typ_private - ~manifest:(Option.map (sub.typ sub) decl.typ_manifest) + ?manifest:(Option.map (sub.typ sub) decl.typ_manifest) ~docs:Docstrings.empty_docs - ~text:None - ~jkind:decl.typ_jkind_annotation + ?jkind_annotation:decl.typ_jkind_annotation (map_loc sub decl.typ_name) let type_kind sub tk = match tk with @@ -266,11 +262,10 @@ let constructor_declaration sub cd = let loc = sub.location sub cd.cd_loc in let attrs = sub.attributes sub cd.cd_attributes in let vars_jkinds = List.map (var_jkind ~loc) cd.cd_vars in - Jane_syntax.Layouts.constructor_declaration_of ~loc ~attrs - ~vars_jkinds + Type.constructor ~loc ~attrs + ~vars:vars_jkinds ~args:(constructor_arguments sub cd.cd_args) - ~res:(Option.map (sub.typ sub) cd.cd_res) - ~info:Docstrings.empty_info + ?res:(Option.map (sub.typ sub) cd.cd_res) (map_loc sub cd.cd_name) let mutable_ (mut : Types.mutability) : mutable_flag = @@ -317,8 +312,7 @@ let extension_constructor sub ext = let vs = List.map (var_jkind ~loc) vs in let args = constructor_arguments sub args in let ret = Option.map (sub.typ sub) ret in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~name ~attrs (Jext_layout (Lext_decl (vs, args, ret))) + Te.constructor ~loc ~attrs name (Pext_decl (vs, args, ret)) | Text_rebind (_p, lid) -> Te.constructor ~loc ~attrs name (Pext_rebind (map_loc sub lid)) @@ -326,15 +320,6 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> let loc = sub.location sub pat.pat_loc in (* todo: fix attributes on extras *) let attrs = sub.attributes sub pat.pat_attributes in - let attrs = ref attrs in - (* Hack so we can return an extra value out of the [match] expression for Jane - Street internal expressions without needing to modify every case, which - would open us up to more merge conflicts. - *) - let add_jane_syntax_attributes { ppat_attributes; ppat_desc; _ } = - attrs := ppat_attributes @ !attrs; - ppat_desc - in let desc = match pat with { pat_extra=[Tpat_unpack, loc, _attrs]; pat_desc = Tpat_any; _ } -> @@ -370,12 +355,7 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> | Tpat_alias (pat, _id, name, _uid, _mode) -> Ppat_alias (sub.pat sub pat, name) - | Tpat_constant cst -> - begin match constant cst with - | `Parsetree cst -> Ppat_constant cst - | `Jane_syntax cst -> - Jane_syntax.Layouts.pat_of ~loc (Lpat_constant cst) |> add_jane_syntax_attributes - end + | Tpat_constant cst -> Ppat_constant (constant cst) | Tpat_tuple list -> Ppat_tuple ( List.map (fun (label, p) -> label, sub.pat sub p) list @@ -412,35 +392,19 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> | Tpat_record (list, closed) -> Ppat_record (List.map (fun (lid, _, pat) -> map_loc sub lid, sub.pat sub pat) list, closed) - | Tpat_array (am, _, list) -> begin - let pats = List.map (sub.pat sub) list in - if Types.is_mutable am then Ppat_array pats - else - Jane_syntax.Immutable_arrays.pat_of - ~loc - (Iapat_immutable_array pats) - |> add_jane_syntax_attributes - end + | Tpat_array (am, _, list) -> + Ppat_array (mutable_ am, List.map (sub.pat sub) list) | Tpat_lazy p -> Ppat_lazy (sub.pat sub p) | Tpat_exception p -> Ppat_exception (sub.pat sub p) | Tpat_value p -> (sub.pat sub (p :> pattern)).ppat_desc | Tpat_or (p1, p2, _) -> Ppat_or (sub.pat sub p1, sub.pat sub p2) in - Pat.mk ~loc ~attrs:!attrs desc + Pat.mk ~loc ~attrs desc let exp_extra sub (extra, loc, attrs) sexp = let loc = sub.location sub loc in let attrs = sub.attributes sub attrs in - let attrs = ref attrs in - (* Hack so we can return an extra value out of the [match] expression for Jane - Street internal expressions without needing to modify every case, which - would open us up to more merge conflicts. - *) - let add_jane_syntax_attributes { pexp_attributes; pexp_desc; _ } = - attrs := pexp_attributes @ !attrs; - pexp_desc - in let desc = match extra with Texp_coerce (cty1, cty2) -> @@ -453,15 +417,11 @@ let exp_extra sub (extra, loc, attrs) sexp = Option.map (sub.typ sub) cty, Typemode.untransl_mode_annots ~loc modes) | Texp_poly cto -> Pexp_poly (sexp, Option.map (sub.typ sub) cto) - | Texp_newtype (_, label_loc, None, _) -> - Pexp_newtype (label_loc, sexp) - | Texp_newtype (_, label_loc, Some (_, jkind), _) -> - Jane_syntax.Layouts.expr_of ~loc - (Lexp_newtype(label_loc, jkind, sexp)) - |> add_jane_syntax_attributes + | Texp_newtype (_, label_loc, jkind, _) -> + Pexp_newtype (label_loc, Option.map snd jkind, sexp) | Texp_stack -> Pexp_stack sexp in - Exp.mk ~loc ~attrs:!attrs desc + Exp.mk ~loc ~attrs desc let case : type k . mapper -> k case -> _ = fun sub {c_lhs; c_guard; c_rhs} -> { @@ -477,33 +437,32 @@ let value_binding sub vb = (sub.pat sub vb.vb_pat) (sub.expr sub vb.vb_expr) -let comprehension sub comp_type comp = - let open Jane_syntax.Comprehensions in +let comprehension sub comp = let iterator = function | Texp_comp_range { ident = _; pattern; start ; stop ; direction } -> pattern, - Range { start = sub.expr sub start + Pcomp_range { start = sub.expr sub start ; stop = sub.expr sub stop ; direction } | Texp_comp_in { pattern; sequence } -> sub.pat sub pattern, - In (sub.expr sub sequence) + Pcomp_in (sub.expr sub sequence) in let binding { comp_cb_iterator ; comp_cb_attributes } = let pattern, iterator = iterator comp_cb_iterator in - { pattern - ; iterator - ; attributes = comp_cb_attributes } + { pcomp_cb_pattern = pattern + ; pcomp_cb_iterator = iterator + ; pcomp_cb_attributes = comp_cb_attributes } in let clause = function - | Texp_comp_for bindings -> For (List.map binding bindings) - | Texp_comp_when cond -> When (sub.expr sub cond) + | Texp_comp_for bindings -> Pcomp_for (List.map binding bindings) + | Texp_comp_when cond -> Pcomp_when (sub.expr sub cond) in let comprehension { comp_body; comp_clauses } = - { body = sub.expr sub comp_body - ; clauses = List.map clause comp_clauses } + { pcomp_body = sub.expr sub comp_body + ; pcomp_clauses = List.map clause comp_clauses } in - Jane_syntax.Comprehensions.expr_of (comp_type (comprehension comp)) + comprehension comp let label : Types.arg_label -> Parsetree.arg_label = function (* There is no Position label in the Parsetree, since we parse [%call_pos] @@ -519,24 +478,10 @@ let call_pos_extension = Location.mknoloc "call_pos_extension", PStr [] let expression sub exp = let loc = sub.location sub exp.exp_loc in let attrs = sub.attributes sub exp.exp_attributes in - let attrs = ref attrs in - (* Hack so we can return an extra value out of the [match] expression for Jane - Street internal expressions without needing to modify every case, which - would open us up to more merge conflicts. - *) - let add_jane_syntax_attributes { pexp_attributes; pexp_desc; _ } = - attrs := pexp_attributes @ !attrs; - pexp_desc - in let desc = match exp.exp_desc with Texp_ident (_path, lid, _, _, _) -> Pexp_ident (map_loc sub lid) - | Texp_constant cst -> - begin match constant cst with - | `Parsetree cst -> Pexp_constant cst - | `Jane_syntax cst -> - Jane_syntax.Layouts.expr_of ~loc (Lexp_constant cst) |> add_jane_syntax_attributes - end + | Texp_constant cst -> Pexp_constant (constant cst) | Texp_let (rec_flag, list, exp) -> Pexp_let (rec_flag, List.map (sub.value_binding sub) list, @@ -634,30 +579,21 @@ let expression sub exp = | _, Overridden (lid, exp) -> (lid, sub.expr sub exp) :: l) [] fields in - Pexp_record (list, Option.map (sub.expr sub) extended_expression) - | Texp_field (exp, lid, _label, _) -> + Pexp_record (list, Option.map (fun (exp, _) -> sub.expr sub exp) + extended_expression) + | Texp_field (exp, lid, _label, _, _) -> Pexp_field (sub.expr sub exp, map_loc sub lid) | Texp_setfield (exp1, _, lid, _label, exp2) -> Pexp_setfield (sub.expr sub exp1, map_loc sub lid, sub.expr sub exp2) - | Texp_array (amut, _, list, _) -> begin - (* Can be inlined when we get to upstream immutable arrays *) - let plist = List.map (sub.expr sub) list in - if Types.is_mutable amut then Pexp_array plist - else - Jane_syntax.Immutable_arrays.expr_of - ~loc (Iaexp_immutable_array plist) - |> add_jane_syntax_attributes - end + | Texp_array (amut, _, list, _) -> + Pexp_array (mutable_ amut, List.map (sub.expr sub) list) | Texp_list_comprehension comp -> - comprehension - ~loc sub (fun comp -> Cexp_list_comprehension comp) comp - |> add_jane_syntax_attributes + Pexp_comprehension + (Pcomp_list_comprehension (comprehension sub comp)) | Texp_array_comprehension (amut, _, comp) -> - let amut = mutable_ amut in - comprehension - ~loc sub (fun comp -> Cexp_array_comprehension (amut, comp)) comp - |> add_jane_syntax_attributes + Pexp_comprehension + (Pcomp_array_comprehension (mutable_ amut, comprehension sub comp)) | Texp_ifthenelse (exp1, exp2, expo) -> Pexp_ifthenelse (sub.expr sub exp1, sub.expr sub exp2, @@ -762,7 +698,7 @@ let expression sub exp = | Texp_src_pos -> Pexp_extension ({ txt = "src_pos"; loc }, PStr []) in List.fold_right (exp_extra sub) exp.exp_extra - (Exp.mk ~loc ~attrs:!attrs desc) + (Exp.mk ~loc ~attrs desc) let binding_op sub bop pat = let pbop_op = bop.bop_op_name in @@ -783,8 +719,11 @@ let module_type_declaration sub mtd = ?typ:(Option.map (sub.module_type sub) mtd.mtd_type) (map_loc sub mtd.mtd_name) -let signature sub sg = - List.map (sub.signature_item sub) sg.sig_items +let signature sub {sig_items; sig_modalities; sig_sloc} = + let psg_items = List.map (sub.signature_item sub) sig_items in + let psg_modalities = Typemode.untransl_modalities Immutable [] sig_modalities in + let psg_loc = sub.location sub sig_sloc in + {psg_items; psg_modalities; psg_loc} let signature_item sub item = let loc = sub.location sub item.sig_loc in @@ -890,11 +829,8 @@ let module_type (sub : mapper) mty = | Tmty_typeof mexpr -> Mty.mk ~loc ~attrs (Pmty_typeof (sub.module_expr sub mexpr)) | Tmty_strengthen (mtype, _path, lid) -> - Jane_syntax.Module_type.mty_of ~loc ~attrs - (Jane_syntax.Module_type.Jmty_strengthen - { mty = sub.module_type sub mtype; - mod_id = map_loc sub lid - }) + Mty.mk ~loc ~attrs + (Pmty_strengthen (sub.module_type sub mtype, map_loc sub lid)) let with_constraint sub (_path, lid, cstr) = match cstr with @@ -1018,22 +954,9 @@ let class_type_field sub ctf = let core_type sub ct = let loc = sub.location sub ct.ctyp_loc in let attrs = sub.attributes sub ct.ctyp_attributes in - let attrs = ref attrs in - (* Hack so we can return an extra value out of the [match] expression for Jane - Street internal expressions without needing to modify every case, which - would open us up to more merge conflicts. - *) - let add_jane_syntax_attributes { ptyp_attributes; ptyp_desc; _ } = - attrs := ptyp_attributes @ !attrs; - ptyp_desc - in let desc = match ct.ctyp_desc with - | Ttyp_var (None, None) -> Ptyp_any - | Ttyp_var (Some s, None) -> Ptyp_var s - | Ttyp_var (name, Some (_, jkind_annotation)) -> - Jane_syntax.Layouts.type_of ~loc - (Ltyp_var { name; jkind = jkind_annotation }) |> - add_jane_syntax_attributes + | Ttyp_var (None, jkind) -> Ptyp_any (Option.map snd jkind) + | Ttyp_var (Some s, jkind) -> Ptyp_var (s, Option.map snd jkind) | Ttyp_arrow (arg_label, ct1, ct2) -> (* CR cgunn: recover mode annotation here *) Ptyp_arrow (label arg_label, sub.typ sub ct1, sub.typ sub ct2, [], []) @@ -1050,28 +973,21 @@ let core_type sub ct = (List.map (sub.object_field sub) list, o) | Ttyp_class (_path, lid, list) -> Ptyp_class (map_loc sub lid, List.map (sub.typ sub) list) - | Ttyp_alias (ct, Some s, None) -> - Ptyp_alias (sub.typ sub ct, s) - | Ttyp_alias (ct, name, Some (_, jkind_annotation)) -> - Jane_syntax.Layouts.type_of ~loc - (Ltyp_alias { aliased_type = sub.typ sub ct; name; - jkind = jkind_annotation }) |> - add_jane_syntax_attributes | Ttyp_alias (_, None, None) -> - Misc.fatal_error "anonymous alias without layout annotation in Untypeast" + Misc.fatal_error "anonymous alias without layout annotation in Untypeast" + | Ttyp_alias (ct, s, jkind) -> + Ptyp_alias (sub.typ sub ct, s, Option.map snd jkind) | Ttyp_variant (list, bool, labels) -> Ptyp_variant (List.map (sub.row_field sub) list, bool, labels) | Ttyp_poly (list, ct) -> let bound_vars = List.map (var_jkind ~loc) list in - Jane_syntax.Layouts.type_of ~loc - (Ltyp_poly { bound_vars; inner_type = sub.typ sub ct }) |> - add_jane_syntax_attributes + Ptyp_poly (bound_vars, sub.typ sub ct) | Ttyp_package pack -> Ptyp_package (sub.package_type sub pack) | Ttyp_open (_path, mod_ident, t) -> Ptyp_open (mod_ident, sub.typ sub t) | Ttyp_call_pos -> Ptyp_extension call_pos_extension in - Typ.mk ~loc ~attrs:!attrs desc + Typ.mk ~loc ~attrs desc let class_structure sub cs = let rec remove_self = function diff --git a/upstream/ocaml_flambda/typing/untypeast.mli b/upstream/ocaml_flambda/typing/untypeast.mli index f49993841..dcf8ecd6d 100644 --- a/upstream/ocaml_flambda/typing/untypeast.mli +++ b/upstream/ocaml_flambda/typing/untypeast.mli @@ -84,5 +84,4 @@ val untype_signature : ?mapper:mapper -> Typedtree.signature -> signature val untype_expression : ?mapper:mapper -> Typedtree.expression -> expression val untype_pattern : ?mapper:mapper -> _ Typedtree.general_pattern -> pattern -val constant : Typedtree.constant -> - [ `Parsetree of Parsetree.constant | `Jane_syntax of Jane_syntax.Layouts.constant ] +val constant : Typedtree.constant -> Parsetree.constant diff --git a/upstream/ocaml_flambda/typing/value_rec_check.ml b/upstream/ocaml_flambda/typing/value_rec_check.ml index ae85a7c48..e3e098c5e 100644 --- a/upstream/ocaml_flambda/typing/value_rec_check.ml +++ b/upstream/ocaml_flambda/typing/value_rec_check.ml @@ -766,7 +766,7 @@ let rec expression : Typedtree.expression -> term_judg = in join [ array field es; - option expression eo << Dereference + option expression (Option.map fst eo) << Dereference ] | Texp_ifthenelse (cond, ifso, ifnot) -> (* @@ -832,7 +832,7 @@ let rec expression : Typedtree.expression -> term_judg = join [ expression e1 << Dereference ] - | Texp_field (e, _, _, _) -> + | Texp_field (e, _, _, _, _) -> (* G |- e: m[Dereference] ----------------------- diff --git a/upstream/ocaml_flambda/utils/clflags.ml b/upstream/ocaml_flambda/utils/clflags.ml index 23942123b..8a2855518 100644 --- a/upstream/ocaml_flambda/utils/clflags.ml +++ b/upstream/ocaml_flambda/utils/clflags.ml @@ -54,6 +54,7 @@ end type profile_column = [ `Time | `Alloc | `Top_heap | `Abs_top_heap | `Counters ] type profile_granularity_level = File_level | Function_level | Block_level +type flambda_invariant_checks = No_checks | Light_checks | Heavy_checks let compile_only = ref false (* -c *) and output_name = ref (None : string option) (* -o *) @@ -183,7 +184,8 @@ let cmm_invariants = ref Config.with_cmm_invariants (* -dcmm-invariants *) let flambda_invariant_checks = - ref Config.with_flambda_invariants (* -flambda-(no-)invariants *) + let v = if Config.with_flambda_invariants then Light_checks else No_checks in + ref v (* -flambda-(no-)invariants *) let dont_write_files = ref false (* set to true under ocamldoc *) @@ -443,7 +445,18 @@ let error_style = ref None (* -error-style *) let error_style_reader = { parse = (function | "contextual" -> Some Misc.Error_style.Contextual - | "short" -> Some Misc.Error_style.Short + | "short" -> + (* Jane Street specific: This little bit of code suppresses the quote + marks in error messages. Remove this after we can get formatted + output in our editors. *) + let styles = Misc.Style.get_styles () in + let styles = + { styles with inline_code = + { styles.inline_code with text_open = ""; text_close = "" } } + in + Misc.Style.set_styles styles; + (* End Jane Street specific code *) + Some Misc.Error_style.Short | _ -> None); print = (function | Misc.Error_style.Contextual -> "contextual" @@ -683,3 +696,8 @@ let zero_alloc_check = ref Zero_alloc_annotations.Check_default (* -zero-allo let zero_alloc_check_assert_all = ref false (* -zero-alloc-check-assert-all *) let no_auto_include_otherlibs = ref false (* -no-auto-include-otherlibs *) + +let prepend_directory file_name = + match !directory with + | Some directory -> Filename.concat directory file_name + | None -> file_name diff --git a/upstream/ocaml_flambda/utils/clflags.mli b/upstream/ocaml_flambda/utils/clflags.mli index 3829df783..bdc84687c 100644 --- a/upstream/ocaml_flambda/utils/clflags.mli +++ b/upstream/ocaml_flambda/utils/clflags.mli @@ -61,6 +61,7 @@ end type profile_column = [ `Time | `Alloc | `Top_heap | `Abs_top_heap | `Counters ] type profile_granularity_level = File_level | Function_level | Block_level +type flambda_invariant_checks = No_checks | Light_checks | Heavy_checks val objfiles : string list ref val ccobjs : string list ref @@ -207,7 +208,7 @@ val profile_columns : profile_column list ref val profile_granularity : profile_granularity_level ref val all_profile_granularity_levels : string list val set_profile_granularity : string -> unit -val flambda_invariant_checks : bool ref +val flambda_invariant_checks : flambda_invariant_checks ref val unbox_closures : bool ref val unbox_closures_factor : int ref val default_unbox_closures_factor : int @@ -318,3 +319,5 @@ val zero_alloc_check : Zero_alloc_annotations.t ref val zero_alloc_check_assert_all : bool ref val no_auto_include_otherlibs : bool ref + +val prepend_directory : string -> string diff --git a/upstream/ocaml_flambda/utils/language_extension.ml b/upstream/ocaml_flambda/utils/language_extension.ml index ebb568b2a..e69de29bb 100644 --- a/upstream/ocaml_flambda/utils/language_extension.ml +++ b/upstream/ocaml_flambda/utils/language_extension.ml @@ -1,436 +0,0 @@ -include Language_extension_kernel - -(* operations we want on every extension level *) -module type Extension_level = sig - type t - - val compare : t -> t -> int - - val max : t -> t -> t - - val max_value : t - - val all : t list - - val to_command_line_suffix : t -> string -end - -module Unit = struct - type t = unit - - let compare = Unit.compare - - let max _ _ = () - - let max_value = () - - let all = [()] - - let to_command_line_suffix () = "" -end - -module Maturity = struct - type t = maturity = - | Stable - | Beta - | Alpha - - let compare t1 t2 = - let rank = function Stable -> 1 | Beta -> 2 | Alpha -> 3 in - compare (rank t1) (rank t2) - - let max t1 t2 = if compare t1 t2 >= 0 then t1 else t2 - - let max_value = Alpha - - let all = [Stable; Beta; Alpha] - - let to_command_line_suffix = function - | Stable -> "" - | Beta -> "_beta" - | Alpha -> "_alpha" -end - -let get_level_ops : type a. a t -> (module Extension_level with type t = a) = - function - | Comprehensions -> (module Unit) - | Mode -> (module Maturity) - | Unique -> (module Unit) - | Include_functor -> (module Unit) - | Polymorphic_parameters -> (module Unit) - | Immutable_arrays -> (module Unit) - | Module_strengthening -> (module Unit) - | Layouts -> (module Maturity) - | SIMD -> (module Maturity) - | Labeled_tuples -> (module Unit) - | Small_numbers -> (module Maturity) - | Instances -> (module Unit) - -module Exist_pair = struct - include Exist_pair - - let maturity : t -> Maturity.t = function - | Pair (Comprehensions, ()) -> Beta - | Pair (Mode, m) -> m - | Pair (Unique, ()) -> Alpha - | Pair (Include_functor, ()) -> Stable - | Pair (Polymorphic_parameters, ()) -> Stable - | Pair (Immutable_arrays, ()) -> Stable - | Pair (Module_strengthening, ()) -> Stable - | Pair (Layouts, m) -> m - | Pair (SIMD, m) -> m - | Pair (Labeled_tuples, ()) -> Stable - | Pair (Small_numbers, m) -> m - | Pair (Instances, ()) -> Stable - - let is_erasable : t -> bool = function Pair (ext, _) -> is_erasable ext - - let to_string = function - | Pair (Layouts, m) -> to_string Layouts ^ "_" ^ maturity_to_string m - | Pair (Mode, m) -> to_string Mode ^ "_" ^ maturity_to_string m - | Pair (Small_numbers, m) -> - to_string Small_numbers ^ "_" ^ maturity_to_string m - | Pair (SIMD, m) -> to_string SIMD ^ "_" ^ maturity_to_string m - | Pair - ( (( Comprehensions | Unique | Include_functor | Polymorphic_parameters - | Immutable_arrays | Module_strengthening | Labeled_tuples - | Instances ) as ext), - _ ) -> - to_string ext -end - -type extn_pair = Exist_pair.t = Pair : 'a t * 'a -> extn_pair - -type exist = Exist.t = Pack : _ t -> exist - -(**********************************) -(* string conversions *) - -let to_command_line_string : type a. a t -> a -> string = - fun extn level -> - let (module Ops) = get_level_ops extn in - to_string extn ^ Ops.to_command_line_suffix level - -let pair_of_string_exn extn_name = - match pair_of_string extn_name with - | Some pair -> pair - | None -> - raise (Arg.Bad (Printf.sprintf "Extension %s is not known" extn_name)) - -(************************************) -(* equality *) - -let equal_t (type a b) (a : a t) (b : b t) : (a, b) Misc.eq option = - match a, b with - | Comprehensions, Comprehensions -> Some Refl - | Mode, Mode -> Some Refl - | Unique, Unique -> Some Refl - | Include_functor, Include_functor -> Some Refl - | Polymorphic_parameters, Polymorphic_parameters -> Some Refl - | Immutable_arrays, Immutable_arrays -> Some Refl - | Module_strengthening, Module_strengthening -> Some Refl - | Layouts, Layouts -> Some Refl - | SIMD, SIMD -> Some Refl - | Labeled_tuples, Labeled_tuples -> Some Refl - | Small_numbers, Small_numbers -> Some Refl - | Instances, Instances -> Some Refl - | ( ( Comprehensions | Mode | Unique | Include_functor - | Polymorphic_parameters | Immutable_arrays | Module_strengthening - | Layouts | SIMD | Labeled_tuples | Small_numbers | Instances ), - _ ) -> - None - -let equal a b = Option.is_some (equal_t a b) - -(*****************************) -(* extension universes *) - -module Universe : sig - type t = - | No_extensions - | Upstream_compatible - | Stable - | Beta - | Alpha - - val all : t list - - val maximal : t - - val to_string : t -> string - - val of_string : string -> t option - - val get : unit -> t - - val set : t -> unit - - val is : t -> bool - - val check : extn_pair -> unit - - (* Allowed extensions, each with the greatest allowed level. *) - val allowed_extensions_in : t -> extn_pair list -end = struct - (** Which extensions can be enabled? *) - type t = - | No_extensions - | Upstream_compatible - | Stable - | Beta - | Alpha - (* If you add a constructor, you should also add it to [all]. *) - - let all = [No_extensions; Upstream_compatible; Stable; Beta; Alpha] - - let maximal = Alpha - - let to_string = function - | No_extensions -> "no_extensions" - | Upstream_compatible -> "upstream_compatible" - | Stable -> "stable" - | Beta -> "beta" - | Alpha -> "alpha" - - let of_string = function - | "no_extensions" -> Some No_extensions - | "upstream_compatible" -> Some Upstream_compatible - | "stable" -> Some Stable - | "beta" -> Some Beta - | "alpha" -> Some Alpha - | _ -> None - - let compare t1 t2 = - let rank = function - | No_extensions -> 0 - | Upstream_compatible -> 1 - | Stable -> 2 - | Beta -> 3 - | Alpha -> 4 - in - compare (rank t1) (rank t2) - - (* For now, the default universe is set to [Alpha] but only a limited set of - extensions is enabled. After the migration to extension universes, the - default will be [No_extensions]. *) - let universe = ref Alpha - - let get () = !universe - - let set new_universe = universe := new_universe - - let is u = compare u !universe = 0 - - let compiler_options = function - | No_extensions -> "flag -extension-universe no_extensions" - | Upstream_compatible -> "flag -extension-universe upstream_compatible" - | Stable -> "flag -extension-universe stable" - | Beta -> "flag -extension-universe beta" - | Alpha -> "flag -extension-universe alpha (default CLI option)" - - let is_allowed_in t extn_pair = - match t with - | No_extensions -> false - | Upstream_compatible -> - Exist_pair.is_erasable extn_pair - && Maturity.compare (Exist_pair.maturity extn_pair) Stable <= 0 - | Stable -> Maturity.compare (Exist_pair.maturity extn_pair) Stable <= 0 - | Beta -> Maturity.compare (Exist_pair.maturity extn_pair) Beta <= 0 - | Alpha -> true - - let is_allowed extn_pair = is_allowed_in !universe extn_pair - - (* The terminating [()] argument helps protect against ignored arguments. See - the documentation for [Base.failwithf]. *) - let fail fmt = Format.ksprintf (fun str () -> raise (Arg.Bad str)) fmt - - let check extn_pair = - if not (is_allowed extn_pair) - then - fail "Cannot enable extension %s: incompatible with %s" - (Exist_pair.to_string extn_pair) - (compiler_options !universe) - () - - let allowed_extensions_in t = - let maximal_in_universe (Pack extn) = - let (module Ops) = get_level_ops extn in - let allowed_levels = - Ops.all |> List.filter (fun lvl -> is_allowed_in t (Pair (extn, lvl))) - in - match allowed_levels with - | [] -> None - | lvl :: lvls -> - let max_allowed_lvl = List.fold_left Ops.max lvl lvls in - Some (Pair (extn, max_allowed_lvl)) - in - List.filter_map maximal_in_universe Exist.all -end - -(*****************************************) -(* enabling / disabling *) - -(* Mutable state. Invariants: - - (1) [!extensions] contains at most one copy of each extension. - - (2) Every member of [!extensions] satisfies [Universe.is_allowed]. (For - instance, [!universe = No_extensions] implies [!extensions = []]). *) - -(* After the migration to extension universes, this will be an empty list. *) -let legacy_default_extensions : extn_pair list = - Universe.allowed_extensions_in Stable - -let extensions : extn_pair list ref = ref legacy_default_extensions - -let set_worker (type a) (extn : a t) = function - | Some value -> - Universe.check (Pair (extn, value)); - let (module Ops) = get_level_ops extn in - let rec update_extensions already_seen : extn_pair list -> extn_pair list = - function - | [] -> Pair (extn, value) :: already_seen - | (Pair (extn', v) as e) :: es -> ( - match equal_t extn extn' with - | None -> update_extensions (e :: already_seen) es - | Some Refl -> - Pair (extn, Ops.max v value) :: List.rev_append already_seen es) - in - extensions := update_extensions [] !extensions - | None -> - extensions - := List.filter - (fun (Pair (extn', _) : extn_pair) -> not (equal extn extn')) - !extensions - -let set extn ~enabled = set_worker extn (if enabled then Some () else None) - -let enable extn value = set_worker extn (Some value) - -let disable extn = set_worker extn None - -(* This is similar to [Misc.protect_refs], but we don't have values to set - [extensions] to. *) -let with_temporary_extensions f = - let current_extensions = !extensions in - Fun.protect ~finally:(fun () -> extensions := current_extensions) f - -(* It might make sense to ban [set], [enable], [disable], - [only_erasable_extensions], and [disallow_extensions] inside [f], but it's - not clear that it's worth the hassle *) -let with_set_worker extn value f = - with_temporary_extensions (fun () -> - set_worker extn value; - f ()) - -let with_set extn ~enabled = - with_set_worker extn (if enabled then Some () else None) - -let with_enabled extn value = with_set_worker extn (Some value) - -let with_disabled extn = with_set_worker extn None - -let enable_of_string_exn extn_name = - match pair_of_string_exn extn_name with - | Pair (extn, setting) -> enable extn setting - -let disable_of_string_exn extn_name = - match pair_of_string_exn extn_name with Pair (extn, _) -> disable extn - -let disable_all () = extensions := [] - -let unconditionally_enable_maximal_without_checks () = - let maximal_pair (Pack extn) = - let (module Ops) = get_level_ops extn in - Pair (extn, Ops.max_value) - in - extensions := List.map maximal_pair Exist.all - -let erasable_extensions_only () = - Universe.is No_extensions || Universe.is Upstream_compatible - -let set_universe_and_enable_all u = - Universe.set u; - extensions := Universe.allowed_extensions_in (Universe.get ()) - -let set_universe_and_enable_all_of_string_exn univ_name = - match Universe.of_string univ_name with - | Some u -> set_universe_and_enable_all u - | None -> - raise (Arg.Bad (Printf.sprintf "Universe %s is not known" univ_name)) - -(********************************************) -(* checking an extension *) - -let is_at_least (type a) (extn : a t) (value : a) = - let rec check : extn_pair list -> bool = function - | [] -> false - | Pair (e, v) :: es -> ( - let (module Ops) = get_level_ops e in - match equal_t e extn with - | Some Refl -> Ops.compare v value >= 0 - | None -> check es) - in - check !extensions - -let is_enabled extn = - let rec check : extn_pair list -> bool = function - | [] -> false - | Pair (e, _) :: _ when equal e extn -> true - | _ :: es -> check es - in - check !extensions - -let get_command_line_string_if_enabled extn = - let rec find = function - | [] -> None - | Pair (e, v) :: _ when equal e extn -> Some (to_command_line_string e v) - | _ :: es -> find es - in - find !extensions - -(********************************************) -(* existentially packed extension *) - -module Exist = struct - include Exist - - let to_command_line_strings (Pack extn) = - let (module Ops) = get_level_ops extn in - List.map (to_command_line_string extn) Ops.all - - let to_string : t -> string = function Pack extn -> to_string extn - - let is_enabled : t -> bool = function Pack extn -> is_enabled extn - - let is_erasable : t -> bool = function Pack extn -> is_erasable extn -end - -(********************************************) -(* Special functionality for [Pprintast] *) - -module For_pprintast = struct - type printer_exporter = - { print_with_maximal_extensions : - 'a. (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a -> unit - } - - let can_still_define_printers = ref true - - let make_printer_exporter () = - if !can_still_define_printers - then ( - can_still_define_printers := false; - { print_with_maximal_extensions = - (fun pp fmt item -> - with_temporary_extensions (fun () -> - (* It's safe to call this here without validating that the - extensions are enabled, because the [Pprintast] printers - should always print Jane syntax. *) - unconditionally_enable_maximal_without_checks (); - pp fmt item)) - }) - else - Misc.fatal_error - "Only Pprintast may use [Language_extension.For_pprintast]" -end diff --git a/upstream/ocaml_flambda/utils/language_extension.mli b/upstream/ocaml_flambda/utils/language_extension.mli index 6cacb221e..e69de29bb 100644 --- a/upstream/ocaml_flambda/utils/language_extension.mli +++ b/upstream/ocaml_flambda/utils/language_extension.mli @@ -1,160 +0,0 @@ -(** Language extensions provided by the Jane Street version of the OCaml - compiler. -*) - -(** A setting for extensions that track multiple maturity levels *) -type maturity = Language_extension_kernel.maturity = - | Stable - | Beta - | Alpha - -(** The type of language extensions. An ['a t] is an extension that can either - be off or be set to have any value in ['a], so a [unit t] can be either on - or off, while a [maturity t] can have different maturity settings. *) -type 'a t = 'a Language_extension_kernel.t = - | Comprehensions : unit t - | Mode : maturity t - | Unique : unit t - | Include_functor : unit t - | Polymorphic_parameters : unit t - | Immutable_arrays : unit t - | Module_strengthening : unit t - | Layouts : maturity t - | SIMD : maturity t - | Labeled_tuples : unit t - | Small_numbers : maturity t - | Instances : unit t - -(** Existentially packed language extension *) -module Exist : sig - type 'a extn = 'a t - (* this is removed from the sig by the [with] below; ocamldoc doesn't like - [:=] in sigs *) - - type t = Language_extension_kernel.Exist.t = Pack : 'a extn -> t - - val to_string : t -> string - - val is_enabled : t -> bool - - val is_erasable : t -> bool - - (** Returns a list of all strings, like ["layouts_beta"], that - correspond to this extension. *) - val to_command_line_strings : t -> string list - - val all : t list -end -with type 'a extn := 'a t - -(** Equality on language extensions *) -val equal : 'a t -> 'b t -> bool - -(** The type of language extension universes. Each universe allows a set of - extensions, and every successive universe includes the previous one. - - Each variant corresponds to the [-extension-universe ] CLI flag. - - Each extension universe, except for [No_extensions], should also have - a corresponding library in [otherlibs/]. Those libraries must contain - OCaml code for corresponding extensions that would normally go into Stdlib. -*) -module Universe : sig - type t = - | No_extensions - | Upstream_compatible - (** Upstream compatible extensions, also known as "erasable". *) - | Stable (** Extensions of [Stable] maturity. *) - | Beta (** Extensions of [Beta] maturity. *) - | Alpha - (** All extensions. This is the universe enabled by default - for the time being. *) - - val all : t list - - (** Equal to [Alpha]. *) - val maximal : t - - val to_string : t -> string - - val of_string : string -> t option -end - -(** Disable all extensions *) -val disable_all : unit -> unit - -(** Check if a language extension is "erasable", i.e. whether it can be - harmlessly translated to attributes and compiled with the upstream - compiler. *) -val is_erasable : 'a t -> bool - -(** Print and parse language extensions; parsing is case-insensitive *) -val to_string : 'a t -> string - -val to_command_line_string : 'a t -> 'a -> string - -val of_string : string -> Exist.t option - -val maturity_to_string : maturity -> string - -(** Get the command line string enabling the given extension, if it's - enabled; otherwise None *) -val get_command_line_string_if_enabled : 'a t -> string option - -(** Enable and disable according to command-line strings; these raise - an exception if the input string is invalid. *) -val enable_of_string_exn : string -> unit - -val disable_of_string_exn : string -> unit - -(** Enable and disable language extensions; these operations are idempotent *) -val set : unit t -> enabled:bool -> unit - -val enable : 'a t -> 'a -> unit - -val disable : 'a t -> unit - -(** Check if a language extension is currently enabled (at any maturity level) -*) -val is_enabled : 'a t -> bool - -(** Check if a language extension is enabled at least at the given level *) -val is_at_least : 'a t -> 'a -> bool - -(** Tooling support: Temporarily enable and disable language extensions; these - operations are idempotent. Calls to [set], [enable], [disable] inside the body - of the function argument will also be rolled back when the function finishes, - but this behavior may change; nest multiple [with_*] functions instead. *) -val with_set : unit t -> enabled:bool -> (unit -> unit) -> unit - -val with_enabled : 'a t -> 'a -> (unit -> unit) -> unit - -val with_disabled : 'a t -> (unit -> unit) -> unit - -(** Check if the allowable extensions are restricted to only those that are - "erasable". This is true when the universe is set to [No_extensions] or - [Upstream_compatible]. *) -val erasable_extensions_only : unit -> bool - -(** Set the extension universe and enable all allowed extensions. *) -val set_universe_and_enable_all : Universe.t -> unit - -(** Parse a command-line string and call [set_universe_and_enable_all]. - Raises if the argument is invalid. *) -val set_universe_and_enable_all_of_string_exn : string -> unit - -(**/**) - -(** Special functionality that can only be used in "pprintast.ml" *) -module For_pprintast : sig - (** A function for wrapping a printer from "pprintast.ml" so that it will - unconditionally print Jane Syntax instead of raising an exception when - trying to print syntax from disabled extensions. *) - type printer_exporter = - { print_with_maximal_extensions : - 'a. (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a -> unit - } - - (** Raises if called more than once ever. *) - val make_printer_exporter : unit -> printer_exporter -end diff --git a/upstream/ocaml_flambda/utils/language_extension_kernel.ml b/upstream/ocaml_flambda/utils/language_extension_kernel.ml index 0f56351ef..7d338785e 100644 --- a/upstream/ocaml_flambda/utils/language_extension_kernel.ml +++ b/upstream/ocaml_flambda/utils/language_extension_kernel.ml @@ -1,6 +1,9 @@ -type maturity = Stable | Beta | Alpha +type maturity = + | Stable + | Beta + | Alpha -(* Remember to update [all] when changing this type. *) +(* Remember to update [Language_extension.Exist.all] when changing this type. *) type _ t = | Comprehensions : unit t | Mode : maturity t @@ -15,31 +18,6 @@ type _ t = | Small_numbers : maturity t | Instances : unit t -type 'a language_extension_kernel = 'a t - -module Exist = struct - type t = Pack : _ language_extension_kernel -> t - - let all = - [ Pack Comprehensions - ; Pack Mode - ; Pack Unique - ; Pack Include_functor - ; Pack Polymorphic_parameters - ; Pack Immutable_arrays - ; Pack Module_strengthening - ; Pack Layouts - ; Pack SIMD - ; Pack Labeled_tuples - ; Pack Small_numbers - ; Pack Instances - ] -end - -module Exist_pair = struct - type t = Pair : 'a language_extension_kernel * 'a -> t -end - (* When you update this, update [pair_of_string] below too. *) let to_string : type a. a t -> string = function | Comprehensions -> "comprehensions" @@ -54,71 +32,3 @@ let to_string : type a. a t -> string = function | Labeled_tuples -> "labeled_tuples" | Small_numbers -> "small_numbers" | Instances -> "instances" - -(* converts full extension names, like "layouts_alpha" to a pair of - an extension and its maturity. For extensions that don't take an - argument, the conversion is just [Language_extension_kernel.of_string]. -*) -let pair_of_string extn_name : Exist_pair.t option = - match String.lowercase_ascii extn_name with - | "comprehensions" -> Some (Pair (Comprehensions, ())) - | "mode" -> Some (Pair (Mode, Stable)) - | "mode_beta" -> Some (Pair (Mode, Beta)) - | "mode_alpha" -> Some (Pair (Mode, Alpha)) - | "unique" -> Some (Pair (Unique, ())) - | "include_functor" -> Some (Pair (Include_functor, ())) - | "polymorphic_parameters" -> Some (Pair (Polymorphic_parameters, ())) - | "immutable_arrays" -> Some (Pair (Immutable_arrays, ())) - | "module_strengthening" -> Some (Pair (Module_strengthening, ())) - | "layouts" -> Some (Pair (Layouts, Stable)) - | "layouts_alpha" -> Some (Pair (Layouts, Alpha)) - | "layouts_beta" -> Some (Pair (Layouts, Beta)) - | "simd" -> Some (Pair (SIMD, Stable)) - | "simd_beta" -> Some (Pair (SIMD, Beta)) - | "labeled_tuples" -> Some (Pair (Labeled_tuples, ())) - | "small_numbers" -> Some (Pair (Small_numbers, Stable)) - | "small_numbers_beta" -> Some (Pair (Small_numbers, Beta)) - | "instances" -> Some (Pair (Instances, ())) - | _ -> None - -let maturity_to_string = function - | Alpha -> "alpha" - | Beta -> "beta" - | Stable -> "stable" - -let of_string extn_name : Exist.t option = - match pair_of_string extn_name with - | Some (Pair (ext, _)) -> Some (Pack ext) - | None -> None - -(* We'll do this in a more principled way later. *) -(* CR layouts: Note that layouts is only "mostly" erasable, because of annoying - interactions with the pre-layouts [@@immediate] attribute like: - - type ('a : immediate) t = 'a [@@immediate] - - But we've decided to punt on this issue in the short term. -*) -let is_erasable : type a. a t -> bool = function - | Mode - | Unique - | Layouts -> - true - | Comprehensions - | Include_functor - | Polymorphic_parameters - | Immutable_arrays - | Module_strengthening - | SIMD - | Labeled_tuples - | Small_numbers - | Instances -> - false - -(* See the mli. *) -module type Language_extension_for_jane_syntax = sig - type nonrec 'a t = 'a t - - val is_enabled : _ t -> bool - val is_at_least : 'a t -> 'a -> bool -end diff --git a/upstream/ocaml_flambda/utils/language_extension_kernel.mli b/upstream/ocaml_flambda/utils/language_extension_kernel.mli index 7801452bf..d0a833b05 100644 --- a/upstream/ocaml_flambda/utils/language_extension_kernel.mli +++ b/upstream/ocaml_flambda/utils/language_extension_kernel.mli @@ -1,11 +1,13 @@ (** Language extensions provided by the Jane Street version of the OCaml - compiler. + compiler. These are the parts of [Language_extension] that are required + by [Profile_counters_functions]. Forward declaring these allow us to + avoid a mutual dependency between files in utils/ and parsing/. Such + a dependency prevents Merlin from compiling. *) - This is the signature of the {!Language_extension_kernel} module that is - directly imported into [ppxlib_jane]. -*) - -type maturity = Stable | Beta | Alpha +type maturity = + | Stable + | Beta + | Alpha (** The type of language extensions. An ['a t] is an extension that can either be off or be set to have any value in ['a], so a [unit t] can be either on @@ -24,43 +26,5 @@ type _ t = | Small_numbers : maturity t | Instances : unit t -module Exist : sig - type 'a extn = 'a t - type t = Pack : _ extn -> t - - val all : t list -end with type 'a extn := 'a t - -module Exist_pair : sig - type 'a extn = 'a t - type t = Pair : 'a extn * 'a -> t -end with type 'a extn := 'a t - (** Print and parse language extensions; parsing is case-insensitive *) val to_string : _ t -> string -val of_string : string -> Exist.t option -val pair_of_string : string -> Exist_pair.t option -val maturity_to_string : maturity -> string - -(** Check if a language extension is "erasable", i.e. whether it can be - harmlessly translated to attributes and compiled with the upstream - compiler. *) -val is_erasable : _ t -> bool - -module type Language_extension_for_jane_syntax = sig - (** This module type defines the pieces of functionality used by - {!Jane_syntax_parsing} and {!Jane_syntax} so that we can more easily - import these modules into [ppxlib_jane], without also including all of the - [Language_extension] machinery. - - It includes the stateful operations that {!Jane_syntax_parsing} relies on. - This limits the number of bindings that [ppxlib_jane] needs to have mock - implementations for. - *) - - type nonrec 'a t = 'a t - - (** Check if a language extension is currently enabled. *) - val is_enabled : _ t -> bool - val is_at_least : 'a t -> 'a -> bool -end diff --git a/upstream/ocaml_flambda/utils/profile.ml b/upstream/ocaml_flambda/utils/profile.ml index b4a8872f8..00b4b131a 100644 --- a/upstream/ocaml_flambda/utils/profile.ml +++ b/upstream/ocaml_flambda/utils/profile.ml @@ -151,11 +151,7 @@ let record_with_counters ?accumulate ~counter_f pass f x = let file_prefix = "file=" let annotate_file_name name = - let file_path = - match !Clflags.directory with - | Some directory -> Filename.concat directory name - | None -> name - in + let file_path = Clflags.prepend_directory name in file_prefix ^ file_path type display = { From bd98c3c9438e5155718d83e3bf86482ec95b1917 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 10:37:05 -0500 Subject: [PATCH 03/15] Automatic merges --- src/ocaml/parsing/ast_iterator.ml | 318 ++----- src/ocaml/parsing/ast_iterator.mli | 9 +- src/ocaml/parsing/ast_mapper.ml | 468 +++------- src/ocaml/parsing/ast_mapper.mli | 25 +- src/ocaml/parsing/builtin_attributes.ml | 59 +- src/ocaml/parsing/builtin_attributes.mli | 8 + src/ocaml/parsing/jane_syntax_parsing.ml | 874 ------------------ src/ocaml/parsing/jane_syntax_parsing.mli | 272 ------ src/ocaml/parsing/parser_types.ml | 46 - src/ocaml/parsing/parser_types.mli | 13 - src/ocaml/parsing/parsetree.mli | 150 ++- src/ocaml/parsing/printast.mli | 3 +- src/ocaml/parsing/syntaxerr.ml | 2 + src/ocaml/parsing/syntaxerr.mli | 1 + src/ocaml/preprocess/parser_raw.mly | 380 ++++---- src/ocaml/typing/cmi_format.ml | 9 +- src/ocaml/typing/cmi_format.mli | 3 +- src/ocaml/typing/cmt_format.ml | 7 +- src/ocaml/typing/ctype.ml | 2 +- src/ocaml/typing/env.mli | 30 +- src/ocaml/typing/envaux.ml | 6 +- src/ocaml/typing/jkind.ml | 100 +- src/ocaml/typing/jkind.mli | 18 +- src/ocaml/typing/jkind_types.ml | 2 +- src/ocaml/typing/jkind_types.mli | 2 +- src/ocaml/typing/mode_intf.mli | 2 + src/ocaml/typing/oprint.ml | 2 - src/ocaml/typing/outcometree.mli | 2 - src/ocaml/typing/parmatch.ml | 1 + src/ocaml/typing/patterns.ml | 1 + src/ocaml/typing/persistent_env.mli | 54 +- src/ocaml/typing/predef.ml | 37 +- src/ocaml/typing/printtyp.ml | 19 +- src/ocaml/typing/printtyped.ml | 8 +- src/ocaml/typing/solver.ml | 140 +-- src/ocaml/typing/tast_iterator.ml | 13 +- src/ocaml/typing/tast_mapper.ml | 16 +- src/ocaml/typing/typeclass.ml | 2 +- src/ocaml/typing/typecore.mli | 1 + src/ocaml/typing/typedecl.ml | 108 +-- src/ocaml/typing/typedecl.mli | 2 +- src/ocaml/typing/typedtree.ml | 57 +- src/ocaml/typing/typedtree.mli | 38 +- src/ocaml/typing/typemode.ml | 2 +- src/ocaml/typing/typetexp.ml | 163 ++-- src/ocaml/typing/typetexp.mli | 2 +- src/ocaml/typing/uniqueness_analysis.ml | 157 ++-- src/ocaml/typing/untypeast.ml | 210 ++--- src/ocaml/typing/value_rec_check.ml | 4 +- src/ocaml/utils/language_extension.mli | 160 ---- src/ocaml/utils/language_extension_kernel.ml | 100 +- src/ocaml/utils/language_extension_kernel.mli | 52 +- src/ocaml/utils/profile.ml | 6 +- 53 files changed, 1246 insertions(+), 2920 deletions(-) diff --git a/src/ocaml/parsing/ast_iterator.ml b/src/ocaml/parsing/ast_iterator.ml index a56250d44..f757b051c 100644 --- a/src/ocaml/parsing/ast_iterator.ml +++ b/src/ocaml/parsing/ast_iterator.ml @@ -44,37 +44,30 @@ type iterator = { constructor_declaration: iterator -> constructor_declaration -> unit; directive_argument: iterator -> directive_argument -> unit; expr: iterator -> expression -> unit; - expr_jane_syntax: iterator -> Jane_syntax.Expression.t -> unit; extension: iterator -> extension -> unit; extension_constructor: iterator -> extension_constructor -> unit; include_declaration: iterator -> include_declaration -> unit; include_description: iterator -> include_description -> unit; - jkind_annotation:iterator -> Jane_syntax.Jkind.t -> unit; + jkind_annotation:iterator -> jkind_annotation -> unit; label_declaration: iterator -> label_declaration -> unit; location: iterator -> Location.t -> unit; module_binding: iterator -> module_binding -> unit; module_declaration: iterator -> module_declaration -> unit; module_substitution: iterator -> module_substitution -> unit; module_expr: iterator -> module_expr -> unit; - module_expr_jane_syntax: iterator -> Jane_syntax.Module_expr.t -> unit; module_type: iterator -> module_type -> unit; module_type_declaration: iterator -> module_type_declaration -> unit; - module_type_jane_syntax: iterator -> Jane_syntax.Module_type.t -> unit; open_declaration: iterator -> open_declaration -> unit; open_description: iterator -> open_description -> unit; pat: iterator -> pattern -> unit; - pat_jane_syntax: iterator -> Jane_syntax.Pattern.t -> unit; payload: iterator -> payload -> unit; signature: iterator -> signature -> unit; signature_item: iterator -> signature_item -> unit; - signature_item_jane_syntax: iterator -> Jane_syntax.Signature_item.t -> unit; structure: iterator -> structure -> unit; structure_item: iterator -> structure_item -> unit; - structure_item_jane_syntax: iterator -> Jane_syntax.Structure_item.t -> unit; toplevel_directive: iterator -> toplevel_directive -> unit; toplevel_phrase: iterator -> toplevel_phrase -> unit; typ: iterator -> core_type -> unit; - typ_jane_syntax: iterator -> Jane_syntax.Core_type.t -> unit; row_field: iterator -> row_field -> unit; object_field: iterator -> object_field -> unit; type_declaration: iterator -> type_declaration -> unit; @@ -97,9 +90,6 @@ let iter_tuple3 f1 f2 f3 (x, y, z) = f1 x; f2 y; f3 z let iter_opt f = function None -> () | Some x -> f x let iter_loc sub {loc; txt = _} = sub.location sub loc -let iter_loc_txt sub f { loc; txt } = - sub.location sub loc; - f sub txt module T = struct (* Type expressions for the core language *) @@ -126,41 +116,20 @@ module T = struct | Otag (_, t) -> sub.typ sub t | Oinherit t -> sub.typ sub t - let jkind_annotation sub = - iter_loc_txt sub sub.jkind_annotation - - let bound_var sub (_, jkind) = match jkind with + let bound_var sub (name, jkind) = + iter_loc sub name; + match jkind with | None -> () - | Some annot -> jkind_annotation sub annot - - let iter_jst_layout sub : Jane_syntax.Layouts.core_type -> _ = function - | Ltyp_var { name = _; jkind } -> - iter_loc_txt sub sub.jkind_annotation jkind - | Ltyp_poly { bound_vars; inner_type } -> - List.iter (bound_var sub) bound_vars; - sub.typ sub inner_type - | Ltyp_alias { aliased_type; name; jkind } -> - sub.typ sub aliased_type; - iter_opt (iter_loc sub) name; - iter_loc_txt sub sub.jkind_annotation jkind + | Some annot -> sub.jkind_annotation sub annot let iter_labeled_tuple sub tl = List.iter (iter_snd (sub.typ sub)) tl - let iter_jst sub : Jane_syntax.Core_type.t -> _ = function - | Jtyp_layout typ -> iter_jst_layout sub typ - - let iter sub ({ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} - as typ) = + let iter sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = sub.location sub loc; - match Jane_syntax.Core_type.of_ast typ with - | Some (jtyp, attrs) -> - sub.attributes sub attrs; - sub.typ_jane_syntax sub jtyp - | None -> sub.attributes sub attrs; match desc with - | Ptyp_any - | Ptyp_var _ -> () + | Ptyp_any jkind + | Ptyp_var (_, jkind) -> Option.iter (sub.jkind_annotation sub) jkind | Ptyp_arrow (_lab, t1, t2, m1, m2) -> sub.typ sub t1; sub.typ sub t2; sub.modes sub m1; sub.modes sub m2 @@ -172,10 +141,13 @@ module T = struct List.iter (object_field sub) ol | Ptyp_class (lid, tl) -> iter_loc sub lid; List.iter (sub.typ sub) tl - | Ptyp_alias (t, _) -> sub.typ sub t + | Ptyp_alias (t, _, jkind) -> + sub.typ sub t; + Option.iter (sub.jkind_annotation sub) jkind | Ptyp_variant (rl, _b, _ll) -> List.iter (row_field sub) rl - | Ptyp_poly (_, t) -> + | Ptyp_poly (bound_vars, t) -> + List.iter (bound_var sub) bound_vars; sub.typ sub t; | Ptyp_package (lid, l) -> iter_loc sub lid; @@ -186,19 +158,12 @@ module T = struct | Ptyp_extension x -> sub.extension sub x let iter_type_declaration sub - ({ptype_name; ptype_params; ptype_cstrs; + {ptype_name; ptype_params; ptype_cstrs; ptype_kind; ptype_private = _; ptype_manifest; ptype_attributes; - ptype_loc} as ty_decl) = - let ptype_attributes = - match Jane_syntax.Layouts.of_type_declaration ty_decl with - | Some (jkind, attrs) -> - iter_loc_txt sub sub.jkind_annotation jkind; - attrs - | None -> ptype_attributes - in + ptype_loc} = iter_loc sub ptype_name; List.iter (iter_fst (sub.typ sub)) ptype_params; List.iter @@ -246,31 +211,19 @@ module T = struct let iter_extension_constructor_kind sub = function Pext_decl(vars, ctl, cto )-> - List.iter (iter_loc sub) vars; + List.iter (bound_var sub) vars; iter_constructor_arguments sub ctl; iter_opt (sub.typ sub) cto | Pext_rebind li -> iter_loc sub li - let iter_extension_constructor_jst sub : - Jane_syntax.Extension_constructor.t -> _ = function - | Jext_layout (Lext_decl (vls, ctl, cto)) -> - List.iter (bound_var sub) vls; - iter_constructor_arguments sub ctl; - iter_opt (sub.typ sub) cto - let iter_extension_constructor sub - ({pext_name; + {pext_name; pext_kind; pext_loc; - pext_attributes} as ext) = + pext_attributes} = iter_loc sub pext_name; sub.location sub pext_loc; - match Jane_syntax.Extension_constructor.of_ast ext with - | Some (jext, attrs) -> - sub.attributes sub attrs; - iter_extension_constructor_jst sub jext - | None -> iter_extension_constructor_kind sub pext_kind; sub.attributes sub pext_attributes @@ -319,14 +272,8 @@ let iter_functor_param sub = function module MT = struct (* Type expressions for the module language *) - let iter sub - ({pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} as mty) = + let iter sub {pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} = sub.location sub loc; - match Jane_syntax.Module_type.of_ast mty with - | Some (jmty, attrs) -> - sub.attributes sub attrs; - sub.module_type_jane_syntax sub jmty - | None -> sub.attributes sub attrs; match desc with | Pmty_ident s -> iter_loc sub s @@ -340,6 +287,9 @@ module MT = struct List.iter (sub.with_constraint sub) l | Pmty_typeof me -> sub.module_expr sub me | Pmty_extension x -> sub.extension sub x + | Pmty_strengthen (mty, mod_id) -> + sub.module_type sub mty; + iter_loc sub mod_id let iter_with_constraint sub = function | Pwith_type (lid, d) -> @@ -355,21 +305,8 @@ module MT = struct | Pwith_modtypesubst (lid, mty) -> iter_loc sub lid; sub.module_type sub mty - let iter_sig_layout sub - : Jane_syntax.Layouts.signature_item -> unit = function - | Lsig_kind_abbrev (name, jkind) -> - iter_loc sub name; - iter_loc_txt sub sub.jkind_annotation jkind - - let iter_signature_item_jst sub : Jane_syntax.Signature_item.t -> unit = - function - | Jsig_layout sigi -> iter_sig_layout sub sigi - - let iter_signature_item sub ({psig_desc = desc; psig_loc = loc} as sigi) = + let iter_signature_item sub {psig_desc = desc; psig_loc = loc} = sub.location sub loc; - match Jane_syntax.Signature_item.of_ast sigi with - | Some jsigi -> sub.signature_item_jane_syntax sub jsigi - | None -> match desc with | Psig_value vd -> sub.value_description sub vd | Psig_type (_, l) @@ -393,38 +330,18 @@ module MT = struct sub.attributes sub attrs; sub.extension sub x | Psig_attribute x -> sub.attribute sub x - - let iter_jane_syntax sub : Jane_syntax.Module_type.t -> _ = function - | Jmty_strengthen { mty; mod_id } -> - iter sub mty; - iter_loc sub mod_id + | Psig_kind_abbrev (name, jkind) -> + iter_loc sub name; + sub.jkind_annotation sub jkind end module M = struct (* Value expressions for the module language *) - module I = Jane_syntax.Instances - - let iter_instance _sub : I.instance -> _ = function - | _ -> - (* CR lmaurer: Implement this. Might want to change the [instance] type to have - Ids with locations in them rather than just raw strings. *) - () - - let iter_instance_expr sub : I.module_expr -> _ = function - | Imod_instance i -> iter_instance sub i - - let iter_ext sub : Jane_syntax.Module_expr.t -> _ = function - | Emod_instance i -> iter_instance_expr sub i - - let iter sub - ({pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} as expr) = + let iter sub {pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} = sub.location sub loc; sub.attributes sub attrs; - match Jane_syntax.Module_expr.of_ast expr with - | Some ext -> sub.module_expr_jane_syntax sub ext - | None -> match desc with | Pmod_ident x -> iter_loc sub x | Pmod_structure str -> sub.structure sub str @@ -440,22 +357,12 @@ module M = struct sub.module_expr sub m; sub.module_type sub mty | Pmod_unpack e -> sub.expr sub e | Pmod_extension x -> sub.extension sub x + | Pmod_instance _ -> () + (* CR lmaurer: Implement this. Might want to change the [instance] type + to have Ids with locations in them rather than just raw strings. *) - let iter_str_layout sub - : Jane_syntax.Layouts.structure_item -> unit = function - | Lstr_kind_abbrev (name, jkind) -> - iter_loc sub name; - iter_loc_txt sub sub.jkind_annotation jkind - - let iter_structure_item_jst sub : Jane_syntax.Structure_item.t -> unit = - function - | Jstr_layout stri -> iter_str_layout sub stri - - let iter_structure_item sub ({pstr_loc = loc; pstr_desc = desc} as stri) = + let iter_structure_item sub {pstr_loc = loc; pstr_desc = desc} = sub.location sub loc; - match Jane_syntax.Structure_item.of_ast stri with - | Some jstri -> sub.structure_item_jane_syntax sub jstri - | None -> match desc with | Pstr_eval (x, attrs) -> sub.attributes sub attrs; sub.expr sub x @@ -475,54 +382,37 @@ module M = struct | Pstr_extension (x, attrs) -> sub.attributes sub attrs; sub.extension sub x | Pstr_attribute x -> sub.attribute sub x + | Pstr_kind_abbrev (name, jkind) -> + iter_loc sub name; + sub.jkind_annotation sub jkind end -(* A no-op, but makes it clearer which jane syntax cases should have the same - handling as core-language cases. *) -let iter_constant = () - module E = struct (* Value expressions for the core language *) - module C = Jane_syntax.Comprehensions - module IA = Jane_syntax.Immutable_arrays - module L = Jane_syntax.Layouts - - let iter_iterator sub : C.iterator -> _ = function - | Range { start; stop; direction = _ } -> + let iter_iterator sub = function + | Pcomp_range { start; stop; direction = _ } -> sub.expr sub start; sub.expr sub stop - | In expr -> sub.expr sub expr + | Pcomp_in expr -> sub.expr sub expr let iter_clause_binding sub - ({ pattern; iterator; attributes } : - C.clause_binding) = - sub.pat sub pattern; - iter_iterator sub iterator; - sub.attributes sub attributes - - let iter_clause sub : C.clause -> _ = function - | For cbs -> List.iter (iter_clause_binding sub) cbs - | When expr -> sub.expr sub expr - - let iter_comp sub - ({ body; clauses } : C.comprehension) = - sub.expr sub body; - List.iter (iter_clause sub) clauses - - let iter_comp_exp sub : C.expression -> _ = function - | Cexp_list_comprehension comp -> iter_comp sub comp - | Cexp_array_comprehension (_mut, comp) -> iter_comp sub comp - - let iter_iarr_exp sub : IA.expression -> _ = function - | Iaexp_immutable_array elts -> - List.iter (sub.expr sub) elts - - let iter_layout_exp sub : L.expression -> _ = function - | Lexp_constant _ -> iter_constant - | Lexp_newtype (_str, jkind, inner_expr) -> - iter_loc_txt sub sub.jkind_annotation jkind; - sub.expr sub inner_expr + { pcomp_cb_pattern; pcomp_cb_iterator; pcomp_cb_attributes } = + sub.pat sub pcomp_cb_pattern; + iter_iterator sub pcomp_cb_iterator; + sub.attributes sub pcomp_cb_attributes + + let iter_clause sub = function + | Pcomp_for cbs -> List.iter (iter_clause_binding sub) cbs + | Pcomp_when expr -> sub.expr sub expr + + let iter_comp sub { pcomp_body; pcomp_clauses } = + sub.expr sub pcomp_body; + List.iter (iter_clause sub) pcomp_clauses + + let iter_comp_exp sub = function + | Pcomp_list_comprehension comp -> iter_comp sub comp + | Pcomp_array_comprehension (_mut, comp) -> iter_comp sub comp let iter_function_param sub : function_param -> _ = fun { pparam_loc = loc; pparam_desc = desc } -> @@ -533,7 +423,7 @@ module E = struct sub.pat sub pat | Pparam_newtype (newtype, jkind) -> iter_loc sub newtype; - iter_opt (iter_loc_txt sub sub.jkind_annotation) jkind + Option.iter (sub.jkind_annotation sub) jkind let iter_function_constraint sub : function_constraint -> _ = (* Enable warning 9 to ensure that the record pattern doesn't miss any @@ -557,23 +447,12 @@ module E = struct let iter_labeled_tuple sub el = List.iter (iter_snd (sub.expr sub)) el - let iter_jst sub : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension comp_exp -> iter_comp_exp sub comp_exp - | Jexp_immutable_array iarr_exp -> iter_iarr_exp sub iarr_exp - | Jexp_layout layout_exp -> iter_layout_exp sub layout_exp - - let iter sub - ({pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} as expr)= + let iter sub {pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} = sub.location sub loc; - match Jane_syntax.Expression.of_ast expr with - | Some (jexp, attrs) -> - sub.attributes sub attrs; - sub.expr_jane_syntax sub jexp - | None -> sub.attributes sub attrs; match desc with | Pexp_ident x -> iter_loc sub x - | Pexp_constant _ -> iter_constant + | Pexp_constant _ -> () | Pexp_let (_r, vbs, e) -> List.iter (sub.value_binding sub) vbs; sub.expr sub e @@ -600,7 +479,7 @@ module E = struct | Pexp_setfield (e1, lid, e2) -> sub.expr sub e1; iter_loc sub lid; sub.expr sub e2 - | Pexp_array el -> List.iter (sub.expr sub) el + | Pexp_array (_mut, el) -> List.iter (sub.expr sub) el | Pexp_ifthenelse (e1, e2, e3) -> sub.expr sub e1; sub.expr sub e2; iter_opt (sub.expr sub) e3 @@ -635,7 +514,10 @@ module E = struct | Pexp_poly (e, t) -> sub.expr sub e; iter_opt (sub.typ sub) t | Pexp_object cls -> sub.class_structure sub cls - | Pexp_newtype (_s, e) -> sub.expr sub e + | Pexp_newtype (s, jkind, e) -> + iter_loc sub s; + Option.iter (sub.jkind_annotation sub) jkind; + sub.expr sub e | Pexp_pack me -> sub.module_expr sub me | Pexp_open (o, e) -> sub.open_declaration sub o; sub.expr sub e @@ -646,6 +528,7 @@ module E = struct | Pexp_extension x -> sub.extension sub x | Pexp_unreachable -> () | Pexp_stack e -> sub.expr sub e + | Pexp_comprehension e -> iter_comp_exp sub e let iter_binding_op sub {pbop_op; pbop_pat; pbop_exp; pbop_loc} = iter_loc sub pbop_op; @@ -658,32 +541,16 @@ end module P = struct (* Patterns *) - module IA = Jane_syntax.Immutable_arrays - - let iter_iapat sub : IA.pattern -> _ = function - | Iapat_immutable_array elts -> - List.iter (sub.pat sub) elts - let iter_labeled_tuple sub pl = List.iter (iter_snd (sub.pat sub)) pl - let iter_jst sub : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array iapat -> iter_iapat sub iapat - | Jpat_layout (Lpat_constant _) -> iter_constant - - let iter sub - ({ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} as pat) = + let iter sub {ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} = sub.location sub loc; - match Jane_syntax.Pattern.of_ast pat with - | Some (jpat, attrs) -> - sub.attributes sub attrs; - sub.pat_jane_syntax sub jpat - | None -> sub.attributes sub attrs; match desc with | Ppat_any -> () | Ppat_var s -> iter_loc sub s | Ppat_alias (p, s) -> sub.pat sub p; iter_loc sub s - | Ppat_constant _ -> iter_constant + | Ppat_constant _ -> () | Ppat_interval _ -> () | Ppat_tuple (pl, _) -> iter_labeled_tuple sub pl | Ppat_unboxed_tuple (pl, _) -> iter_labeled_tuple sub pl @@ -697,7 +564,7 @@ module P = struct | Ppat_variant (_l, p) -> iter_opt (sub.pat sub) p | Ppat_record (lpl, _cf) -> List.iter (iter_tuple (iter_loc sub) (sub.pat sub)) lpl - | Ppat_array pl -> List.iter (sub.pat sub) pl + | Ppat_array (_mut, pl) -> List.iter (sub.pat sub) pl | Ppat_or (p1, p2) -> sub.pat sub p1; sub.pat sub p2 | Ppat_constraint (p, t, m) -> sub.pat sub p; Option.iter (sub.typ sub) t; sub.modes sub m; @@ -777,14 +644,15 @@ let default_iterator = { structure = (fun this l -> List.iter (this.structure_item this) l); structure_item = M.iter_structure_item; - structure_item_jane_syntax = M.iter_structure_item_jst; module_expr = M.iter; - module_expr_jane_syntax = M.iter_ext; - signature = (fun this l -> List.iter (this.signature_item this) l); + signature = + (fun this {psg_loc; psg_items; psg_modalities} -> + this.location this psg_loc; + this.modalities this psg_modalities; + List.iter (this.signature_item this) psg_items + ); signature_item = MT.iter_signature_item; - signature_item_jane_syntax = MT.iter_signature_item_jst; module_type = MT.iter; - module_type_jane_syntax = MT.iter_jane_syntax; with_constraint = MT.iter_with_constraint; class_declaration = (fun this -> CE.class_infos this (this.class_expr this)); @@ -801,7 +669,6 @@ let default_iterator = type_declaration = T.iter_type_declaration; type_kind = T.iter_type_kind; typ = T.iter; - typ_jane_syntax = T.iter_jst; row_field = T.row_field; object_field = T.object_field; type_extension = T.iter_type_extension; @@ -818,9 +685,7 @@ let default_iterator = ); pat = P.iter; - pat_jane_syntax = P.iter_jst; expr = E.iter; - expr_jane_syntax = E.iter_jst; binding_op = E.iter_binding_op; module_declaration = @@ -902,22 +767,14 @@ let default_iterator = ); constructor_declaration = - (fun this ({pcd_name; pcd_vars; pcd_args; - pcd_res; pcd_loc; pcd_attributes} as pcd) -> + (fun this {pcd_name; pcd_vars; pcd_args; + pcd_res; pcd_loc; pcd_attributes} -> iter_loc this pcd_name; - let attrs = - match Jane_syntax.Layouts.of_constructor_declaration pcd with - | None -> - List.iter (iter_loc this) pcd_vars; - pcd_attributes - | Some (vars_jkinds, attrs) -> - List.iter (T.bound_var this) vars_jkinds; - attrs - in + List.iter (T.bound_var this) pcd_vars; T.iter_constructor_arguments this pcd_args; iter_opt (this.typ this) pcd_res; this.location this pcd_loc; - this.attributes this attrs + this.attributes this pcd_attributes ); label_declaration = @@ -965,18 +822,19 @@ let default_iterator = ); jkind_annotation = - (fun this -> function - | Default -> () - | Abbreviation s -> - iter_loc this (s : Jane_syntax.Jkind.Const.t :> _ loc) - | Mod (t, mode_list) -> - this.jkind_annotation this t; - this.modes this mode_list - | With (t, ty) -> - this.jkind_annotation this t; - this.typ this ty - | Kind_of ty -> this.typ this ty - | Product ts -> List.iter (this.jkind_annotation this) ts); + (fun this { pjkind_loc; pjkind_desc } -> + this.location this pjkind_loc; + match pjkind_desc with + | Default -> () + | Abbreviation (_ : string) -> () + | Mod (t, mode_list) -> + this.jkind_annotation this t; + this.modes this mode_list + | With (t, ty) -> + this.jkind_annotation this t; + this.typ this ty + | Kind_of ty -> this.typ this ty + | Product ts -> List.iter (this.jkind_annotation this) ts); directive_argument = (fun this a -> diff --git a/src/ocaml/parsing/ast_iterator.mli b/src/ocaml/parsing/ast_iterator.mli index 711c52403..235da8f20 100644 --- a/src/ocaml/parsing/ast_iterator.mli +++ b/src/ocaml/parsing/ast_iterator.mli @@ -47,37 +47,30 @@ type iterator = { constructor_declaration: iterator -> constructor_declaration -> unit; directive_argument: iterator -> directive_argument -> unit; expr: iterator -> expression -> unit; - expr_jane_syntax : iterator -> Jane_syntax.Expression.t -> unit; extension: iterator -> extension -> unit; extension_constructor: iterator -> extension_constructor -> unit; include_declaration: iterator -> include_declaration -> unit; include_description: iterator -> include_description -> unit; - jkind_annotation: iterator -> Jane_syntax.Jkind.t -> unit; + jkind_annotation: iterator -> jkind_annotation -> unit; label_declaration: iterator -> label_declaration -> unit; location: iterator -> Location.t -> unit; module_binding: iterator -> module_binding -> unit; module_declaration: iterator -> module_declaration -> unit; module_substitution: iterator -> module_substitution -> unit; module_expr: iterator -> module_expr -> unit; - module_expr_jane_syntax: iterator -> Jane_syntax.Module_expr.t -> unit; module_type: iterator -> module_type -> unit; module_type_declaration: iterator -> module_type_declaration -> unit; - module_type_jane_syntax: iterator -> Jane_syntax.Module_type.t -> unit; open_declaration: iterator -> open_declaration -> unit; open_description: iterator -> open_description -> unit; pat: iterator -> pattern -> unit; - pat_jane_syntax: iterator -> Jane_syntax.Pattern.t -> unit; payload: iterator -> payload -> unit; signature: iterator -> signature -> unit; signature_item: iterator -> signature_item -> unit; - signature_item_jane_syntax: iterator -> Jane_syntax.Signature_item.t -> unit; structure: iterator -> structure -> unit; structure_item: iterator -> structure_item -> unit; - structure_item_jane_syntax: iterator -> Jane_syntax.Structure_item.t -> unit; toplevel_directive: iterator -> toplevel_directive -> unit; toplevel_phrase: iterator -> toplevel_phrase -> unit; typ: iterator -> core_type -> unit; - typ_jane_syntax: iterator -> Jane_syntax.Core_type.t -> unit; row_field: iterator -> row_field -> unit; object_field: iterator -> object_field -> unit; type_declaration: iterator -> type_declaration -> unit; diff --git a/src/ocaml/parsing/ast_mapper.ml b/src/ocaml/parsing/ast_mapper.ml index f7ad2eac4..46f49d050 100644 --- a/src/ocaml/parsing/ast_mapper.ml +++ b/src/ocaml/parsing/ast_mapper.ml @@ -57,8 +57,7 @@ type mapper = { -> extension_constructor; include_declaration: mapper -> include_declaration -> include_declaration; include_description: mapper -> include_description -> include_description; - jkind_annotation: - mapper -> Jane_syntax.Jkind.t -> Jane_syntax.Jkind.t; + jkind_annotation: mapper -> jkind_annotation -> jkind_annotation; label_declaration: mapper -> label_declaration -> label_declaration; location: mapper -> Location.t -> Location.t; module_binding: mapper -> module_binding -> module_binding; @@ -86,22 +85,6 @@ type mapper = { value_binding: mapper -> value_binding -> value_binding; value_description: mapper -> value_description -> value_description; with_constraint: mapper -> with_constraint -> with_constraint; - - expr_jane_syntax: - mapper -> Jane_syntax.Expression.t -> Jane_syntax.Expression.t; - extension_constructor_jane_syntax: - mapper -> - Jane_syntax.Extension_constructor.t -> Jane_syntax.Extension_constructor.t; - module_type_jane_syntax: mapper - -> Jane_syntax.Module_type.t -> Jane_syntax.Module_type.t; - module_expr_jane_syntax: mapper - -> Jane_syntax.Module_expr.t -> Jane_syntax.Module_expr.t; - pat_jane_syntax: mapper -> Jane_syntax.Pattern.t -> Jane_syntax.Pattern.t; - signature_item_jane_syntax: mapper -> - Jane_syntax.Signature_item.t -> Jane_syntax.Signature_item.t; - structure_item_jane_syntax: mapper -> - Jane_syntax.Structure_item.t -> Jane_syntax.Structure_item.t; - typ_jane_syntax: mapper -> Jane_syntax.Core_type.t -> Jane_syntax.Core_type.t; } let map_fst f (x, y) = (f x, y) @@ -111,16 +94,16 @@ let map_tuple3 f1 f2 f3 (x, y, z) = (f1 x, f2 y, f3 z) let map_opt f = function None -> None | Some x -> Some (f x) let map_loc sub {loc; txt} = {loc = sub.location sub loc; txt} -let map_loc_txt sub f {loc; txt} = - {loc = sub.location sub loc; txt = f sub txt} module C = struct (* Constants *) let map sub c = match c with | Pconst_integer _ + | Pconst_unboxed_integer _ | Pconst_char _ | Pconst_float _ + | Pconst_unboxed_float _ -> c | Pconst_string (s, loc, quotation_delimiter) -> let loc = sub.location sub loc in @@ -159,49 +142,25 @@ module T = struct let var_jkind sub (name, jkind_opt) = let name = map_loc sub name in let jkind_opt = - map_opt (map_loc_txt sub sub.jkind_annotation) jkind_opt + map_opt (sub.jkind_annotation sub) jkind_opt in (name, jkind_opt) let map_bound_vars sub bound_vars = List.map (var_jkind sub) bound_vars - let map_jst_layouts sub : - Jane_syntax.Layouts.core_type -> Jane_syntax.Layouts.core_type = - function - | Ltyp_var { name; jkind } -> - let jkind = map_loc_txt sub sub.jkind_annotation jkind in - Ltyp_var { name; jkind } - | Ltyp_poly { bound_vars; inner_type } -> - let bound_vars = map_bound_vars sub bound_vars in - let inner_type = sub.typ sub inner_type in - Ltyp_poly { bound_vars; inner_type } - | Ltyp_alias { aliased_type; name; jkind } -> - let aliased_type = sub.typ sub aliased_type in - let name = map_opt (map_loc sub) name in - let jkind = map_loc_txt sub sub.jkind_annotation jkind in - Ltyp_alias { aliased_type; name; jkind } - let map_labeled_tuple sub tl = List.map (map_snd (sub.typ sub)) tl - let map_jst sub : Jane_syntax.Core_type.t -> Jane_syntax.Core_type.t = - function - | Jtyp_layout typ -> Jtyp_layout (map_jst_layouts sub typ) - - let map sub ({ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} - as typ) = + let map sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = let open Typ in let loc = sub.location sub loc in - match Jane_syntax.Core_type.of_ast typ with - | Some (jtyp, attrs) -> begin - let attrs = sub.attributes sub attrs in - let jtyp = sub.typ_jane_syntax sub jtyp in - Jane_syntax.Core_type.core_type_of jtyp ~loc ~attrs - end - | None -> let attrs = sub.attributes sub attrs in match desc with - | Ptyp_any -> any ~loc ~attrs () - | Ptyp_var s -> var ~loc ~attrs s + | Ptyp_any jkind -> + let jkind = map_opt (sub.jkind_annotation sub) jkind in + any ~loc ~attrs jkind + | Ptyp_var (s, jkind) -> + let jkind = map_opt (sub.jkind_annotation sub) jkind in + var ~loc ~attrs s jkind | Ptyp_arrow (lab, t1, t2, m1, m2) -> arrow ~loc ~attrs lab (sub.typ sub t1) (sub.typ sub t2) (sub.modes sub m1) (sub.modes sub m2) | Ptyp_tuple tyl -> tuple ~loc ~attrs (map_labeled_tuple sub tyl) @@ -213,13 +172,21 @@ module T = struct object_ ~loc ~attrs (List.map (object_field sub) l) o | Ptyp_class (lid, tl) -> class_ ~loc ~attrs (map_loc sub lid) (List.map (sub.typ sub) tl) - | Ptyp_alias (t, s) -> - let s = map_loc sub s in - alias ~loc ~attrs (sub.typ sub t) s + | Ptyp_alias (t, s, jkind) -> + let s = map_opt (map_loc sub) s in + let jkind = map_opt (sub.jkind_annotation sub) jkind in + alias ~loc ~attrs (sub.typ sub t) s jkind | Ptyp_variant (rl, b, ll) -> variant ~loc ~attrs (List.map (row_field sub) rl) b ll - | Ptyp_poly (sl, t) -> poly ~loc ~attrs - (List.map (map_loc sub) sl) (sub.typ sub t) + | Ptyp_poly (sl, t) -> + let sl = + List.map (fun (var, jkind) -> + map_loc sub var, + map_opt (sub.jkind_annotation sub) jkind) + sl + in + let t = sub.typ sub t in + poly ~loc ~attrs sl t | Ptyp_package (lid, l) -> package ~loc ~attrs (map_loc sub lid) (List.map (map_tuple (map_loc sub) (sub.typ sub)) l) @@ -228,32 +195,28 @@ module T = struct | Ptyp_extension x -> extension ~loc ~attrs (sub.extension sub x) let map_type_declaration sub - ({ptype_name; ptype_params; ptype_cstrs; + {ptype_name; ptype_params; ptype_cstrs; ptype_kind; ptype_private; ptype_manifest; ptype_attributes; - ptype_loc} as tyd) = + ptype_jkind_annotation; + ptype_loc} = let loc = sub.location sub ptype_loc in - let jkind, ptype_attributes = - match Jane_syntax.Layouts.of_type_declaration tyd with - | None -> None, ptype_attributes - | Some (jkind, attributes) -> - let jkind = map_loc_txt sub sub.jkind_annotation jkind in - Some jkind, attributes + let ptype_jkind_annotation = + map_opt (sub.jkind_annotation sub) ptype_jkind_annotation in let attrs = sub.attributes sub ptype_attributes in - Jane_syntax.Layouts.type_declaration_of ~loc ~attrs (map_loc sub ptype_name) + Type.mk ~loc ~attrs (map_loc sub ptype_name) ~params:(List.map (map_fst (sub.typ sub)) ptype_params) ~priv:ptype_private ~cstrs:(List.map (map_tuple3 (sub.typ sub) (sub.typ sub) (sub.location sub)) ptype_cstrs) ~kind:(sub.type_kind sub ptype_kind) - ~manifest:(map_opt (sub.typ sub) ptype_manifest) - ~jkind + ?manifest:(map_opt (sub.typ sub) ptype_manifest) ~docs:Docstrings.empty_docs - ~text:None + ?jkind_annotation:ptype_jkind_annotation let map_type_kind sub = function | Ptype_abstract -> Ptype_abstract @@ -294,37 +257,21 @@ module T = struct Te.mk_exception ~loc ~attrs (sub.extension_constructor sub ptyexn_constructor) - let map_extension_constructor_jst sub : - Jane_syntax.Extension_constructor.t -> Jane_syntax.Extension_constructor.t = - function - | Jext_layout (Lext_decl(vars, args, res)) -> - let vars = map_bound_vars sub vars in - let args = map_constructor_arguments sub args in - let res = map_opt (sub.typ sub) res in - Jext_layout (Lext_decl(vars, args, res)) - let map_extension_constructor_kind sub = function Pext_decl(vars, ctl, cto) -> - Pext_decl(List.map (map_loc sub) vars, + Pext_decl(map_bound_vars sub vars, map_constructor_arguments sub ctl, map_opt (sub.typ sub) cto) | Pext_rebind li -> Pext_rebind (map_loc sub li) let map_extension_constructor sub - ({pext_name; + {pext_name; pext_kind; pext_loc; - pext_attributes} as ext) = + pext_attributes} = let loc = sub.location sub pext_loc in let name = map_loc sub pext_name in - match Jane_syntax.Extension_constructor.of_ast ext with - | Some (jext, attrs) -> - let attrs = sub.attributes sub attrs in - let jext = sub.extension_constructor_jane_syntax sub jext in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~name ~attrs jext - | None -> let attrs = sub.attributes sub pext_attributes in Te.constructor ~loc ~attrs name @@ -378,17 +325,9 @@ let map_functor_param sub = function module MT = struct (* Type expressions for the module language *) - let map sub - ({pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} as mty) = + let map sub {pmty_desc = desc; pmty_loc = loc; pmty_attributes = attrs} = let open Mty in let loc = sub.location sub loc in - match Jane_syntax.Module_type.of_ast mty with - | Some (jmty, attrs) -> begin - let attrs = sub.attributes sub attrs in - Jane_syntax.Module_type.mty_of ~loc ~attrs - (sub.module_type_jane_syntax sub jmty) - end - | None -> let attrs = sub.attributes sub attrs in match desc with | Pmty_ident s -> ident ~loc ~attrs (map_loc sub s) @@ -403,6 +342,10 @@ module MT = struct (List.map (sub.with_constraint sub) l) | Pmty_typeof me -> typeof_ ~loc ~attrs (sub.module_expr sub me) | Pmty_extension x -> extension ~loc ~attrs (sub.extension sub x) + | Pmty_strengthen (mty, mod_id) -> + strengthen ~loc ~attrs + (sub.module_type sub mty) + (map_loc sub mod_id) let map_with_constraint sub = function | Pwith_type (lid, d) -> @@ -418,32 +361,9 @@ module MT = struct | Pwith_modtypesubst (lid, mty) -> Pwith_modtypesubst (map_loc sub lid, sub.module_type sub mty) - module L = Jane_syntax.Layouts - - let map_sig_layout sub : L.signature_item -> L.signature_item = - function - | Lsig_kind_abbrev (name, jkind) -> - Lsig_kind_abbrev ( - map_loc sub name, - map_loc_txt sub sub.jkind_annotation jkind - ) - - let map_signature_item_jst sub : - Jane_syntax.Signature_item.t -> Jane_syntax.Signature_item.t = - function - | Jsig_layout sigi -> - Jsig_layout (map_sig_layout sub sigi) - - let map_signature_item sub ({psig_desc = desc; psig_loc = loc} as sigi) = + let map_signature_item sub {psig_desc = desc; psig_loc = loc} = let open Sig in let loc = sub.location sub loc in - match Jane_syntax.Signature_item.of_ast sigi with - | Some jsigi -> begin - match sub.signature_item_jane_syntax sub jsigi with - | Jsig_layout sigi -> - Jane_syntax.Layouts.sig_item_of ~loc sigi - end - | None -> match desc with | Psig_value vd -> value ~loc (sub.value_description sub vd) | Psig_type (rf, l) -> @@ -470,44 +390,19 @@ module MT = struct let attrs = sub.attributes sub attrs in extension ~loc ~attrs (sub.extension sub x) | Psig_attribute x -> attribute ~loc (sub.attribute sub x) - - let map_jane_syntax sub : - Jane_syntax.Module_type.t -> Jane_syntax.Module_type.t = function - | Jmty_strengthen { mty; mod_id } -> - let mty = sub.module_type sub mty in - let mod_id = map_loc sub mod_id in - Jmty_strengthen { mty; mod_id } + | Psig_kind_abbrev (name, jkind) -> + kind_abbrev + ~loc + (map_loc sub name) + (sub.jkind_annotation sub jkind) end module M = struct - module I = Jane_syntax.Instances - - (* Value expressions for the module language *) - let map_instance _sub : I.instance -> I.instance = function - | i -> - (* CR lmaurer: Implement this. Might want to change the [instance] type to have - Ids with locations in them rather than just raw strings. *) - i - - let map_instance_expr sub : I.module_expr -> I.module_expr = function - | Imod_instance i -> Imod_instance (map_instance sub i) - - let map_ext sub : Jane_syntax.Module_expr.t -> Jane_syntax.Module_expr.t = - function - | Emod_instance i -> Emod_instance (map_instance_expr sub i) - - let map sub - ({pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} as mexpr) = + let map sub {pmod_loc = loc; pmod_desc = desc; pmod_attributes = attrs} = let open Mod in let loc = sub.location sub loc in let attrs = sub.attributes sub attrs in - match Jane_syntax.Module_expr.of_ast mexpr with - | Some ext -> begin - match sub.module_expr_jane_syntax sub ext with - | Emod_instance i -> Jane_syntax.Instances.module_expr_of ~loc i - end - | None -> match desc with | Pmod_ident x -> ident ~loc ~attrs (map_loc sub x) | Pmod_structure str -> structure ~loc ~attrs (sub.structure sub str) @@ -524,33 +419,14 @@ module M = struct (sub.module_type sub mty) | Pmod_unpack e -> unpack ~loc ~attrs (sub.expr sub e) | Pmod_extension x -> extension ~loc ~attrs (sub.extension sub x) + | Pmod_instance x -> + (* CR lmaurer: Implement this. Might want to change the [instance] type + to have Ids with locations in them rather than just raw strings. *) + instance ~loc ~attrs x - module L = Jane_syntax.Layouts - - let map_str_layout sub : L.structure_item -> L.structure_item = - function - | Lstr_kind_abbrev (name, jkind) -> - Lstr_kind_abbrev ( - map_loc sub name, - map_loc_txt sub sub.jkind_annotation jkind - ) - - let map_structure_item_jst sub : - Jane_syntax.Structure_item.t -> Jane_syntax.Structure_item.t = - function - | Jstr_layout stri -> - Jstr_layout (map_str_layout sub stri) - - let map_structure_item sub ({pstr_loc = loc; pstr_desc = desc} as stri) = + let map_structure_item sub {pstr_loc = loc; pstr_desc = desc} = let open Str in let loc = sub.location sub loc in - match Jane_syntax.Structure_item.of_ast stri with - | Some jstri -> begin - match sub.structure_item_jane_syntax sub jstri with - | Jstr_layout stri -> - Jane_syntax.Layouts.str_item_of ~loc stri - end - | None -> match desc with | Pstr_eval (x, attrs) -> let attrs = sub.attributes sub attrs in @@ -572,15 +448,16 @@ module M = struct let attrs = sub.attributes sub attrs in extension ~loc ~attrs (sub.extension sub x) | Pstr_attribute x -> attribute ~loc (sub.attribute sub x) + | Pstr_kind_abbrev (name, jkind) -> + kind_abbrev + ~loc + (map_loc sub name) + (sub.jkind_annotation sub jkind) end module E = struct (* Value expressions for the core language *) - module C = Jane_syntax.Comprehensions - module IA = Jane_syntax.Immutable_arrays - module L = Jane_syntax.Layouts - let map_function_param sub { pparam_loc = loc; pparam_desc = desc } = let loc = sub.location sub loc in let desc = @@ -590,7 +467,7 @@ module E = struct | Pparam_newtype (newtype, jkind) -> Pparam_newtype ( map_loc sub newtype - , map_opt (map_loc_txt sub sub.jkind_annotation) jkind + , map_opt (sub.jkind_annotation sub) jkind ) in { pparam_loc = loc; pparam_desc = desc } @@ -613,70 +490,38 @@ module E = struct type_constraint = map_type_constraint sub type_constraint; } - let map_iterator sub : C.iterator -> C.iterator = function - | Range { start; stop; direction } -> - Range { start = sub.expr sub start; - stop = sub.expr sub stop; - direction } - | In expr -> In (sub.expr sub expr) - - let map_clause_binding sub : C.clause_binding -> C.clause_binding = function - | { pattern; iterator; attributes } -> - { pattern = sub.pat sub pattern; - iterator = map_iterator sub iterator; - attributes = sub.attributes sub attributes } - - let map_clause sub : C.clause -> C.clause = function - | For cbs -> For (List.map (map_clause_binding sub) cbs) - | When expr -> When (sub.expr sub expr) - - let map_comp sub : C.comprehension -> C.comprehension = function - | { body; clauses } -> { body = sub.expr sub body; - clauses = List.map (map_clause sub) clauses } - - let map_cexp sub : C.expression -> C.expression = function - | Cexp_list_comprehension comp -> - Cexp_list_comprehension (map_comp sub comp) - | Cexp_array_comprehension (mut, comp) -> - Cexp_array_comprehension (mut, map_comp sub comp) - - let map_iaexp sub : IA.expression -> IA.expression = function - | Iaexp_immutable_array elts -> - Iaexp_immutable_array (List.map (sub.expr sub) elts) - - let map_unboxed_constant_exp _sub : L.constant -> L.constant = function - (* We can't reasonably call [sub.constant] because it might return a kind - of constant we don't know how to unbox. - *) - | (Float _ | Integer _) as x -> x - - let map_layout_exp sub : L.expression -> L.expression = function - | Lexp_constant x -> Lexp_constant (map_unboxed_constant_exp sub x) - | Lexp_newtype (str, jkind, inner_expr) -> - let str = map_loc sub str in - let jkind = map_loc_txt sub sub.jkind_annotation jkind in - let inner_expr = sub.expr sub inner_expr in - Lexp_newtype (str, jkind, inner_expr) + let map_iterator sub = function + | Pcomp_range { start; stop; direction } -> + Pcomp_range { start = sub.expr sub start; + stop = sub.expr sub stop; + direction } + | Pcomp_in expr -> Pcomp_in (sub.expr sub expr) + + let map_clause_binding sub = function + | { pcomp_cb_pattern; pcomp_cb_iterator; pcomp_cb_attributes } -> + { pcomp_cb_pattern = sub.pat sub pcomp_cb_pattern; + pcomp_cb_iterator = map_iterator sub pcomp_cb_iterator; + pcomp_cb_attributes = sub.attributes sub pcomp_cb_attributes } + + let map_clause sub = function + | Pcomp_for cbs -> Pcomp_for (List.map (map_clause_binding sub) cbs) + | Pcomp_when expr -> Pcomp_when (sub.expr sub expr) + + let map_comp sub = function + | { pcomp_body; pcomp_clauses } -> + { pcomp_body = sub.expr sub pcomp_body; + pcomp_clauses = List.map (map_clause sub) pcomp_clauses } + + let map_cexp sub = function + | Pcomp_list_comprehension comp -> + Pcomp_list_comprehension (map_comp sub comp) + | Pcomp_array_comprehension (mut, comp) -> + Pcomp_array_comprehension (mut, map_comp sub comp) let map_ltexp sub el = List.map (map_snd (sub.expr sub)) el - - let map_jst sub : Jane_syntax.Expression.t -> Jane_syntax.Expression.t = - function - | Jexp_comprehension x -> Jexp_comprehension (map_cexp sub x) - | Jexp_immutable_array x -> Jexp_immutable_array (map_iaexp sub x) - | Jexp_layout x -> Jexp_layout (map_layout_exp sub x) - - let map sub - ({pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} as exp) = + let map sub {pexp_loc = loc; pexp_desc = desc; pexp_attributes = attrs} = let open Exp in let loc = sub.location sub loc in - match Jane_syntax.Expression.of_ast exp with - | Some (jexp, attrs) -> begin - let attrs = sub.attributes sub attrs in - Jane_syntax.Expression.expr_of ~loc ~attrs - (sub.expr_jane_syntax sub jexp) - end - | None -> let attrs = sub.attributes sub attrs in match desc with | Pexp_ident x -> ident ~loc ~attrs (map_loc sub x) @@ -710,7 +555,7 @@ module E = struct | Pexp_setfield (e1, lid, e2) -> setfield ~loc ~attrs (sub.expr sub e1) (map_loc sub lid) (sub.expr sub e2) - | Pexp_array el -> array ~loc ~attrs (List.map (sub.expr sub) el) + | Pexp_array (mut, el) -> array ~loc ~attrs mut (List.map (sub.expr sub) el) | Pexp_ifthenelse (e1, e2, e3) -> ifthenelse ~loc ~attrs (sub.expr sub e1) (sub.expr sub e2) (map_opt (sub.expr sub) e3) @@ -746,8 +591,10 @@ module E = struct | Pexp_poly (e, t) -> poly ~loc ~attrs (sub.expr sub e) (map_opt (sub.typ sub) t) | Pexp_object cls -> object_ ~loc ~attrs (sub.class_structure sub cls) - | Pexp_newtype (s, e) -> - newtype ~loc ~attrs (map_loc sub s) (sub.expr sub e) + | Pexp_newtype (s, jkind, e) -> + newtype ~loc ~attrs (map_loc sub s) + (map_opt (sub.jkind_annotation sub) jkind) + (sub.expr sub e) | Pexp_pack me -> pack ~loc ~attrs (sub.module_expr sub me) | Pexp_open (o, e) -> open_ ~loc ~attrs (sub.open_declaration sub o) (sub.expr sub e) @@ -757,6 +604,7 @@ module E = struct | Pexp_extension x -> extension ~loc ~attrs (sub.extension sub x) | Pexp_unreachable -> unreachable ~loc ~attrs () | Pexp_stack e -> stack ~loc ~attrs (sub.expr sub e) + | Pexp_comprehension c -> comprehension ~loc ~attrs (map_cexp sub c) let map_binding_op sub {pbop_op; pbop_pat; pbop_exp; pbop_loc} = let open Exp in @@ -771,36 +619,11 @@ end module P = struct (* Patterns *) - module IA = Jane_syntax.Immutable_arrays - module L = Jane_syntax.Layouts - - let map_iapat sub : IA.pattern -> IA.pattern = function - | Iapat_immutable_array elts -> - Iapat_immutable_array (List.map (sub.pat sub) elts) - - let map_unboxed_constant_pat _sub : L.constant -> L.constant = function - (* We can't reasonably call [sub.constant] because it might return a kind - of constant we don't know how to unbox. - *) - | Float _ | Integer _ as x -> x - let map_ltpat sub pl = List.map (map_snd (sub.pat sub)) pl - let map_jst sub : Jane_syntax.Pattern.t -> Jane_syntax.Pattern.t = function - | Jpat_immutable_array x -> Jpat_immutable_array (map_iapat sub x) - | Jpat_layout (Lpat_constant x) -> - Jpat_layout (Lpat_constant (map_unboxed_constant_pat sub x)) - - let map sub - ({ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} as pat) = + let map sub {ppat_desc = desc; ppat_loc = loc; ppat_attributes = attrs} = let open Pat in let loc = sub.location sub loc in - match Jane_syntax.Pattern.of_ast pat with - | Some (jpat, attrs) -> begin - let attrs = sub.attributes sub attrs in - Jane_syntax.Pattern.pat_of ~loc ~attrs (sub.pat_jane_syntax sub jpat) - end - | None -> let attrs = sub.attributes sub attrs in match desc with | Ppat_any -> any ~loc ~attrs () @@ -821,7 +644,7 @@ module P = struct | Ppat_record (lpl, cf) -> record ~loc ~attrs (List.map (map_tuple (map_loc sub) (sub.pat sub)) lpl) cf - | Ppat_array pl -> array ~loc ~attrs (List.map (sub.pat sub) pl) + | Ppat_array (mut, pl) -> array ~loc ~attrs mut (List.map (sub.pat sub) pl) | Ppat_or (p1, p2) -> or_ ~loc ~attrs (sub.pat sub p1) (sub.pat sub p2) | Ppat_constraint (p, t, m) -> constraint_ ~loc ~attrs (sub.pat sub p) (Option.map (sub.typ sub) t) (sub.modes sub m) @@ -846,10 +669,10 @@ module CE = struct | Pcl_structure s -> structure ~loc ~attrs (sub.class_structure sub s) | Pcl_fun (lab, e, p, ce) -> - (fun_ ~loc ~attrs lab + fun_ ~loc ~attrs lab (map_opt (sub.expr sub) e) (sub.pat sub p) - (sub.class_expr sub ce) [@alert "-prefer_jane_syntax"]) + (sub.class_expr sub ce) | Pcl_apply (ce, l) -> apply ~loc ~attrs (sub.class_expr sub ce) (List.map (map_snd (sub.expr sub)) l) @@ -910,8 +733,13 @@ let default_mapper = structure = (fun this l -> List.map (this.structure_item this) l); structure_item = M.map_structure_item; module_expr = M.map; - module_expr_jane_syntax = M.map_ext; - signature = (fun this l -> List.map (this.signature_item this) l); + signature = + (fun this {psg_items; psg_modalities; psg_loc} -> + let psg_modalities = this.modalities this psg_modalities in + let psg_items = List.map (this.signature_item this) psg_items in + let psg_loc = this.location this psg_loc in + {psg_items; psg_modalities; psg_loc} + ); signature_item = MT.map_signature_item; module_type = MT.map; with_constraint = MT.map_with_constraint; @@ -1040,23 +868,16 @@ let default_mapper = constructor_declaration = - (fun this ({pcd_name; pcd_vars; pcd_args; - pcd_res; pcd_loc; pcd_attributes} as pcd) -> + (fun this {pcd_name; pcd_vars; pcd_args; + pcd_res; pcd_loc; pcd_attributes} -> let name = map_loc this pcd_name in let args = T.map_constructor_arguments this pcd_args in let res = map_opt (this.typ this) pcd_res in let loc = this.location this pcd_loc in - match Jane_syntax.Layouts.of_constructor_declaration pcd with - | None -> - let vars = List.map (map_loc this) pcd_vars in - let attrs = this.attributes this pcd_attributes in - Type.constructor name ~vars ~args ?res ~loc ~attrs - | Some (vars_jkinds, attributes) -> - let vars_jkinds = List.map (T.var_jkind this) vars_jkinds in - let attrs = this.attributes this attributes in - Jane_syntax.Layouts.constructor_declaration_of - name ~vars_jkinds ~args ~res ~loc ~attrs - ~info:Docstrings.empty_info + let vars = List.map (T.var_jkind this) pcd_vars in + let attrs = this.attributes this pcd_attributes in + Type.constructor name ~vars ~args ?res ~loc ~attrs + ~info:Docstrings.empty_info ); label_declaration = @@ -1102,29 +923,20 @@ let default_mapper = | PPat (x, g) -> PPat (this.pat this x, map_opt (this.expr this) g) ); - jkind_annotation = (fun this -> - let open Jane_syntax in - function - | Default -> Default - | Abbreviation s -> - let {txt; loc} = - map_loc this s - in - Abbreviation (Jkind.Const.mk txt loc) - | Mod (t, mode_list) -> - Mod (this.jkind_annotation this t, this.modes this mode_list) - | With (t, ty) -> - With (this.jkind_annotation this t, this.typ this ty) - | Kind_of ty -> Kind_of (this.typ this ty) - | Product ts -> Product (List.map (this.jkind_annotation this) ts)); - - expr_jane_syntax = E.map_jst; - extension_constructor_jane_syntax = T.map_extension_constructor_jst; - module_type_jane_syntax = MT.map_jane_syntax; - pat_jane_syntax = P.map_jst; - signature_item_jane_syntax = MT.map_signature_item_jst; - structure_item_jane_syntax = M.map_structure_item_jst; - typ_jane_syntax = T.map_jst; + jkind_annotation = (fun this { pjkind_loc; pjkind_desc } -> + let pjkind_loc = this.location this pjkind_loc in + let pjkind_desc = + match pjkind_desc with + | Default -> Default + | Abbreviation (s : string) -> Abbreviation s + | Mod (t, mode_list) -> + Mod (this.jkind_annotation this t, this.modes this mode_list) + | With (t, ty) -> + With (this.jkind_annotation this t, this.typ this ty) + | Kind_of ty -> Kind_of (this.typ this ty) + | Product ts -> Product (List.map (this.jkind_annotation this) ts) + in + { pjkind_loc; pjkind_desc }); modes = (fun this m -> List.map (map_loc this) m); @@ -1216,6 +1028,7 @@ module PpxContext = struct make_list (make_pair make_string (fun x -> x)) (String.Map.bindings !cookies) + (* CR zqian: add [psg_attributes] to `Parsetree.signature`, and use that. *) let mk fields = { attr_name = { txt = "ocaml.ppx.context"; loc = Location.none }; @@ -1389,26 +1202,28 @@ let apply_lazy ~source ~target mapper = let fields = PpxContext.update_cookies fields in Str.attribute (PpxContext.mk fields) :: ast in - let iface ast = - let fields, ast = - match ast with + let iface {psg_items; psg_modalities; psg_loc} = + let fields, psg_items = + match psg_items with | {psig_desc = Psig_attribute ({attr_name = {txt = "ocaml.ppx.context"}; attr_payload = x; attr_loc = _})} :: l -> PpxContext.get_fields x, l - | _ -> [], ast + | _ -> [], psg_items in PpxContext.restore fields; - let ast = + let {psg_items; psg_modalities; psg_loc} = try let mapper = mapper () in - mapper.signature mapper ast + mapper.signature mapper {psg_items; psg_modalities; psg_loc} with exn -> - [{psig_desc = Psig_extension (extension_of_exn exn, []); - psig_loc = Location.none}] + { psg_items = [{psig_desc = Psig_extension (extension_of_exn exn, []); + psig_loc = Location.none}]; + psg_modalities = []; psg_loc = Location.none } in let fields = PpxContext.update_cookies fields in - Sig.attribute (PpxContext.mk fields) :: ast + let psg_items = Sig.attribute (PpxContext.mk fields) :: psg_items in + {psg_items; psg_modalities; psg_loc} in let ic = open_in_bin source in @@ -1448,7 +1263,7 @@ let drop_ppx_context_str ~restore = function items | items -> items -let drop_ppx_context_sig ~restore = function +let drop_ppx_context_sig_items ~restore = function | {psig_desc = Psig_attribute {attr_name = {Location.txt = "ocaml.ppx.context"}; attr_payload = a; @@ -1459,12 +1274,19 @@ let drop_ppx_context_sig ~restore = function items | items -> items +let drop_ppx_context_sig ~restore {psg_items; psg_modalities; psg_loc} = + let psg_items = drop_ppx_context_sig_items ~restore psg_items in + {psg_items; psg_modalities; psg_loc} + let add_ppx_context_str ~tool_name ast = Ast_helper.Str.attribute (ppx_context ~tool_name ()) :: ast -let add_ppx_context_sig ~tool_name ast = - Ast_helper.Sig.attribute (ppx_context ~tool_name ()) :: ast +let add_ppx_context_sig_items ~tool_name ast = + Ast_helper.Sig.attribute (ppx_context ~tool_name ()) :: ast +let add_ppx_context_sig ~tool_name {psg_items; psg_modalities; psg_loc} = + let psg_items = add_ppx_context_sig_items ~tool_name psg_items in + {psg_items; psg_modalities; psg_loc} let apply ~source ~target mapper = apply_lazy ~source ~target (fun () -> mapper) diff --git a/src/ocaml/parsing/ast_mapper.mli b/src/ocaml/parsing/ast_mapper.mli index b171cbcaf..c3bd5effb 100644 --- a/src/ocaml/parsing/ast_mapper.mli +++ b/src/ocaml/parsing/ast_mapper.mli @@ -92,8 +92,7 @@ type mapper = { thus the thing being included might be a functor and not a plain module type *) - jkind_annotation: - mapper -> Jane_syntax.Jkind.t -> Jane_syntax.Jkind.t; + jkind_annotation: mapper -> jkind_annotation -> jkind_annotation; label_declaration: mapper -> label_declaration -> label_declaration; location: mapper -> Location.t -> Location.t; module_binding: mapper -> module_binding -> module_binding; @@ -121,22 +120,6 @@ type mapper = { value_binding: mapper -> value_binding -> value_binding; value_description: mapper -> value_description -> value_description; with_constraint: mapper -> with_constraint -> with_constraint; - - expr_jane_syntax: - mapper -> Jane_syntax.Expression.t -> Jane_syntax.Expression.t; - extension_constructor_jane_syntax: - mapper -> - Jane_syntax.Extension_constructor.t -> Jane_syntax.Extension_constructor.t; - module_type_jane_syntax: mapper -> - Jane_syntax.Module_type.t -> Jane_syntax.Module_type.t; - module_expr_jane_syntax: mapper -> - Jane_syntax.Module_expr.t -> Jane_syntax.Module_expr.t; - pat_jane_syntax: mapper -> Jane_syntax.Pattern.t -> Jane_syntax.Pattern.t; - signature_item_jane_syntax: mapper -> - Jane_syntax.Signature_item.t -> Jane_syntax.Signature_item.t; - structure_item_jane_syntax: mapper -> - Jane_syntax.Structure_item.t -> Jane_syntax.Structure_item.t; - typ_jane_syntax: mapper -> Jane_syntax.Core_type.t -> Jane_syntax.Core_type.t; } (** A mapper record implements one "method" per syntactic category, using an open recursion style: each method takes as its first @@ -220,6 +203,9 @@ val add_ppx_context_sig: tool_name:string -> Parsetree.signature -> Parsetree.signature (** Same as [add_ppx_context_str], but for signatures. *) +val add_ppx_context_sig_items: + tool_name:string -> Parsetree.signature_item list -> Parsetree.signature_item list + val drop_ppx_context_str: restore:bool -> Parsetree.structure -> Parsetree.structure (** Drop the ocaml.ppx.context attribute from a structure. If @@ -230,6 +216,9 @@ val drop_ppx_context_sig: restore:bool -> Parsetree.signature -> Parsetree.signature (** Same as [drop_ppx_context_str], but for signatures. *) +val drop_ppx_context_sig_items: + restore:bool -> Parsetree.signature_item list -> Parsetree.signature_item list + (** {1 Cookies} *) (** Cookies are used to pass information from a ppx processor to diff --git a/src/ocaml/parsing/builtin_attributes.ml b/src/ocaml/parsing/builtin_attributes.ml index 5f819b7ee..09f954f18 100644 --- a/src/ocaml/parsing/builtin_attributes.ml +++ b/src/ocaml/parsing/builtin_attributes.ml @@ -121,8 +121,14 @@ let builtin_attrs = ; "no_mutable_implied_modalities" ; "or_null_reexport" ; "no_recursive_modalities" + ; "jane.non_erasable.instances" ] +let builtin_attrs = + let tbl = Hashtbl.create 128 in + List.iter (fun attr -> Hashtbl.add tbl attr ()) builtin_attrs; + tbl + let drop_ocaml_attr_prefix s = let len = String.length s in if String.starts_with ~prefix:"ocaml." s && len > 6 then @@ -130,42 +136,7 @@ let drop_ocaml_attr_prefix s = else s -(* nroberts: When we upstream the builtin-attribute whitelisting, we shouldn't - upstream the "jane" prefix. - - Internally, we use "jane.*" to encode our changes to the parsetree, - and our compiler should not drop these attributes. - - Upstream, ppxes may produce attributes with the "jane.*" prefix. - The upstream compiler does not use these attributes. We want it to be - able to drop these attributes without a warning. - - It's an error for an upstream ppx to create an attribute that corresponds to - a *non-erasable* Jane language extension, like list comprehensions, which - should never reach the upstream compiler. So, we distinguish that in the - attribute prefix: upstream ppxlib will error out if it sees a ppx creating a - "jane.non_erasable" attribute and be happy to accept a "jane.erasable" - attribute. Meanwhile, an internal patched version of ppxlib will be happy for - a ppx to produce either of these attributes. -*) -let builtin_attr_prefixes = - [ "jane" - ] - -let is_builtin_attr = - let builtin_attrs = - let tbl = Hashtbl.create 128 in - List.iter - (fun attr -> Hashtbl.add tbl attr ()) - (builtin_attr_prefixes @ builtin_attrs); - tbl - in - let builtin_attr_prefixes_with_trailing_dot = - List.map (fun x -> x ^ ".") builtin_attr_prefixes - in - fun s -> - Hashtbl.mem builtin_attrs (drop_ocaml_attr_prefix s) - || List.exists - (fun prefix -> String.starts_with ~prefix s) - builtin_attr_prefixes_with_trailing_dot +let is_builtin_attr s = Hashtbl.mem builtin_attrs (drop_ocaml_attr_prefix s) type current_phase = Parser | Invariant_check @@ -357,14 +328,14 @@ let check_deprecated_mutable_inclusion ~def ~use loc attrs1 attrs2 s = Location.deprecated ~def ~use loc (Printf.sprintf "mutating field %s" (cat s txt)) -let rec attrs_of_sig = function +let rec attrs_of_sig_items = function | {psig_desc = Psig_attribute a} :: tl -> - a :: attrs_of_sig tl + a :: attrs_of_sig_items tl | _ -> [] -let alerts_of_sig ~mark sg = - let a = attrs_of_sig sg in +let alerts_of_sig ~mark {psg_items; _} = + let a = attrs_of_sig_items psg_items in if mark then mark_alerts_used a; alerts_of_attrs a @@ -680,13 +651,19 @@ let has_local_opt attrs = let has_layout_poly attrs = has_attribute "layout_poly" attrs +let curry_attr_name = "extension.curry" + let has_curry attrs = - has_attribute Jane_syntax.Arrow_curry.curry_attr_name attrs + has_attribute curry_attr_name attrs || has_attribute "curry" attrs let has_or_null_reexport attrs = has_attribute "or_null_reexport" attrs +let curry_attr loc = + Ast_helper.Attr.mk ~loc:Location.none (Location.mkloc curry_attr_name loc) (PStr []) +;; + let tailcall attr = let has_nontail = has_attribute "nontail" attr in let tail_attrs = select_attributes ["tail", Return] attr in diff --git a/src/ocaml/parsing/builtin_attributes.mli b/src/ocaml/parsing/builtin_attributes.mli index 1f602edef..8e7f16fb1 100644 --- a/src/ocaml/parsing/builtin_attributes.mli +++ b/src/ocaml/parsing/builtin_attributes.mli @@ -201,6 +201,14 @@ val has_boxed: Parsetree.attributes -> bool val parse_standard_interface_attributes : Parsetree.attribute -> unit val parse_standard_implementation_attributes : Parsetree.attribute -> unit +(** The attribute placed on the inner [Ptyp_arrow] node in [x -> (y -> z)] + (meaning the [y -> z] node) to indicate parenthesization. This is relevant + for locals, as [local_ x -> (y -> z)] is different than + [local_ x -> y -> z]. +*) +val curry_attr_name : string +val curry_attr : Location.t -> Parsetree.attribute + val has_no_mutable_implied_modalities: Parsetree.attributes -> bool val has_local_opt: Parsetree.attributes -> bool val has_layout_poly: Parsetree.attributes -> bool diff --git a/src/ocaml/parsing/jane_syntax_parsing.ml b/src/ocaml/parsing/jane_syntax_parsing.ml index 0b0c2091d..e69de29bb 100644 --- a/src/ocaml/parsing/jane_syntax_parsing.ml +++ b/src/ocaml/parsing/jane_syntax_parsing.ml @@ -1,874 +0,0 @@ -(** As mentioned in the .mli file, there are some gory details around the - particular translation scheme we adopt for moving to and from OCaml ASTs - ([Parsetree.expression], etc.). The general idea is that we adopt a scheme - where each novel piece of syntax is represented using one of two embeddings: - - 1. As an AST item carrying an attribute. The AST item serves as the "body" - of the syntax indicated by the attribute. - 2. As a pair of an extension node and an AST item that serves as the "body". - Here, the "pair" is embedded as a pair-like construct in the relevant AST - category, e.g. [include sig [%jane.ERASABILITY.EXTNAME];; BODY end] for - signature items. - - In particular, for an language extension named [EXTNAME] (i.e., one that is - enabled by [-extension EXTNAME] on the command line), the attribute (if - used) must be [[@jane.ERASABILITY.EXTNAME]], and the extension node (if - used) must be [[%jane.ERASABILITY.EXTNAME]]. - - The [ERASABILITY] component indicates to tools such as ocamlformat and - ppxlib whether or not the attribute is erasable. See the documentation of - [Erasability] for more information on how tools make use of this - information. - - In the below example, we use attributes an examples, but it applies equally - to extensions. We also provide utilities for further desugaring similar - applications where the embeddings have the longer form - [[@jane.ERASABILITY.FEATNAME.ID1.ID2.….IDn]] (with the outermost one being - the [n = 0] case), as these might be used inside the [EXPR]. (For example, - within the outermost [[@jane.non_erasable.comprehensions]] term for list and - array comprehensions, we can also use - [[@jane.non_erasable.comprehensions.list]], - [[@jane.non_erasable.comprehensions.array]], - [[@jane.non_erasable.comprehensions.for.in]], etc.). - - As mentioned, we represent terms as a "pair" and don't use the extension - node or attribute payload; this is so that ppxen can see inside these - extension nodes or attributes. If we put the subexpressions inside the - payload, then we couldn't write something like [[[%string "Hello, %{x}!"] - for x in names]], as [ppx_string] wouldn't traverse inside the payload to - find the [[%string]] extension node. - - Our novel syntactic features are of course allowed to impose extra - constraints on what legal bodies are; we're also happy for this translation - to error in various ways on malformed input, since nobody should ever be - writing these forms directly. They're just an implementation detail. - - See modules of type AST below to see how different syntactic categories - are represented. For example, expressions are encoded using an attribute. - - We provide one module per syntactic category (e.g., [Expression]), of module - type [AST]. They also provide some simple machinery for working with the - general [@jane.ERASABILITY.FEATNAME.ID1.ID2.….IDn] wrapped forms. To - construct one, we provide [make_jane_syntax]; to destructure one, we provide - [match_jane_syntax] (which we expose via [make_of_ast]). Users of this - module still have to write the transformations in both directions for all - new syntax, lowering it to extension nodes or attributes and then lifting it - back out. *) - -(** How did we choose between using the attribute embedding and the extension - node embedding for a particular syntactic category? - - Generally, we prefer the attribute embedding: it's more compatible with - ppxes that aren't aware of Jane Syntax. (E.g., if a type looks like a tuple, - it truly is a tuple and not an extension node embedding.) - - We can't apply the attribute embedding everywhere because some syntactic - categories, like structure items, don't carry attributes. For these, we - use extension nodes. - - However, the attribute embedding is more inconvenient in some ways than - the extension node embedding. For example, the attribute embedding requires - callers to strip out Jane Syntax-related attributes from the attribute list - before processing it. We've tried to make this obvious from the signature - of, say, [Jane_syntax.Expression.of_ast], but this is somewhat more - inconvenient than just operating on the [expr_desc]. Nonetheless, because - of the advantages with ppxlib interoperability, we've opted for the - attribute embedding where possible. -*) - -open Parsetree - -(** We carefully regulate which bindings we import from [Language_extension] - to ensure that we can import this file into the Jane Street internal - repo with no changes. -*) -module Language_extension = struct - include Language_extension_kernel - - include ( - Language_extension : - Language_extension_kernel.Language_extension_for_jane_syntax) -end - -(******************************************************************************) - -module Feature : sig - type t = Language_extension : _ Language_extension.t -> t - - type error = - | Disabled_extension : _ Language_extension.t -> error - | Unknown_extension of string - - val describe_uppercase : t -> string - - val extension_component : t -> string - - val of_component : string -> (t, error) result - - val is_erasable : t -> bool -end = struct - type t = Language_extension : _ Language_extension.t -> t - - type error = - | Disabled_extension : _ Language_extension.t -> error - | Unknown_extension of string - - let describe_uppercase = function - | Language_extension ext -> - "The extension \"" ^ Language_extension.to_string ext ^ "\"" - - let extension_component = function - | Language_extension ext -> Language_extension.to_string ext - - let of_component str = - match Language_extension.of_string str with - | Some (Pack ext) -> - if Language_extension.is_enabled ext - then Ok (Language_extension ext) - else Error (Disabled_extension ext) - | None -> Error (Unknown_extension str) - - let is_erasable = function - | Language_extension ext -> Language_extension.is_erasable ext -end - -(** Was this embedded as an [[%extension_node]] or an [[@attribute]]? Not - exported. Used only for error messages. *) -module Embedding_syntax = struct - type t = - | Extension_node - | Attribute - - let name = function - | Extension_node -> "extension node" - | Attribute -> "attribute" - - let name_indefinite = function - | Extension_node -> "an extension node" - | Attribute -> "an attribute" - - let name_plural = function - | Extension_node -> "extension nodes" - | Attribute -> "attributes" - - let pp ppf (t, name) = - let sigil = match t with Extension_node -> "%" | Attribute -> "@" in - Format.fprintf ppf "[%s%s]" sigil name -end - -(******************************************************************************) - -module Misnamed_embedding_error = struct - type t = - | No_erasability - | No_feature - | Unknown_erasability of string - - let to_string = function - | No_erasability -> "Missing erasability and feature components" - | No_feature -> "Missing a feature component" - | Unknown_erasability str -> - Printf.sprintf - "Unrecognized component where erasability was expected: `%s'" str -end - -(** The component of an attribute or extension name that identifies whether or - not the embedded syntax is *erasable*; that is, whether or not the - upstream OCaml compiler can safely interpret the AST while ignoring the - attribute or extension. (This means that syntax encoded as extension - nodes should always be non-erasable.) Tools that consume the parse tree - we generate can make use of this information; for instance, ocamlformat - will use it to guide how we present code that can be run with both our - compiler and the upstream compiler, and ppxlib can use it to decide - whether it's ok to allow ppxes to construct syntax that uses this - emedding. In particular, the upstream version of ppxlib will allow ppxes - to produce [[@jane.erasable.*]] attributes, but will report an error if a - ppx produces a [[@jane.non_erasable.*]] attribute. - - As mentioned above, unlike for attributes, the erasable/non-erasable - distinction is not meaningful for extension nodes, as the compiler will - always error if it sees an uninterpreted extension node. So, for purposes - of tools in the wider OCaml ecosystem, it is irrelevant whether embeddings - that use extension nodes indicate [Erasable] or [Non_erasable] for this - component, but the semantically correct choice and the one we've settled - on is to use [Non_erasable]. *) -module Erasability = struct - type t = - | Erasable - | Non_erasable - - let to_string = function - | Erasable -> "erasable" - | Non_erasable -> "non_erasable" - - let of_string = function - | "erasable" -> Ok Erasable - | "non_erasable" -> Ok Non_erasable - | _ -> Error () -end - -(** An AST-style representation of the names used when generating extension - nodes or attributes for modular syntax; see the .mli file for more - details. *) -module Embedded_name : sig - (** A nonempty list of name components, without the first two components. - (That is, without the leading root component that identifies it as part of - the modular syntax mechanism, and without the next component that - identifies the erasability.) See the .mli file for more details. *) - type components = ( :: ) of string * string list - - type t = - { erasability : Erasability.t; - components : components - } - - (** See the mli. *) - val of_feature : Feature.t -> string list -> t - - val components : t -> components - - (** See the mli. *) - val to_string : t -> string - - (** Parse a Jane syntax name from the OCaml AST, either as the name of an - extension node or an attribute: - - [Some (Ok _)] if it's a legal Jane-syntax name; - - [Some (Error _)] if the root is present, but the name has fewer than 3 - components or the erasability component is malformed; and - - [None] if it doesn't start with the leading root name and isn't part - of our Jane-syntax machinery. - Not exposed. *) - val of_string : string -> (t, Misnamed_embedding_error.t) result option - - (** Print out the embedded form of a Jane-syntax name, in quotes; for use in - error messages. *) - val pp_quoted_name : Format.formatter -> t -> unit - - (** Print out an empty extension node or attribute with a Jane-syntax name, - accompanied by an indefinite article; for use in error messages. Not - exposed. *) - val pp_a_term : Format.formatter -> Embedding_syntax.t * t -> unit -end = struct - (** The three parameters that control how we encode Jane-syntax extension node - names. When updating these, update comments that refer to them by their - contents! *) - module Config = struct - (** The separator between name components *) - let separator = '.' - - (** The leading namespace that identifies this extension node or attribute - as reserved for a piece of modular syntax *) - let root = "jane" - - (** For printing purposes, the appropriate indefinite article for [root] *) - let article = "a" - end - - include Config - - let separator_str = String.make 1 separator - - type components = ( :: ) of string * string list - - type t = - { erasability : Erasability.t; - components : components - } - - let of_feature feature trailing_components = - let feature_component = Feature.extension_component feature in - let erasability : Erasability.t = - if Feature.is_erasable feature then Erasable else Non_erasable - in - { erasability; components = feature_component :: trailing_components } - - let components t = t.components - - let to_string { erasability; components = feat :: subparts } = - String.concat separator_str - (root :: Erasability.to_string erasability :: feat :: subparts) - - let of_string str : (t, Misnamed_embedding_error.t) result option = - match String.split_on_char separator str with - | root' :: parts when String.equal root root' -> ( - match parts with - | [] -> Some (Error No_erasability) - | [_] -> Some (Error No_feature) - | erasability :: feat :: subparts -> ( - match Erasability.of_string erasability with - | Ok erasability -> - Some (Ok { erasability; components = feat :: subparts }) - | Error () -> Some (Error (Unknown_erasability erasability)))) - | _ :: _ | [] -> None - - let pp_quoted_name ppf t = Format.fprintf ppf "\"%s\"" (to_string t) - - let pp_a_term ppf (esyn, t) = - Format.fprintf ppf "%s %a" article Embedding_syntax.pp (esyn, to_string t) -end - -(******************************************************************************) -module Error = struct - (** An error triggered when desugaring a language extension from an OCaml - AST; should always be fatal *) - type error = - | Introduction_has_payload of Embedding_syntax.t * Embedded_name.t * payload - | Unknown_extension of Embedding_syntax.t * Erasability.t * string - | Disabled_extension : - { ext : _ Language_extension.t; - maturity : Language_extension.maturity option - } - -> error - | Wrong_syntactic_category of Feature.t * string - | Misnamed_embedding of - Misnamed_embedding_error.t * string * Embedding_syntax.t - | Bad_introduction of Embedding_syntax.t * Embedded_name.t - - (** The exception type thrown when desugaring a piece of modular syntax from - an OCaml AST *) - exception Error of Location.t * error -end - -open Error - -let assert_extension_enabled (type a) ~loc (ext : a Language_extension.t) - (setting : a) = - if not (Language_extension.is_at_least ext setting) - then - let maturity : Language_extension.maturity option = - match ext with - | Layouts -> Some (setting : Language_extension.maturity) - | _ -> None - in - raise (Error (loc, Disabled_extension { ext; maturity })) - -let report_error ~loc = function - | Introduction_has_payload (what, name, _payload) -> - Location.errorf ~loc - "@[Modular syntax %s are not allowed to have a payload,@ but %a does@]" - (Embedding_syntax.name_plural what) - Embedded_name.pp_quoted_name name - | Unknown_extension (what, erasability, name) -> - let embedded_name = { Embedded_name.erasability; components = [name] } in - Location.errorf ~loc "@[Unknown extension \"%s\" referenced via@ %a %s@]" - name Embedded_name.pp_a_term (what, embedded_name) - (Embedding_syntax.name what) - | Disabled_extension { ext; maturity } -> ( - (* CR layouts: The [maturity] special case is a bit ad-hoc, but the - layouts error message would be much worse without it. It also - would be nice to mention the language construct in the error message. - *) - match maturity with - | None -> - Location.errorf ~loc "The extension \"%s\" is disabled and cannot be used" - (Language_extension.to_string ext) - | Some maturity -> - Location.errorf ~loc - "This construct requires the %s version of the extension \"%s\", which \ - is disabled and cannot be used" - (Language_extension.maturity_to_string maturity) - (Language_extension.to_string ext)) - | Wrong_syntactic_category (feat, cat) -> - Location.errorf ~loc "%s cannot appear in %s" - (Feature.describe_uppercase feat) - cat - | Misnamed_embedding (err, name, what) -> - Location.errorf ~loc "Cannot have %s named %a: %s" - (Embedding_syntax.name_indefinite what) - Embedding_syntax.pp (what, name) - (Misnamed_embedding_error.to_string err) - | Bad_introduction (what, ({ components = ext :: _; _ } as name)) -> - Location.errorf ~loc - "@[The extension \"%s\" was referenced improperly; it started with@ %a \ - %s,@ not %a one@]" - ext Embedded_name.pp_a_term (what, name) - (Embedding_syntax.name what) - Embedded_name.pp_a_term - (what, { name with components = [ext] }) - -let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - -(******************************************************************************) -(** Generically find and create the OCaml AST syntax used to encode one of our - novel syntactic features. One module per variety of AST (expressions, - patterns, etc.). *) - -(** The parameters that define how to look for [[%jane.*.FEATNAME]] and - [[@jane.*.FEATNAME]] inside ASTs of a certain syntactic category. This - module type describes the input to the [Make_with_attribute] and - [Make_with_extension_node] functors (though they stipulate additional - requirements for their inputs). -*) -module type AST_syntactic_category = sig - (** The AST type (e.g., [Parsetree.expression]) *) - type ast - - (** The name for this syntactic category in the plural form; used for error - messages (e.g., "expressions") *) - val plural : string - - (** How to get the location attached to an AST node. Should just be - [fun tm -> tm.pCAT_loc] for the appropriate syntactic category [CAT]. *) - val location : ast -> Location.t - - (** Set the location of an AST node. *) - val with_location : ast -> Location.t -> ast -end - -module type AST_internal = sig - include AST_syntactic_category - - val embedding_syntax : Embedding_syntax.t - - val make_jane_syntax : Embedded_name.t -> ?payload:payload -> ast -> ast - - (** Given an AST node, check if it's a representation of a term from one of - our novel syntactic features; if it is, split it back up into its name, - the location of the extension/attribute, any payload, and the body. If - the embedded term is malformed in any way, raises an error; if the input - isn't an embedding of one of our novel syntactic features, returns [None]. - Partial inverse of [make_jane_syntax]. *) - val match_jane_syntax : - ast -> (Embedded_name.t * Location.t * Parsetree.payload * ast) option -end - -(* Parses the embedded name from an embedding, raising if - the embedding is malformed. Malformed means that - NAME is missing; e.g. the attribute is just [[@jane]]. -*) -let parse_embedding_exn ~loc ~name ~embedding_syntax = - let raise_error err = raise (Error (loc, err)) in - match Embedded_name.of_string name with - | Some (Ok name) -> Some name - | Some (Error err) -> - raise_error (Misnamed_embedding (err, name, embedding_syntax)) - | None -> None - -let find_and_remove_jane_syntax_attribute = - (* Recurs on [rev_prefix] *) - let rec loop ~rev_prefix ~suffix = - match rev_prefix with - | [] -> None - | attr :: rev_prefix -> ( - let { attr_name = { txt = name; loc = attr_loc }; attr_payload } = attr in - match - parse_embedding_exn ~loc:attr_loc ~name ~embedding_syntax:Attribute - with - | None -> loop ~rev_prefix ~suffix:(attr :: suffix) - | Some name -> - let unconsumed_attributes = List.rev_append rev_prefix suffix in - Some (name, attr_loc, attr_payload, unconsumed_attributes)) - in - fun attributes -> loop ~rev_prefix:(List.rev attributes) ~suffix:[] - -let make_jane_syntax_attribute name payload = - { attr_name = - { txt = Embedded_name.to_string name; loc = !Ast_helper.default_loc }; - attr_loc = !Ast_helper.default_loc; - attr_payload = payload - } - -(** For a syntactic category, produce translations into and out of - our novel syntax, using parsetree attributes as the encoding. -*) -module Make_with_attribute (AST_syntactic_category : sig - include AST_syntactic_category - - val attributes : ast -> attributes - - val with_attributes : ast -> attributes -> ast -end) : AST_internal with type ast = AST_syntactic_category.ast = struct - include AST_syntactic_category - - let embedding_syntax = Embedding_syntax.Attribute - - let make_jane_syntax name ?(payload = PStr []) ast = - let attr = make_jane_syntax_attribute name payload in - (* See Note [Outer attributes at end] in jane_syntax.ml *) - with_attributes ast (attributes ast @ [attr]) - - let match_jane_syntax ast = - match find_and_remove_jane_syntax_attribute (attributes ast) with - | None -> None - | Some (name, loc, payload, attrs) -> - Some (name, loc, payload, with_attributes ast attrs) -end - -(** For a syntactic category, produce translations into and out of - our novel syntax, using extension nodes as the encoding. -*) -module Make_with_extension_node (AST_syntactic_category : sig - include AST_syntactic_category - - (** How to construct an extension node for this AST (something of the - shape [[%name]]). Should just be [Ast_helper.CAT.extension] for the - appropriate syntactic category [CAT]. (This means that [?loc] should - default to [!Ast_helper.default_loc.].) *) - val make_extension_node : - ?loc:Location.t -> ?attrs:attributes -> extension -> ast - - (** Given an extension node (as created by [make_extension_node]) with an - appropriately-formed name and a body, combine them into the special - syntactic form we use for novel syntactic features in this syntactic - category. Partial inverse of [match_extension_use]. *) - val make_extension_use : extension_node:ast -> ast -> ast - - (** Given an AST node, check if it's of the special syntactic form - indicating that this is one of our novel syntactic features (as - created by [make_extension_node]), split it back up into the extension - node and the possible body. Doesn't do any checking about the - name/format of the extension or the possible body terms (for which see - [AST.match_extension]). Partial inverse of [make_extension_use]. *) - val match_extension_use : ast -> (extension * ast) option -end) : AST_internal with type ast = AST_syntactic_category.ast = struct - include AST_syntactic_category - - let embedding_syntax = Embedding_syntax.Extension_node - - let make_jane_syntax name ?(payload = PStr []) ast = - make_extension_use ast - ~extension_node: - (make_extension_node - ( { txt = Embedded_name.to_string name; - loc = !Ast_helper.default_loc - }, - payload )) - - let match_jane_syntax ast = - match match_extension_use ast with - | None -> None - | Some (({ txt = name; loc = ext_loc }, ext_payload), body) -> ( - match parse_embedding_exn ~loc:ext_loc ~name ~embedding_syntax with - | None -> None - | Some name -> Some (name, ext_loc, ext_payload, body)) -end - -(********************************************************) -(* Modules representing individual syntactic categories *) - -(* Note [Hiding internal details] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Each such module is first written with a '0' suffix. These '0' - modules are used internally as arguments to [Make_ast] to produce - non-'0' modules which are exported. This approach allows us to - hide details of these modules necessary for [Make_ast] but - unnecessary for external uses. -*) - -(** The AST parameters for every subset of types; embedded with attributes. *) -module Type_AST_syntactic_category = struct - type ast = core_type - - (* Missing [plural] *) - - let location typ = typ.ptyp_loc - - let with_location typ l = { typ with ptyp_loc = l } - - let attributes typ = typ.ptyp_attributes - - let with_attributes typ ptyp_attributes = { typ with ptyp_attributes } -end - -(** Types; embedded with attributes. *) -module Core_type0 = Make_with_attribute (struct - include Type_AST_syntactic_category - - let plural = "types" -end) - -(** Constructor arguments; the same as types, but used in fewer places *) -module Constructor_argument0 = Make_with_attribute (struct - include Type_AST_syntactic_category - - let plural = "constructor arguments" -end) - -(** Expressions; embedded using an attribute on the expression. *) -module Expression0 = Make_with_attribute (struct - type ast = expression - - let plural = "expressions" - - let location expr = expr.pexp_loc - - let with_location expr l = { expr with pexp_loc = l } - - let attributes expr = expr.pexp_attributes - - let with_attributes expr pexp_attributes = { expr with pexp_attributes } -end) - -(** Patterns; embedded using an attribute on the pattern. *) -module Pattern0 = Make_with_attribute (struct - type ast = pattern - - let plural = "patterns" - - let location pat = pat.ppat_loc - - let with_location pat l = { pat with ppat_loc = l } - - let attributes pat = pat.ppat_attributes - - let with_attributes pat ppat_attributes = { pat with ppat_attributes } -end) - -(** Module types; embedded using an attribute on the module type. *) -module Module_type0 = Make_with_attribute (struct - type ast = module_type - - let plural = "module types" - - let location mty = mty.pmty_loc - - let with_location mty l = { mty with pmty_loc = l } - - let attributes mty = mty.pmty_attributes - - let with_attributes mty pmty_attributes = { mty with pmty_attributes } -end) - -(** Module expressions; embedded using an attribute on the module expression. *) -module Module_expr0 = Make_with_attribute (struct - type ast = module_expr - - let plural = "module expressions" - - let location mexpr = mexpr.pmod_loc - - let with_location mexpr l = { mexpr with pmod_loc = l } - - let attributes mexpr = mexpr.pmod_attributes - - let with_attributes mexpr pmod_attributes = { mexpr with pmod_attributes } -end) - -(** Extension constructors; embedded using an attribute. *) -module Extension_constructor0 = Make_with_attribute (struct - type ast = extension_constructor - - let plural = "extension constructors" - - let location ext = ext.pext_loc - - let with_location ext l = { ext with pext_loc = l } - - let attributes ext = ext.pext_attributes - - let with_attributes ext pext_attributes = { ext with pext_attributes } -end) - -(** Signature items; embedded as - [include sig [%%extension.EXTNAME];; BODY end]. Signature items don't have - attributes or we'd use them instead. -*) -module Signature_item0 = Make_with_extension_node (struct - type ast = signature_item - - let plural = "signature items" - - let location sigi = sigi.psig_loc - - let with_location sigi l = { sigi with psig_loc = l } - - let make_extension_node = Ast_helper.Sig.extension - - let make_extension_use ~extension_node sigi = - Ast_helper.Sig.include_ - { pincl_mod = Ast_helper.Mty.signature [extension_node; sigi]; - pincl_loc = !Ast_helper.default_loc; - pincl_attributes = []; - pincl_kind = Structure - } - - let match_extension_use sigi = - match sigi.psig_desc with - | Psig_include - ( { pincl_mod = - { pmty_desc = - Pmty_signature - [{ psig_desc = Psig_extension (ext, []); _ }; sigi]; - _ - }; - pincl_kind = Structure; - _ - }, - [] ) -> - Some (ext, sigi) - | _ -> None -end) - -(** Structure items; embedded as - [include struct [%%extension.EXTNAME];; BODY end]. Structure items don't - have attributes or we'd use them instead. -*) -module Structure_item0 = Make_with_extension_node (struct - type ast = structure_item - - let plural = "structure items" - - let location stri = stri.pstr_loc - - let with_location stri l = { stri with pstr_loc = l } - - let make_extension_node = Ast_helper.Str.extension - - let make_extension_use ~extension_node stri = - Ast_helper.Str.include_ - { pincl_mod = Ast_helper.Mod.structure [extension_node; stri]; - pincl_loc = !Ast_helper.default_loc; - pincl_attributes = []; - pincl_kind = Structure - } - - let match_extension_use stri = - match stri.pstr_desc with - | Pstr_include - { pincl_mod = - { pmod_desc = - Pmod_structure - [{ pstr_desc = Pstr_extension (ext, []); _ }; stri]; - _ - }; - pincl_kind = Structure; - _ - } -> - Some (ext, stri) - | _ -> None -end) - -(** Constructor declarations; embedded with attributes. *) -module Constructor_declaration0 = Make_with_attribute (struct - type ast = Parsetree.constructor_declaration - - let plural = "constructor declarations" - - let location pcd = pcd.pcd_loc - - let with_location pcd loc = { pcd with pcd_loc = loc } - - let attributes pcd = pcd.pcd_attributes - - let with_attributes pcd pcd_attributes = { pcd with pcd_attributes } -end) - -(** Type declarations; embedded with attributes. *) -module Type_declaration0 = Make_with_attribute (struct - type ast = Parsetree.type_declaration - - let plural = "type declarations" - - let location ptype = ptype.ptype_loc - - let with_location ptype loc = { ptype with ptype_loc = loc } - - let attributes ptype = ptype.ptype_attributes - - let with_attributes ptype ptype_attributes = { ptype with ptype_attributes } -end) - -(******************************************************************************) -(* Main exports *) - -module type AST = sig - type ast - - val make_jane_syntax : - Feature.t -> string list -> ?payload:payload -> ast -> ast - - val make_entire_jane_syntax : - loc:Location.t -> Feature.t -> (unit -> ast) -> ast - - val make_of_ast : - of_ast_internal:(Feature.t -> ast -> 'a option) -> ast -> 'a option -end - -(* Most of our features make full use of the Jane Syntax framework, which - encodes information in a specific way (e.g., payload left empty on purpose). - It is therefore nice to check that these conditions are met. This functions - returns [true] if the given feature needs these extra checks. *) -let needs_extra_checks = function - | Feature.Language_extension Mode -> false - | _ -> true - -(* See Note [Hiding internal details] *) -module Make_ast (AST : AST_internal) : AST with type ast = AST.ast = struct - include AST - - let make_jane_syntax feature trailing_components ?payload ast = - AST.make_jane_syntax - (Embedded_name.of_feature feature trailing_components) - ?payload ast - - let make_entire_jane_syntax ~loc feature ast = - AST.with_location - (* We can't call [Location.ghostify] here, as we need - [jane_syntax_parsing.ml] to build with the upstream compiler; see - Note [Buildable with upstream] in jane_syntax.mli for details. *) - (Ast_helper.with_default_loc { loc with loc_ghost = true } (fun () -> - make_jane_syntax feature [] (ast ()))) - loc - - (** Generically lift our custom ASTs for our novel syntax from OCaml ASTs. *) - let make_of_ast ~of_ast_internal = - let of_ast ast = - let loc = AST.location ast in - let raise_error loc err = raise (Error (loc, err)) in - match AST.match_jane_syntax ast with - | Some - ( ({ erasability; components = [name] } as embedded_name), - syntax_loc, - payload, - ast ) -> ( - match Feature.of_component name with - | Ok feat -> ( - (if needs_extra_checks feat - then - match payload with - | PStr [] -> () - | _ -> - raise_error syntax_loc - (Introduction_has_payload - (AST.embedding_syntax, embedded_name, payload))); - match of_ast_internal feat ast with - | Some ext_ast -> Some ext_ast - | None -> - if needs_extra_checks feat - then raise_error loc (Wrong_syntactic_category (feat, AST.plural)) - else None) - | Error err -> - raise_error loc - (match err with - | Disabled_extension ext -> - Disabled_extension { ext; maturity = None } - | Unknown_extension name -> - Unknown_extension (AST.embedding_syntax, erasability, name))) - | Some (({ components = _ :: _ :: _; _ } as name), _, _, _) -> - raise_error loc (Bad_introduction (AST.embedding_syntax, name)) - | None -> None - in - of_ast -end - -let make_jane_syntax_attribute feature trailing_components payload = - make_jane_syntax_attribute - (Embedded_name.of_feature feature trailing_components) - payload - -(* See Note [Hiding internal details] *) -module Expression = Make_ast (Expression0) -module Pattern = Make_ast (Pattern0) -module Module_type = Make_ast (Module_type0) -module Module_expr = Make_ast (Module_expr0) -module Signature_item = Make_ast (Signature_item0) -module Structure_item = Make_ast (Structure_item0) -module Core_type = Make_ast (Core_type0) -module Constructor_argument = Make_ast (Constructor_argument0) -module Extension_constructor = Make_ast (Extension_constructor0) -module Constructor_declaration = Make_ast (Constructor_declaration0) -module Type_declaration = Make_ast (Type_declaration0) diff --git a/src/ocaml/parsing/jane_syntax_parsing.mli b/src/ocaml/parsing/jane_syntax_parsing.mli index c5c1be2fb..e69de29bb 100644 --- a/src/ocaml/parsing/jane_syntax_parsing.mli +++ b/src/ocaml/parsing/jane_syntax_parsing.mli @@ -1,272 +0,0 @@ -(** This module handles the logic around the syntax of our extensions to OCaml - for Jane Street, keeping the gory details wrapped up behind a clean - interface. - - As we've started to work on syntactic extensions to OCaml, three concerns - arose about the mechanics of how we wanted to maintain these changes in our - fork. - - 1. We don't want to extend the AST for our fork, as we really want to make - sure things like ppxen are cross-compatible between upstream and our - fork. Thankfully, OCaml already provides places to add extra syntax: - extension nodes and annotations! Thus, we have to come up with a way of - representing our new syntactic constructs in terms of these constructs. - - 2. We don't want to actually match on extension nodes or attributes whose - names are specific strings all over the compiler; that's incredibly - messy, and it's easy to miss cases, etc. - - 3. We want to keep our different novel syntactic features distinct so that - we can add them to upstream independently, work on them separately, and - so on. - - We have come up with a design that addresses those concerns by providing - both a nice compiler-level interface for working with our syntactic - extensions as first-class AST nodes, as well as a uniform scheme for - translating this to and from OCaml AST values by using extension nodes or - attributes. One wrinkle is that OCaml has many ASTs, one for each syntactic - category (expressions, patterns, etc.); we have to provide this facility for - each syntactic category where we want to provide extensions. A smaller - wrinkle is that our novel syntactic features come in two varieties: - *language extensions* (e.g., comprehensions) and *built-in features* (e.g., - syntactic function arity). While the former can be disabled, the latter are - parse tree changes we rely on (though they won't therefore show up in - surface syntax). - - a. For each novel syntactic feature, we will define a module (e.g., - [Comprehensions]), in which we define a proper AST type per syntactic - category we care about (e.g., [Comprehensions.expression] and its - subcomponents). This addresses concern (3); we've now contained each - separate feature (and the built-in changes) in a module. But just doing - that would leave them too siloed, so… - - b. We define an *overall auxiliary AST* for each syntactic category that's - just for our novel syntactic features; for expressions, it's called - [Jane_syntax.Expression.t]. It contains one constructor for each of the - AST types defined as described in design point (1). This addresses - concern (2); we can now match on actual OCaml constructors, as long as we - can get ahold of them. And to do that… - - c. We define a general scheme for how we represent our novel syntactic - features in terms of the existing ASTs, and provide a few primitives for - consuming/creating AST nodes of this form, for each syntactic category. - There's not a lot of abstraction to be done, or at least it's not (yet) - apparent what abstraction there is to do, so most of this remains manual. - (Setting up a full lens-based/otherwise bidirectional approach sounds - like a great opportunity for yak-shaving, but not *actually* a good - idea.) This solves concern (3), and by doing it uniformly helps us - address multiple cases at one stroke. - - Then, for each syntactic category, we define a module (in - [jane_syntax_parsing.ml]) that contains functions for converting between the - [Parsetree] representation and the higher-level representation. These - modules are inhabitants of [AST.t], and the [AST] module exposes operations - on them. - - This module contains the logic for moving to and from OCaml ASTs; the gory - details of the encoding are detailed in the implementation. All the actual - ASTs should live in [Jane_syntax], which is the only module that should - directly depend on this one. - - When using this module, we often want to specify what our syntax extensions - look like when desugared into OCaml ASTs, so that we can validate the - translation code. We generally specify this as a BNF grammar, but we don't - want to depend on the specific details of the desugaring. Thus, instead of - writing out extension nodes or attributes directly, we write the result of - [Some_ast.make_extension ~loc [name1; name2; ...; NameN] a] as the special - syntax [{% 'name1.name2.....nameN' | a %}] in the BNF. Other pieces of the - OCaml AST are used as normal. - - One detail which we hide as much as possible is locations: whenever - constructing an OCaml AST node -- whether with [wrap_desc], the functions in - [Ast_helper], or some other way -- the location should be left to be - defaulted (and the default, [!Ast_helper.make_default], should be ghost). - The [make_entire_jane_syntax] function will handle making sure this default - location is set appropriately. If this isn't done and any locations on - subterms aren't marked as ghost, the compiler will work fine, but ppxlib may - detect that you've violated its well-formedness constraints and fail to - parse the resulting AST. *) - -(******************************************************************************) - -(** The type enumerating our novel syntactic features, which are either a - language extension (separated out by which one) or the collection of all - built-in features. *) -module Feature : sig - type t = Language_extension : _ Language_extension.t -> t - - (** The component of an attribute or extension name that identifies the - feature. This is third component. - *) - val extension_component : t -> string -end - -module Misnamed_embedding_error : sig - type t -end - -(** An AST-style representation of the names used when generating extension - nodes or attributes for modular syntax. We use this to abstract over the - details of how they're encoded, so we have some flexibility in changing them - (although comments may refer to the specific encoding choices). This is - also why we don't expose any functions for rendering or parsing these names; - that's all handled internally. *) -module Embedded_name : sig - (** A nonempty list of name components, without the first two components. - (That is, without the leading root component that identifies it as part of - the modular syntax mechanism, and without the next component that - identifies the erasability.) - - This is a nonempty list corresponding to the different components of the - name: first the feature, and then any subparts. - *) - type components = ( :: ) of string * string list - - type t - - (** Creates an embedded name whose erasability component is whether the - feature is erasable, and whose feature component is the feature's name. - The second argument is treated as the trailing components after the - feature name. - *) - val of_feature : Feature.t -> string list -> t - - val components : t -> components - - (** Convert one of these Jane syntax names to the embedded string form used in - the OCaml AST as the name of an extension node or an attribute; exposed - for extensions that only uses [Embedded_name] instead of the whole - infrastructure in this module, such as the dummy argument extension *) - val to_string : t -> string - - val of_string : string -> (t, Misnamed_embedding_error.t) result option - - (** Print out the embedded form of a Jane-syntax name, in quotes; for use in - error messages. *) - val pp_quoted_name : Format.formatter -> t -> unit -end - -(** Each syntactic category that contains novel syntactic features has a - corresponding module of this module type. We're adding these lazily as we - need them. When you add another one, make sure also to add special handling - in [Ast_iterator] and [Ast_mapper]. -*) -module type AST = sig - (** The AST type (e.g., [Parsetree.expression]) *) - type ast - - (** Embed a term from one of our novel syntactic features in the AST using the - given name (in the [Feature.t]) and body (the [ast]). Any locations in - the generated AST will be set to [!Ast_helper.default_loc], which should - be [ghost]. *) - val make_jane_syntax : - Feature.t -> string list -> ?payload:Parsetree.payload -> ast -> ast - - (** As [make_jane_syntax], but specifically for the AST node corresponding to - the entire piece of novel syntax (e.g., for a list comprehension, the - whole [[x for x in xs]], and not a subcomponent like [for x in xs]). This - sets [Ast_helper.default_loc] locally to the [ghost] version of the - provided location, which is why the [ast] is generated from a function - call; it is during this call that the location is so set. *) - val make_entire_jane_syntax : - loc:Location.t -> Feature.t -> (unit -> ast) -> ast - - (** Build an [of_ast] function. The return value of this function should be - used to implement [of_ast] in modules satisfying the signature - [Jane_syntax.AST]. - - The returned function interprets an AST term in the specified syntactic - category as a term of the appropriate auxiliary extended AST if possible. - It raises an error if it finds a term from a disabled extension or if the - embedding is malformed. - *) - val make_of_ast : - of_ast_internal:(Feature.t -> ast -> 'a option) - (** A function to convert [Parsetree]'s AST to our novel extended one. The - choice of feature and the piece of syntax will both be extracted from - the embedding by the first argument. - - If the given syntax feature does not actually extend the given syntactic - category, returns [None]; this will be reported as an error. (For - example: There are no pattern comprehensions, so when building the - extended pattern AST, this function will return [None] if it spots an - embedding that claims to be from [Language_extension Comprehensions].) - *) -> - ast -> - 'a option -end - -module Expression : AST with type ast = Parsetree.expression - -module Pattern : AST with type ast = Parsetree.pattern - -module Module_type : AST with type ast = Parsetree.module_type - -module Module_expr : AST with type ast = Parsetree.module_expr - -module Signature_item : AST with type ast = Parsetree.signature_item - -module Structure_item : AST with type ast = Parsetree.structure_item - -module Core_type : AST with type ast = Parsetree.core_type - -module Constructor_argument : AST with type ast = Parsetree.core_type - -module Extension_constructor : - AST with type ast = Parsetree.extension_constructor - -module Constructor_declaration : - AST with type ast = Parsetree.constructor_declaration - -module Type_declaration : AST with type ast = Parsetree.type_declaration - -(** Require that an extension is enabled for at least the provided level, or - else throw an exception (of an abstract type) at the provided location - saying otherwise. This is intended to be used in [jane_syntax.ml] when a - certain piece of syntax requires two extensions to be enabled at once (e.g., - immutable array comprehensions such as [[:x for x = 1 to 10:]], which - require both [Comprehensions] and [Immutable_arrays]). *) -val assert_extension_enabled : - loc:Location.t -> 'a Language_extension.t -> 'a -> unit - -(* CR-someday nroberts: An earlier version of this revealed less of its - implementation in its name: it was called [match_jane_syntax], and - was a function from ast to ast. This has some advantages (less revealing - of the Jane Syntax encoding) but I felt it important to document the caller's - responsibility to plumb through uninterpreted attributes. - - Given that it only has one callsite currently, we decided to keep this - approach for now, but we could revisit this decision if we use it more - often. -*) - -(** Extracts the last attribute (in list order) that was inserted by the - Jane Syntax framework, and returns the rest of the attributes in the - same relative order as was input, along with the location of the removed - attribute and its payload. - - This can be used by [Jane_syntax] to peel off individual attributes in - order to process a Jane Syntax element that consists of multiple - nested ASTs. -*) -val find_and_remove_jane_syntax_attribute : - Parsetree.attributes -> - (Embedded_name.t * Location.t * Parsetree.payload * Parsetree.attributes) - option - -(** Creates an attribute used for encoding syntax from the given [Feature.t] *) -val make_jane_syntax_attribute : - Feature.t -> string list -> Parsetree.payload -> Parsetree.attribute - -(** Errors around the representation of our extended ASTs. These should mostly - just be fatal, but they're needed for one test case - (language-extensions/language_extensions.ml). *) -module Error : sig - (** An error triggered when desugaring a piece of embedded novel syntax from - an OCaml AST; left abstract because it should always be fatal *) - type error - - (** The exception type thrown when desugaring a piece of extended syntax from - an OCaml AST *) - exception Error of Location.t * error -end diff --git a/src/ocaml/parsing/parser_types.ml b/src/ocaml/parsing/parser_types.ml index 5dd5bcf9f..384972e15 100644 --- a/src/ocaml/parsing/parser_types.ml +++ b/src/ocaml/parsing/parser_types.ml @@ -1,53 +1,7 @@ open Asttypes open Parsetree -open Ast_helper open Docstrings -let make_loc (startpos, endpos) = { - Location.loc_start = startpos; - Location.loc_end = endpos; - Location.loc_ghost = false; -} -let mkexp ~loc ?attrs d = Exp.mk ~loc:(make_loc loc) ?attrs d -let mkpat ~loc ?attrs d = Pat.mk ~loc:(make_loc loc) ?attrs d - - -module Constant : sig - type t = private - | Value of constant - | Unboxed of Jane_syntax.Layouts.constant - - type loc := Lexing.position * Lexing.position - - val value : Parsetree.constant -> t - val unboxed : Jane_syntax.Layouts.constant -> t - val to_expression : loc:loc -> t -> expression - val to_pattern : loc:loc -> t -> pattern -end = struct - type t = - | Value of constant - | Unboxed of Jane_syntax.Layouts.constant - - let value x = Value x - - let unboxed x = Unboxed x - - let to_expression ~loc : t -> expression = function - | Value const_value -> - mkexp ~loc (Pexp_constant const_value) - | Unboxed const_unboxed -> - Jane_syntax.Layouts.expr_of ~loc:(make_loc loc) - (Lexp_constant const_unboxed) - - let to_pattern ~loc : t -> pattern = function - | Value const_value -> - mkpat ~loc (Ppat_constant const_value) - | Unboxed const_unboxed -> - Jane_syntax.Layouts.pat_of - ~loc:(make_loc loc) (Lpat_constant const_unboxed) -end - - type let_binding = { lb_pattern: pattern; lb_expression: expression; diff --git a/src/ocaml/parsing/parser_types.mli b/src/ocaml/parsing/parser_types.mli index fb5a0b9ae..a9a4662a1 100644 --- a/src/ocaml/parsing/parser_types.mli +++ b/src/ocaml/parsing/parser_types.mli @@ -7,19 +7,6 @@ open Asttypes open Parsetree open Docstrings -module Constant : sig - type t = private - | Value of constant - | Unboxed of Jane_syntax.Layouts.constant - - type loc := Lexing.position * Lexing.position - - val value : Parsetree.constant -> t - val unboxed : Jane_syntax.Layouts.constant -> t - val to_expression : loc:loc -> t -> expression - val to_pattern : loc:loc -> t -> pattern -end - type let_binding = { lb_pattern: pattern; lb_expression: expression; diff --git a/src/ocaml/parsing/parsetree.mli b/src/ocaml/parsing/parsetree.mli index b236075d3..c348ea495 100644 --- a/src/ocaml/parsing/parsetree.mli +++ b/src/ocaml/parsing/parsetree.mli @@ -29,6 +29,12 @@ type constant = Suffixes [[g-z][G-Z]] are accepted by the parser. Suffixes except ['l'], ['L'] and ['n'] are rejected by the typechecker *) + | Pconst_unboxed_integer of string * char + (** Integer constants such as [#3] [#3l] [#3L] [#3n]. + + A suffix [[g-z][G-Z]] is required by the parser. + Suffixes except ['l'], ['L'] and ['n'] are rejected by the typechecker + *) | Pconst_char of char (** Character such as ['c']. *) | Pconst_string of string * Location.t * string option (** Constant string such as ["constant"] or @@ -40,7 +46,13 @@ type constant = (** Float constant such as [3.4], [2e5] or [1.4e-4]. Suffixes [g-z][G-Z] are accepted by the parser. - Suffixes are rejected by the typechecker. + Suffixes except ['s'] are rejected by the typechecker. + *) + | Pconst_unboxed_float of string * char option + (** Float constant such as [#3.4], [#2e5] or [#1.4e-4]. + + Suffixes [g-z][G-Z] are accepted by the parser. + Suffixes except ['s'] are rejected by the typechecker. *) type location_stack = Location.t list @@ -93,8 +105,9 @@ and core_type = } and core_type_desc = - | Ptyp_any (** [_] *) - | Ptyp_var of string (** A type variable such as ['a] *) + | Ptyp_any of jkind_annotation option (** [_] or [_ : k] *) + | Ptyp_var of string * jkind_annotation option + (** A type variable such as ['a] or ['a : k] *) | Ptyp_arrow of arg_label * core_type * core_type * modes * modes (** [Ptyp_arrow(lbl, T1, T2, M1, M2)] represents: - [T1 @ M1 -> T2 @ M2] when [lbl] is @@ -138,7 +151,11 @@ and core_type_desc = - [T #tconstr] when [l=[T]], - [(T1, ..., Tn) #tconstr] when [l=[T1 ; ... ; Tn]]. *) - | Ptyp_alias of core_type * string loc (** [T as 'a]. *) + | Ptyp_alias of core_type * string loc option * jkind_annotation option + (** [T as 'a] or [T as ('a : k)] or [T as (_ : k)]. + + Invariant: the name or jkind annotation is non-None. + *) | Ptyp_variant of row_field list * closed_flag * label list option (** [Ptyp_variant([`A;`B], flag, labels)] represents: - [[ `A|`B ]] @@ -154,8 +171,9 @@ and core_type_desc = when [flag] is {{!Asttypes.closed_flag.Closed}[Closed]}, and [labels] is [Some ["X";"Y"]]. *) - | Ptyp_poly of string loc list * core_type + | Ptyp_poly of (string loc * jkind_annotation option) list * core_type (** ['a1 ... 'an. T] + [('a1 : k1) ... ('an : kn). T] Can only appear in the following context: @@ -234,13 +252,6 @@ and object_field_desc = and pattern = { ppat_desc: pattern_desc; - (** (Jane Street specific; delete when upstreaming.) - Consider using [Jane_syntax.Pattern.of_ast] before matching on - this field directly, as the former will detect extension nodes - correctly. Our syntax extensions are encoded as - [Ppat_tuple [Ppat_extension _; _]]; if your pattern match avoids - matching that pattern, it is OK to skip [of_ast]. *) - ppat_loc: Location.t; ppat_loc_stack: location_stack; ppat_attributes: attributes; (** [... [\@id1] [\@id2]] *) @@ -301,7 +312,8 @@ and pattern_desc = Invariant: [n > 0] *) - | Ppat_array of pattern list (** Pattern [[| P1; ...; Pn |]] *) + | Ppat_array of mutable_flag * pattern list + (** Pattern [[| P1; ...; Pn |]] or [[: P1; ...; Pn :]] *) | Ppat_or of pattern * pattern (** Pattern [P1 | P2] *) | Ppat_constraint of pattern * core_type option * modes (** [Ppat_constraint(tyopt, modes)] represents: @@ -327,13 +339,6 @@ and pattern_desc = and expression = { pexp_desc: expression_desc; - (** (Jane Street specific; delete when upstreaming.) - Consider using [Jane_syntax.Expression.of_ast] before matching on - this field directly, as the former will detect extension nodes - correctly. Our syntax extensions are encoded as - [Pexp_apply(Pexp_extension _, _)]; if your pattern match avoids - matching that pattern, it is OK to skip [of_ast]. *) - pexp_loc: Location.t; pexp_loc_stack: location_stack; pexp_attributes: attributes; (** [... [\@id1] [\@id2]] *) @@ -421,7 +426,8 @@ and expression_desc = | Pexp_field of expression * Longident.t loc (** [E.l] *) | Pexp_setfield of expression * Longident.t loc * expression (** [E1.l <- E2] *) - | Pexp_array of expression list (** [[| E1; ...; En |]] *) + | Pexp_array of mutable_flag * expression list + (** [[| E1; ...; En |]] or [[: E1; ...; En :]] *) | Pexp_ifthenelse of expression * expression * expression option (** [if E1 then E2 else E3] *) | Pexp_sequence of expression * expression (** [E1; E2] *) @@ -461,7 +467,8 @@ and expression_desc = {{!class_field_kind.Cfk_concrete}[Cfk_concrete]} for methods (not values). *) | Pexp_object of class_structure (** [object ... end] *) - | Pexp_newtype of string loc * expression (** [fun (type t) -> E] *) + | Pexp_newtype of string loc * jkind_annotation option * expression + (** [fun (type t) -> E] or [fun (type t : k) -> E] *) | Pexp_pack of module_expr (** [(module ME)]. @@ -477,6 +484,12 @@ and expression_desc = | Pexp_extension of extension (** [[%id]] *) | Pexp_unreachable (** [.] *) | Pexp_stack of expression (** stack_ exp *) + | Pexp_comprehension of comprehension_expression + (** [[? BODY ...CLAUSES... ?]], where: + - [?] is either [""] (list), [:] (immutable array), or [|] (array). + - [BODY] is an expression. + - [CLAUSES] is a series of [comprehension_clause]. + *) and case = { @@ -520,7 +533,7 @@ and function_param_desc = Note: If [E0] is provided, only {{!Asttypes.arg_label.Optional}[Optional]} is allowed. *) - | Pparam_newtype of string loc * jkind_annotation loc option + | Pparam_newtype of string loc * jkind_annotation option (** [Pparam_newtype x] represents the parameter [(type x)]. [x] carries the location of the identifier, whereas the [pparam_loc] on the enclosing [function_param] node is the location of the [(type x)] @@ -571,6 +584,43 @@ and function_constraint = } (** See the comment on {{!expression_desc.Pexp_function}[Pexp_function]}. *) +and comprehension_iterator = + | Pcomp_range of + { start : expression; + stop : expression; + direction : direction_flag + } + (** "= START to STOP" (direction = Upto) + "= START downto STOP" (direction = Downto) *) + | Pcomp_in of expression (** "in EXPR" *) + +(** [@...] PAT (in/=) ... *) +and comprehension_clause_binding = + { pcomp_cb_pattern : pattern; + pcomp_cb_iterator : comprehension_iterator; + pcomp_cb_attributes : attribute list + } + +and comprehension_clause = + | Pcomp_for of comprehension_clause_binding list + (** "for PAT (in/=) ... and PAT (in/=) ... and ..."; must be nonempty *) + | Pcomp_when of expression (** "when EXPR" *) + +and comprehension = + { pcomp_body : expression; + (** The body/generator of the comprehension *) + pcomp_clauses : comprehension_clause list; + (** The clauses of the comprehension; must be nonempty *) + } + +and comprehension_expression = + | Pcomp_list_comprehension of comprehension (** [[BODY ...CLAUSES...]] *) + | Pcomp_array_comprehension of mutable_flag * comprehension + (** [[|BODY ...CLAUSES...|]] (flag = Mutable) + [[:BODY ...CLAUSES...:]] (flag = Immutable) + (only allowed with [-extension immutable_arrays]) + *) + (** {2 Value descriptions} *) and value_description = @@ -602,6 +652,7 @@ and type_declaration = ptype_private: private_flag; (** for [= private ...] *) ptype_manifest: core_type option; (** represents [= T] *) ptype_attributes: attributes; (** [... [\@\@id1] [\@\@id2]] *) + ptype_jkind_annotation: jkind_annotation option; (** for [: jkind] *) ptype_loc: Location.t; } (** @@ -659,7 +710,8 @@ and label_declaration = and constructor_declaration = { pcd_name: string loc; - pcd_vars: string loc list; + pcd_vars: (string loc * jkind_annotation option) list; + (** jkind annotations are [C : ('a : kind1) ('a2 : kind2). ...] *) pcd_args: constructor_arguments; pcd_res: core_type option; pcd_loc: Location.t; @@ -721,7 +773,8 @@ and type_exception = (** Definition of a new exception ([exception E]). *) and extension_constructor_kind = - | Pext_decl of string loc list * constructor_arguments * core_type option + | Pext_decl of (string loc * jkind_annotation option) list + * constructor_arguments * core_type option (** [Pext_decl(existentials, c_args, t_opt)] describes a new extension constructor. It can be: - [C of T1 * ... * Tn] when: @@ -736,8 +789,8 @@ and extension_constructor_kind = {ul {- [existentials] is [[]],} {- [c_args] is [[T1; ...; Tn]],} {- [t_opt] is [Some T0].}} - - [C: 'a... . T1 * ... * Tn -> T0] when - {ul {- [existentials] is [['a;...]],} + - [C: ('a : k)... . T1 * ... * Tn -> T0] when + {ul {- [existentials] is [[('a : k);...]],} {- [c_args] is [[T1; ... ; Tn]],} {- [t_opt] is [Some T0].}} *) @@ -942,14 +995,6 @@ and class_declaration = class_expr class_infos and module_type = { pmty_desc: module_type_desc; - (** (Jane Street specific; delete when upstreaming.) - Consider using [Jane_syntax.Module_type.of_ast] before matching on - this field directly, as the former will detect extension nodes - correctly. Our syntax extensions are encoded as - [Pmty_functor(Named(_, Pmty_extension _), _)]; - if your pattern match avoids - matching that pattern, it is OK to skip [of_ast]. *) - pmty_loc: Location.t; pmty_attributes: attributes; (** [... [\@id1] [\@id2]] *) } @@ -963,6 +1008,8 @@ and module_type_desc = | Pmty_typeof of module_expr (** [module type of ME] *) | Pmty_extension of extension (** [[%id]] *) | Pmty_alias of Longident.t loc (** [(module M)] *) + (*_ [Pmty_strengthen] might be a better fit for [with_constraint] *) + | Pmty_strengthen of module_type * Longident.t loc (** [MT with S] *) and functor_parameter = | Unit (** [()] *) @@ -971,7 +1018,12 @@ and functor_parameter = - [(X : MT)] when [name] is [Some X], - [(_ : MT)] when [name] is [None] *) -and signature = signature_item list +and signature = + { + psg_modalities : modalities; + psg_items : signature_item list; + psg_loc : Location.t; + } and signature_item = { @@ -1006,6 +1058,8 @@ and signature_item_desc = (** [class type ct1 = ... and ... and ctn = ...] *) | Psig_attribute of attribute (** [[\@\@\@id]] *) | Psig_extension of extension * attributes (** [[%%id]] *) + | Psig_kind_abbrev of string loc * jkind_annotation + (** [kind_abbrev_ name = k] *) and module_declaration = { @@ -1114,6 +1168,17 @@ and module_expr_desc = | Pmod_constraint of module_expr * module_type (** [(ME : MT)] *) | Pmod_unpack of expression (** [(val E)] *) | Pmod_extension of extension (** [[%id]] *) + | Pmod_instance of module_instance + (** [Foo(Param1)(Arg1(Param2)(Arg2)) [@jane.non_erasable.instances]] + + The name of an instance module. Gets converted to [Global.Name.t] in + the flambda-backend compiler. *) + +and module_instance = + { pmod_instance_head : string; + pmod_instance_args : (string * module_instance) list + } + (** [M(P1)(MI1)...(Pn)(MIn)] *) and structure = structure_item list @@ -1153,6 +1218,8 @@ and structure_item_desc = | Pstr_include of include_declaration (** [include ME] *) | Pstr_attribute of attribute (** [[\@\@\@id]] *) | Pstr_extension of extension * attributes (** [[%%id]] *) + | Pstr_kind_abbrev of string loc * jkind_annotation + (** [kind_abbrev_ name = k] *) and value_constraint = | Pvc_constraint of { @@ -1189,16 +1256,19 @@ and module_binding = } (** Values of type [module_binding] represents [module X = ME] *) -and jkind_const_annotation = string Location.loc - -and jkind_annotation = +and jkind_annotation_desc = | Default - | Abbreviation of jkind_const_annotation + | Abbreviation of string | Mod of jkind_annotation * modes | With of jkind_annotation * core_type | Kind_of of core_type | Product of jkind_annotation list +and jkind_annotation = + { pjkind_loc : Location.t + ; pjkind_desc : jkind_annotation_desc + } + (** {1 Toplevel} *) (** {2 Toplevel phrases} *) diff --git a/src/ocaml/parsing/printast.mli b/src/ocaml/parsing/printast.mli index f4ddc8bfa..182a31e78 100644 --- a/src/ocaml/parsing/printast.mli +++ b/src/ocaml/parsing/printast.mli @@ -23,7 +23,7 @@ open Parsetree open Format -val interface : formatter -> signature_item list -> unit +val interface : formatter -> signature -> unit val implementation : formatter -> structure_item list -> unit val top_phrase : formatter -> toplevel_phrase -> unit val constant: formatter -> constant -> unit @@ -34,4 +34,3 @@ val structure: int -> formatter -> structure -> unit val payload: int -> formatter -> payload -> unit val core_type: int -> formatter -> core_type -> unit val extension_constructor: int -> formatter -> extension_constructor -> unit - diff --git a/src/ocaml/parsing/syntaxerr.ml b/src/ocaml/parsing/syntaxerr.ml index aa5e8941a..5d3cd3248 100644 --- a/src/ocaml/parsing/syntaxerr.ml +++ b/src/ocaml/parsing/syntaxerr.ml @@ -33,6 +33,7 @@ type error = | Invalid_package_type of Location.t * invalid_package_type | Removed_string_set of Location.t | Missing_unboxed_literal_suffix of Location.t + | Malformed_instance_identifier of Location.t exception Error of error exception Escape_error @@ -48,6 +49,7 @@ let location_of_error = function | Expecting (l, _) | Removed_string_set l -> l | Missing_unboxed_literal_suffix l -> l + | Malformed_instance_identifier l -> l let ill_formed_ast loc s = raise (Error (Ill_formed_ast (loc, s))) diff --git a/src/ocaml/parsing/syntaxerr.mli b/src/ocaml/parsing/syntaxerr.mli index f54827c0c..54c619eb8 100644 --- a/src/ocaml/parsing/syntaxerr.mli +++ b/src/ocaml/parsing/syntaxerr.mli @@ -38,6 +38,7 @@ type error = | Invalid_package_type of Location.t * invalid_package_type | Removed_string_set of Location.t | Missing_unboxed_literal_suffix of Location.t + | Malformed_instance_identifier of Location.t exception Error of error exception Escape_error diff --git a/src/ocaml/preprocess/parser_raw.mly b/src/ocaml/preprocess/parser_raw.mly index e1eb8d1d1..cbb8270b6 100644 --- a/src/ocaml/preprocess/parser_raw.mly +++ b/src/ocaml/preprocess/parser_raw.mly @@ -138,21 +138,35 @@ let neg_string f = else "-" ^ f let mkuminus ~oploc name arg = - match name, arg.pexp_desc with - | "-", Pexp_constant(Pconst_integer (n,m)) -> - Pexp_constant(Pconst_integer(neg_string n,m)), arg.pexp_attributes - | ("-" | "-."), Pexp_constant(Pconst_float (f, m)) -> - Pexp_constant(Pconst_float(neg_string f, m)), arg.pexp_attributes - | _ -> - Pexp_apply(mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] + let result = + match arg.pexp_desc with + | Pexp_constant const -> begin + match name, const with + | "-", Pconst_integer (n, m) -> + Some (Pconst_integer (neg_string n, m)) + | "-", Pconst_unboxed_integer (n, m) -> + Some (Pconst_unboxed_integer (neg_string n, m)) + | ("-" | "-."), Pconst_float (f, m) -> + Some (Pconst_float (neg_string f, m)) + | ("-" | "-."), Pconst_unboxed_float (f, m) -> + Some (Pconst_unboxed_float (neg_string f, m)) + | _, _ -> None + end + | _ -> None + in + match result with + | Some desc -> Pexp_constant desc, arg.pexp_attributes + | None -> + Pexp_apply (mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] let mkuplus ~oploc name arg = let desc = arg.pexp_desc in match name, desc with - | "+", Pexp_constant(Pconst_integer _) - | ("+" | "+."), Pexp_constant(Pconst_float _) -> desc, arg.pexp_attributes + | "+", Pexp_constant (Pconst_integer _ | Pconst_unboxed_integer _) + | ("+" | "+."), Pexp_constant (Pconst_float _ | Pconst_unboxed_float _) -> + desc, arg.pexp_attributes | _ -> - Pexp_apply(mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] + Pexp_apply (mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] let mk_attr ~loc name payload = Builtin_attributes.(register_attr Parser name); @@ -221,17 +235,14 @@ let exclave_extension loc = let mkexp_exclave ~loc ~kwd_loc exp = ghexp ~loc (Pexp_apply(exclave_extension (make_loc kwd_loc), [Nolabel, exp])) -let is_curry_attr attr = - attr.attr_name.txt = Jane_syntax.Arrow_curry.curry_attr_name - let mktyp_curry typ loc = {typ with ptyp_attributes = - Jane_syntax.Arrow_curry.curry_attr loc :: typ.ptyp_attributes} + Builtin_attributes.curry_attr loc :: typ.ptyp_attributes} let maybe_curry_typ typ loc = match typ.ptyp_desc with | Ptyp_arrow _ -> - if List.exists is_curry_attr typ.ptyp_attributes then typ + if Builtin_attributes.has_curry typ.ptyp_attributes then typ else mktyp_curry typ (make_loc loc) | _ -> typ @@ -364,13 +375,15 @@ module Generic_array = struct (** An array literal with a local open, [Module.[? x; y; z ?]] (only valid in expressions) *) - let to_desc (open_ : string) (close : string) array t = + let to_desc (open_ : string) (close : string) mut t = + let array elts = Pexp_array (mut, elts) in match t with | Simple x -> Simple.to_ast open_ close array x | Opened_literal (od, startpos, endpos, elts) -> Pexp_open (od, mkexp ~loc:(startpos, endpos) (array elts)) - let to_expression (open_ : string) (close : string) array ~loc t = + let to_expression (open_ : string) (close : string) mut ~loc t = + let array ~loc elts = mkexp ~loc (Pexp_array (mut, elts)) in match t with | Simple x -> Simple.to_ast open_ close (array ~loc) x | Opened_literal (od, startpos, endpos, elts) -> @@ -379,16 +392,11 @@ module Generic_array = struct module Pattern = struct type t = pattern Simple.t - let to_ast open_ close array (t : t) = - Simple.to_ast open_ close array t + let to_ast open_ close mut (t : t) = + Simple.to_ast open_ close (fun elts -> Ppat_array (mut, elts)) t end end -let ppat_iarray loc elts = - Jane_syntax.Immutable_arrays.pat_of - ~loc:(make_loc loc) - (Iapat_immutable_array elts) - let expecting_loc (loc : Location.t) (nonterm : string) = raise_error Syntaxerr.(Error(Expecting(loc, nonterm))) let expecting (loc : Lexing.position * Lexing.position) nonterm = @@ -445,14 +453,11 @@ type ('dot,'index) array_family = { } let bigarray_untuplify exp = - match Jane_syntax.Expression.of_ast exp with - | Some _ -> [exp] - | None -> - match exp.pexp_desc with - | Pexp_tuple explist when - List.for_all (function None, _ -> true | _ -> false) explist -> - List.map (fun (_, e) -> e) explist - | _ -> [exp] + match exp.pexp_desc with + | Pexp_tuple explist when + List.for_all (function None, _ -> true | _ -> false) explist -> + List.map (fun (_, e) -> e) explist + | _ -> [exp] (* Immutable array indexing is a regular operator, so it doesn't need a special case here *) @@ -481,7 +486,7 @@ let builtin_arraylike_index loc paren_kind index = match paren_kind with | [x] -> One, [Nolabel, x] | [x;y] -> Two, [Nolabel, x; Nolabel, y] | [x;y;z] -> Three, [Nolabel, x; Nolabel, y; Nolabel, z] - | coords -> Many, [Nolabel, ghexp ~loc (Pexp_array coords)] + | coords -> Many, [Nolabel, ghexp ~loc (Pexp_array (Mutable, coords))] let builtin_indexing_operators : (unit, expression) array_family = { index = builtin_arraylike_index; name = builtin_arraylike_name } @@ -509,7 +514,7 @@ let user_index loc _ index = ([a.%[1;2;3;4]]) *) match index with | [a] -> One, [Nolabel, a] - | l -> Many, [Nolabel, mkexp ~loc (Pexp_array l)] + | l -> Many, [Nolabel, mkexp ~loc (Pexp_array (Mutable, l))] let user_indexing_operators: (Longident.t option * string, expression list) array_family @@ -561,11 +566,7 @@ let pat_of_label lbl = let mk_newtypes ~loc newtypes exp = let mk_one (name, jkind) exp = - match jkind with - | None -> ghexp ~loc (Pexp_newtype (name, exp)) - | Some jkind -> - Jane_syntax.Layouts.expr_of ~loc:(ghost_loc loc) - (Lexp_newtype (name, jkind, exp)) + ghexp ~loc (Pexp_newtype (name, jkind, exp)) in let exp = List.fold_right mk_one newtypes exp in (* outermost expression should have non-ghost location *) @@ -579,12 +580,7 @@ let wrap_type_annotation ~loc ?(typloc=loc) ~modes newtypes core_type body = let exp = mkexp_with_modes ~loc ~exp:body ~cty:(Some core_type) ~modes in let exp = mk_newtypes newtypes exp in let inner_type = Typ.varify_constructors (List.map fst newtypes) core_type in - let ltyp = - Jane_syntax.Layouts.Ltyp_poly { bound_vars = newtypes; inner_type } - in - (exp, - Jane_syntax.Layouts.type_of - ~loc:(Location.ghostify (make_loc typloc)) ltyp) + (exp, ghtyp ~loc:typloc (Ptyp_poly (newtypes, inner_type))) let wrap_exp_attrs ~loc body (ext, attrs) = let ghexp = ghexp ~loc in @@ -632,7 +628,9 @@ let wrap_mkstr_ext ~loc (item, ext) = let wrap_sig_ext ~loc body ext = match ext with | None -> body - | Some id -> ghsig ~loc (Psig_extension ((id, PSig [body]), [])) + | Some id -> + ghsig ~loc (Psig_extension ((id, PSig {psg_items=[body]; + psg_modalities=[]; psg_loc=make_loc loc}), [])) let wrap_mksig_ext ~loc (item, ext) = wrap_sig_ext ~loc (mksig ~loc item) ext @@ -855,6 +853,47 @@ let package_type_of_module_type pmty = err pmty.pmty_loc Neither_identifier_nor_with_type ; (Location.mkloc (Lident "_") pmty.pmty_loc, [], []) +(* There's no dedicated syntax for module instances. Functor application + syntax is translated into a module instance expression. +*) +let pmod_instance : module_expr -> module_expr_desc = + let raise_malformed_instance loc = + raise (Syntaxerr.Error (Malformed_instance_identifier loc)) + in + let head_of_ident (lid : Longident.t Location.loc) = + match lid with + | { txt = Lident s; loc = _ } -> s + | { txt = _; loc } -> raise_malformed_instance loc + in + let gather_args mexpr = + let rec loop mexpr acc = + match mexpr with + | { pmod_desc = Pmod_apply (f, v); _ } -> + (match f.pmod_desc with + | Pmod_apply (f, n) -> loop f ((n, v) :: acc) + | _ -> raise_malformed_instance f.pmod_loc) + | head -> head, acc + in + loop mexpr [] + in + let string_of_module_expr mexpr = + match mexpr.pmod_desc with + | Pmod_ident i -> head_of_ident i + | _ -> raise_malformed_instance mexpr.pmod_loc + in + let rec instance_of_module_expr mexpr = + match gather_args mexpr with + | { pmod_desc = Pmod_ident i; _ }, args -> + let head = head_of_ident i in + let args = List.map instances_of_arg_pair args in + { pmod_instance_head = head; pmod_instance_args = args } + | { pmod_loc; _ }, _ -> raise_malformed_instance pmod_loc + and instances_of_arg_pair (n, v) = + string_of_module_expr n, instance_of_module_expr v + in + fun mexpr -> Pmod_instance (instance_of_module_expr mexpr) +;; + let mk_directive_arg ~loc k = { pdira_desc = k; pdira_loc = make_loc loc; @@ -883,8 +922,7 @@ let with_sign sign num = let unboxed_int sloc int_loc sign (n, m) = match m with - | Some m -> - Constant.unboxed (Integer (with_sign sign n, m)) + | Some m -> Pconst_unboxed_integer (with_sign sign n, m) | None -> if Language_extension.is_enabled unboxed_literals_extension then (raise_error Syntaxerr.(Error(Missing_unboxed_literal_suffix (make_loc int_loc))); @@ -893,8 +931,7 @@ let unboxed_int sloc int_loc sign (n, m) = (not_expecting sloc "line number directive"; Constant.unboxed (Integer (with_sign sign n, 'l'))) -let unboxed_float sign (f, m) = - Constant.unboxed (Float (with_sign sign f, m)) +let unboxed_float sign (f, m) = Pconst_unboxed_float (with_sign sign f, m) (* Invariant: [lident] must end with an [Lident] that ends with a ["#"]. *) let unboxed_type sloc lident tys = @@ -1300,9 +1337,6 @@ The precedences must be listed from low to high. %inline mk_directive_arg(symb): symb { mk_directive_arg ~loc:$sloc $1 } -%inline mktyp_jane_syntax_ltyp(symb): symb - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) $1 } - /* Generic definitions */ (* [iloption(X)] recognizes either nothing or [X]. Assuming [X] produces @@ -1693,7 +1727,12 @@ module_expr [@recovery default_module_expr ()]: | me = paren_module_expr { me } | me = module_expr attr = attribute - { Mod.attr me attr } + { match attr with + | { attr_name = { txt = "jane.non_erasable.instances"; loc = _ }; + attr_payload = PStr []; + } -> mkmod ~loc:$sloc (pmod_instance me) + | attr -> Mod.attr me attr + } | mkmod( (* A module identifier. *) x = mkrhs(mod_longident) @@ -1804,7 +1843,10 @@ structure [@recovery []]: Pstr_extension ($1, add_docs_attrs docs $2) } | floating_attribute { Pstr_attribute $1 } - ) + | kind_abbreviation_decl + { let name, jkind = $1 in + Pstr_kind_abbrev (name, jkind) + }) | wrap_mkstr_ext( primitive_declaration { pstr_primitive $1 } @@ -1835,14 +1877,6 @@ structure [@recovery []]: let item = mkstr ~loc:$sloc (Pstr_include incl) in wrap_str_ext ~loc:$sloc item ext } - | kind_abbreviation_decl - { - let name, jkind = $1 in - Jane_syntax.Layouts.(str_item_of - ~loc:(make_loc $sloc) - (Lstr_kind_abbrev (name, jkind))) - } - ; (* A single module binding. *) @@ -2047,17 +2081,18 @@ module_type [@recovery default_module_type ()]: { Pmty_alias $3 } */ | extension { Pmty_extension $1 } + | module_type WITH mkrhs(mod_ext_longident) + { Pmty_strengthen ($1, $3) } ) { $1 } - | module_type WITH mkrhs(mod_ext_longident) - { Jane_syntax.Strengthen.mty_of ~loc:(make_loc $sloc) - { mty = $1; mod_id = $3 } } ; (* A signature, which appears between SIG and END (among other places), is a list of signature elements. *) signature: - extra_sig(flatten(signature_element*)) - { $1 } + optional_atat_modalities_expr extra_sig(flatten(signature_element*)) + { { psg_modalities = $1; + psg_items = $2; + psg_loc = make_loc $sloc; } } ; (* A signature element is one of the following: @@ -2077,6 +2112,10 @@ signature_item: | mksig( floating_attribute { Psig_attribute $1 } + | kind_abbreviation_decl + { let name, jkind = $1 in + Psig_kind_abbrev (name, jkind) + } ) { $1 } | wrap_mksig_ext( @@ -2117,13 +2156,6 @@ signature_item: let item = mksig ~loc:$sloc (Psig_include (incl, modalities)) in wrap_sig_ext ~loc:$sloc item ext } - | kind_abbreviation_decl - { - let name, jkind = $1 in - Jane_syntax.Layouts.(sig_item_of - ~loc:(make_loc $sloc) - (Lsig_kind_abbrev (name, jkind))) - } (* A module declaration. *) %inline module_declaration: @@ -2501,7 +2533,7 @@ class_signature: class_self_type: LPAREN core_type RPAREN { $2 } - | mktyp((* empty *) { Ptyp_any }) + | mktyp((* empty *) { Ptyp_any None }) { $1 } ; %inline class_sig_fields: @@ -2762,10 +2794,10 @@ label_let_pattern: lab, pat, Some cty, modes } | x = label_var COLON - cty = mktyp_jane_syntax_ltyp (bound_vars = typevar_list - DOT - inner_type = core_type - { Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } }) + cty = mktyp (bound_vars = typevar_list + DOT + inner_type = core_type + { Ptyp_poly (bound_vars, inner_type) }) modes = optional_atat_mode_expr { let lab, pat = x in lab, pat, Some cty, modes @@ -2810,10 +2842,10 @@ let_pattern_no_modes: %inline poly_pattern_no_modes: pat = pattern COLON - cty = mktyp_jane_syntax_ltyp(bound_vars = typevar_list - DOT - inner_type = core_type - { Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } }) + cty = mktyp(bound_vars = typevar_list + DOT + inner_type = core_type + { Ptyp_poly (bound_vars, inner_type) }) { pat, Some cty } ; @@ -2981,13 +3013,10 @@ let_pattern_no_modes: { Generic_array.Expression.to_expression "[:" ":]" ~loc:$sloc - (fun ~loc elts -> - Jane_syntax.Immutable_arrays.expr_of - ~loc:(make_loc loc) - (Iaexp_immutable_array elts)) - $1 + Immutable + $1 } - | constant { Constant.to_expression ~loc:$sloc $1 } + | constant { mkexp ~loc:$sloc (Pexp_constant $1) } | comprehension_expr { $1 } ; %inline simple_expr_attrs: @@ -3019,14 +3048,14 @@ let_pattern_no_modes: comprehension_iterator: | EQUAL expr direction_flag expr - { Jane_syntax.Comprehensions.Range { start = $2 ; stop = $4 ; direction = $3 } } + { Pcomp_range { start = $2 ; stop = $4 ; direction = $3 } } | IN expr - { Jane_syntax.Comprehensions.In $2 } + { Pcomp_in $2 } ; comprehension_clause_binding: | attributes pattern comprehension_iterator - { Jane_syntax.Comprehensions.{ pattern = $2 ; iterator = $3 ; attributes = $1 } } + { { pcomp_cb_pattern = $2 ; pcomp_cb_iterator = $3 ; pcomp_cb_attributes = $1 } } (* We can't write [[e for local_ x = 1 to 10]], because the [local_] has to move to the RHS and there's nowhere for it to move to; besides, you never want that [int] to be [local_]. But we can parse [[e for local_ x in xs]]. @@ -3036,37 +3065,36 @@ comprehension_clause_binding: { let expr = mkexp_with_modes ~loc:$sloc ~exp:$5 ~cty:None ~modes:[$2] in - Jane_syntax.Comprehensions. - { pattern = $3 - ; iterator = In expr - ; attributes = $1 - } + { pcomp_cb_pattern = $3 + ; pcomp_cb_iterator = Pcomp_in expr + ; pcomp_cb_attributes = $1 + } } ; comprehension_clause: | FOR separated_nonempty_llist(AND, comprehension_clause_binding) - { Jane_syntax.Comprehensions.For $2 } + { Pcomp_for $2 } | WHEN expr - { Jane_syntax.Comprehensions.When $2 } + { Pcomp_when $2 } %inline comprehension(lbracket, rbracket): lbracket expr nonempty_llist(comprehension_clause) rbracket - { Jane_syntax.Comprehensions.{ body = $2; clauses = $3 } } + { { pcomp_body = $2; pcomp_clauses = $3 } } ; %inline comprehension_ext_expr: | comprehension(LBRACKET,RBRACKET) - { Jane_syntax.Comprehensions.Cexp_list_comprehension $1 } + { Pcomp_list_comprehension $1 } | comprehension(LBRACKETBAR,BARRBRACKET) - { Jane_syntax.Comprehensions.Cexp_array_comprehension (Mutable, $1) } + { Pcomp_array_comprehension (Mutable, $1) } | comprehension(LBRACKETCOLON,COLONRBRACKET) - { Jane_syntax.Comprehensions.Cexp_array_comprehension (Immutable, $1) } + { Pcomp_array_comprehension (Immutable, $1) } ; %inline comprehension_expr: comprehension_ext_expr - { Jane_syntax.Comprehensions.expr_of ~loc:(make_loc $sloc) $1 } + { mkexp ~loc:$sloc (Pexp_comprehension $1) } ; %inline array_simple(ARR_OPEN, ARR_CLOSE, contents_semi_list): @@ -3169,7 +3197,7 @@ comprehension_clause: | array_exprs(LBRACKETBAR, BARRBRACKET) { Generic_array.Expression.to_desc "[|" "|]" - (fun elts -> Pexp_array elts) + Mutable $1 } | LBRACKET expr_semi_list RBRACKET @@ -3257,11 +3285,8 @@ let_binding_body_no_punning: } | modes0 = optional_mode_expr_legacy let_ident COLON poly(core_type) modes1 = optional_atat_mode_expr EQUAL seq_expr { let bound_vars, inner_type = $4 in - let ltyp = Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } in - let typ_loc = Location.ghostify (make_loc $loc($4)) in - let typ = - Jane_syntax.Layouts.type_of ~loc:typ_loc ltyp - in + let ltyp = Ptyp_poly (bound_vars, inner_type) in + let typ = ghtyp ~loc:$loc($4) ltyp in let modes = modes0 @ modes1 in ($2, $7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) @@ -3275,9 +3300,8 @@ let_binding_body_no_punning: ($1, $8, Some constraint') ]} - But this would require encoding [newtypes] (which, internally, may - associate a layout with a newtype) in Jane Syntax, which will require - a small amount of work. + But this would require adding a jkind field to [newtypes], which will require + a small amount of additional work. The [typloc] argument to [wrap_type_annotation] is used to make the location on the [core_type] node for the annotation match the upstream @@ -3756,7 +3780,7 @@ simple_pattern_not_ident: $3 } | simple_pattern_not_ident_ { $1 } - | signed_constant { Constant.to_pattern $1 ~loc:$sloc } + | signed_constant { mkpat (Ppat_constant $1) ~loc:$sloc } ; %inline simple_pattern_not_ident_: mkpat( @@ -3830,19 +3854,19 @@ simple_delimited_pattern: | array_patterns(LBRACKETBAR, BARRBRACKET) { Generic_array.Pattern.to_ast "[|" "|]" - (fun elts -> Ppat_array elts) + Mutable + $1 + } + | array_patterns(LBRACKETCOLON, COLONRBRACKET) + { Generic_array.Pattern.to_ast + "[:" ":]" + Immutable $1 } | HASHLPAREN reversed_labeled_tuple_pattern(pattern) RPAREN { let (closed, fields) = $2 in Ppat_unboxed_tuple (List.rev fields, closed) } ) { $1 } - | array_patterns(LBRACKETCOLON, COLONRBRACKET) - { Generic_array.Pattern.to_ast - "[:" ":]" - (ppat_iarray $sloc) - $1 - } %inline pattern_semi_list: ps = separated_or_terminated_nonempty_list(SEMI, pattern) @@ -3956,7 +3980,7 @@ generic_type_declaration(flag, kind): flag = flag params = type_parameters id = mkrhs(LIDENT) - jkind = jkind_constraint? + jkind_annotation = jkind_constraint? kind_priv_manifest = kind cstrs = constraints attrs2 = post_item_attributes @@ -3966,8 +3990,8 @@ generic_type_declaration(flag, kind): let attrs = attrs1 @ attrs2 in let loc = make_loc $sloc in (flag, ext), - Jane_syntax.Layouts.type_declaration_of - id ~params ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:None ~jkind + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ?jkind_annotation } ; %inline generic_and_type_declaration(kind): @@ -3975,7 +3999,7 @@ generic_type_declaration(flag, kind): attrs1 = attributes params = type_parameters id = mkrhs(LIDENT) - jkind = jkind_constraint? + jkind_annotation = jkind_constraint? kind_priv_manifest = kind cstrs = constraints attrs2 = post_item_attributes @@ -3985,8 +4009,8 @@ generic_type_declaration(flag, kind): let attrs = attrs1 @ attrs2 in let loc = make_loc $sloc in let text = symbol_text $symbolstartpos in - Jane_syntax.Layouts.type_declaration_of - id ~params ~jkind ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:(Some text) + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + ?jkind_annotation } ; %inline constraints: @@ -4039,46 +4063,45 @@ type_parameters: { ps } ; -jkind: - jkind MOD mkrhs(LIDENT)+ { (* LIDENTs here are for modes *) +jkind_desc: + jkind_annotation MOD mkrhs(LIDENT)+ { (* LIDENTs here are for modes *) let modes = List.map (fun {txt; loc} -> {txt = Mode txt; loc}) $3 in - Jane_syntax.Jkind.Mod ($1, modes) + Mod ($1, modes) } - | jkind WITH core_type { - Jane_syntax.Jkind.With ($1, $3) + | jkind_annotation WITH core_type { + With ($1, $3) } - | mkrhs(ident) { - let {txt; loc} = $1 in - Jane_syntax.Jkind.(Abbreviation (Const.mk txt loc)) + | ident { + Abbreviation $1 } | KIND_OF ty=core_type { - Jane_syntax.Jkind.Kind_of ty + Kind_of ty } | UNDERSCORE { - Jane_syntax.Jkind.Default + Default } | reverse_product_jkind %prec below_AMPERSAND { - Jane_syntax.Jkind.Product (List.rev $1) + Product (List.rev $1) } - | LPAREN jkind RPAREN { + | LPAREN jkind_desc RPAREN { $2 } ; reverse_product_jkind : - | jkind1 = jkind AMPERSAND jkind2 = jkind %prec prec_unboxed_product_kind + | jkind1 = jkind_annotation AMPERSAND jkind2 = jkind_annotation %prec prec_unboxed_product_kind { [jkind2; jkind1] } | jkinds = reverse_product_jkind AMPERSAND - jkind = jkind %prec prec_unboxed_product_kind + jkind = jkind_annotation %prec prec_unboxed_product_kind { jkind :: jkinds } jkind_annotation: (* : jkind_annotation *) - mkrhs(jkind) { $1 } + jkind_desc { { pjkind_loc = make_loc $sloc; pjkind_desc = $1 } } ; jkind_constraint: @@ -4096,8 +4119,9 @@ kind_abbreviation_decl: attrs=attributes COLON jkind=jkind_annotation - { Jane_syntax.Core_type.core_type_of ~loc:(make_loc $sloc) ~attrs - (Jtyp_layout (Ltyp_var { name; jkind })) } + { match name with + | None -> mktyp ~loc:$sloc ~attrs (Ptyp_any (Some jkind)) + | Some name -> mktyp ~loc:$sloc ~attrs (Ptyp_var (name, Some jkind)) } ; parenthesized_type_parameter: @@ -4114,9 +4138,9 @@ type_parameter: %inline type_variable: mktyp( QUOTE tyvar = ident - { Ptyp_var tyvar } + { Ptyp_var (tyvar, None) } | UNDERSCORE - { Ptyp_any } + { Ptyp_any None } ) { $1 } ; @@ -4177,9 +4201,8 @@ generic_constructor_declaration(opening): %inline constructor_declaration(opening): d = generic_constructor_declaration(opening) { - let cid, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Layouts.constructor_declaration_of - cid ~vars_jkinds ~args ~res ~attrs ~loc ~info + let cid, vars, args, res, attrs, loc, info = d in + Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info } ; str_exception_declaration: @@ -4207,24 +4230,17 @@ sig_exception_declaration: vars_args_res = generalized_constructor_arguments attrs2 = attributes attrs = post_item_attributes - { let vars_jkinds, args, res = vars_args_res in + { let vars, args, res = vars_args_res in let loc = make_loc ($startpos, $endpos(attrs2)) in let docs = symbol_docs $sloc in - let ext_ctor = - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~name:id ~attrs:(attrs1 @ attrs2) ~docs - (Jext_layout (Lext_decl (vars_jkinds, args, res))) - in - Te.mk_exception ~attrs ext_ctor, ext } + Te.mk_exception ~attrs + (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs) + , ext } ; %inline let_exception_declaration: mkrhs(constr_ident) generalized_constructor_arguments attributes - { let vars_jkinds, args, res = $2 in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc:(make_loc $sloc) - ~name:$1 - ~attrs:$3 - (Jext_layout (Lext_decl (vars_jkinds, args, res))) } + { let vars, args, res = $2 in + Te.decl $1 ~vars ~args ?res ~attrs:$3 ~loc:(make_loc $sloc) } ; generalized_constructor_arguments: @@ -4314,10 +4330,8 @@ label_declaration_semi: %inline extension_constructor_declaration(opening): d = generic_constructor_declaration(opening) { - let name, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~attrs ~info ~name - (Jext_layout (Lext_decl(vars_jkinds, args, res))) + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info } ; extension_constructor_rebind(opening): @@ -4391,8 +4405,7 @@ possibly_poly(X): { $1 } | poly(X) { let bound_vars, inner_type = $1 in - Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) - (Ltyp_poly { bound_vars; inner_type }) } + mktyp ~loc:$sloc (Ptyp_poly (bound_vars, inner_type)) } ; %inline poly_type: possibly_poly(core_type) @@ -4433,7 +4446,7 @@ alias_type: { $1 } | mktyp( ty = alias_type AS QUOTE tyvar = mkrhs(ident) - { Ptyp_alias(ty, tyvar) } + { Ptyp_alias(ty, Some tyvar, None) } ) { $1 } | aliased_type = alias_type AS @@ -4443,8 +4456,7 @@ alias_type: jkind = jkind_annotation RPAREN { let name = Option.map (fun x -> mkloc x name.loc) name.txt in - Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) - (Ltyp_alias { aliased_type; name; jkind }) } + mktyp ~loc:$sloc (Ptyp_alias (aliased_type, name, Some jkind)) } ; (* Function types include: @@ -4620,9 +4632,9 @@ optional_atat_modalities_expr: ; %inline param_type: - | mktyp_jane_syntax_ltyp( + | mktyp( LPAREN bound_vars = typevar_list DOT inner_type = core_type RPAREN - { Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } } + { Ptyp_poly (bound_vars, inner_type) } ) { $1 } | ty = tuple_type @@ -4783,17 +4795,15 @@ atomic_type: type_ = delimited_type_supporting_local_open { Ptyp_open (mod_ident, type_) } | QUOTE ident = ident - { Ptyp_var ident } + { Ptyp_var (ident, None) } | UNDERSCORE - { Ptyp_any } + { Ptyp_any None } ) { $1 } /* end mktyp group */ | LPAREN QUOTE name=ident COLON jkind=jkind_annotation RPAREN - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) @@ - Ltyp_var { name = Some name; jkind } } + { mktyp ~loc:$sloc (Ptyp_var (name, Some jkind)) } | LPAREN UNDERSCORE COLON jkind=jkind_annotation RPAREN - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) @@ - Ltyp_var { name = None; jkind } } + { mktyp ~loc:$sloc (Ptyp_any (Some jkind)) } (* This is the syntax of the actual type parameters in an application of @@ -4823,11 +4833,9 @@ atomic_type: %inline one_type_parameter_of_several: | core_type { $1 } | QUOTE id=ident COLON jkind=jkind_annotation - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) @@ - Ltyp_var { name = Some id; jkind } } + { mktyp ~loc:$sloc (Ptyp_var (id, (Some jkind))) } | UNDERSCORE COLON jkind=jkind_annotation - { Jane_syntax.Layouts.type_of ~loc:(make_loc $sloc) @@ - Ltyp_var { name = None; jkind } } + { mktyp ~loc:$sloc (Ptyp_any (Some jkind)) } %inline package_type: module_type { let (lid, cstrs, attrs) = package_type_of_module_type $1 in @@ -4921,7 +4929,7 @@ unboxed_constant: | HASH_FLOAT { unboxed_float Positive $1 } ; constant: - value_constant { Constant.value $1 } + value_constant { $1 } | unboxed_constant { $1 } ; signed_value_constant: @@ -4932,7 +4940,7 @@ signed_value_constant: | PLUS FLOAT { let (f, m) = $2 in Pconst_float(f, m) } ; signed_constant: - signed_value_constant { Constant.value $1 } + signed_value_constant { $1 } | unboxed_constant { $1 } | MINUS HASH_INT { unboxed_int $sloc $loc($2) Negative $2 } | MINUS HASH_FLOAT { unboxed_float Negative $2 } diff --git a/src/ocaml/typing/cmi_format.ml b/src/ocaml/typing/cmi_format.ml index ec067331b..293bd28d9 100644 --- a/src/ocaml/typing/cmi_format.ml +++ b/src/ocaml/typing/cmi_format.ml @@ -56,15 +56,17 @@ type flags = pers_flags list type header = { header_name : Compilation_unit.Name.t; header_kind : kind; + header_globals : Global_module.t array; header_sign : Serialized.signature; - header_params : Global_module.Name.t list; + header_params : Global_module.t list; } type 'sg cmi_infos_generic = { cmi_name : Compilation_unit.Name.t; cmi_kind : kind; + cmi_globals : Global_module.t array; cmi_sign : 'sg; - cmi_params : Global_module.Name.t list; + cmi_params : Global_module.t list; cmi_crcs : crcs; cmi_flags : flags; } @@ -121,6 +123,7 @@ let input_cmi_lazy ic = let { header_name = name; header_kind = kind; + header_globals = globals; header_sign = sign; header_params = params; } = (input_value ic : header) in @@ -130,6 +133,7 @@ let input_cmi_lazy ic = { cmi_name = name; cmi_kind = kind; + cmi_globals = globals; cmi_sign = deserialize data sign; cmi_params = params; cmi_crcs = crcs; @@ -189,6 +193,7 @@ let output_cmi filename oc cmi = { header_name = cmi.cmi_name; header_kind = cmi.cmi_kind; + header_globals = cmi.cmi_globals; header_sign = sign; header_params = cmi.cmi_params; }; diff --git a/src/ocaml/typing/cmi_format.mli b/src/ocaml/typing/cmi_format.mli index 7092ebe62..e4b47f971 100644 --- a/src/ocaml/typing/cmi_format.mli +++ b/src/ocaml/typing/cmi_format.mli @@ -32,8 +32,9 @@ type kind = type 'sg cmi_infos_generic = { cmi_name : Compilation_unit.Name.t; cmi_kind : kind; + cmi_globals : Global_module.t array; cmi_sign : 'sg; - cmi_params : Global_module.Name.t list; + cmi_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) cmi_crcs : Import_info.t array; cmi_flags : pers_flags list; } diff --git a/src/ocaml/typing/cmt_format.ml b/src/ocaml/typing/cmt_format.ml index 0670acb0c..e0d791fd4 100644 --- a/src/ocaml/typing/cmt_format.ml +++ b/src/ocaml/typing/cmt_format.ml @@ -201,7 +201,7 @@ let iter_on_occurrences f ~namespace:Value exp_env path lid | Texp_construct (lid, constr_desc, _, _) -> add_constructor_description exp_env lid constr_desc - | Texp_field (_, lid, label_desc, _) + | Texp_field (_, lid, label_desc, _, _) | Texp_setfield (_, _, lid, label_desc, _) -> add_label exp_env lid label_desc | Texp_new (path, lid, _, _) -> @@ -390,9 +390,8 @@ let index_occurrences binary_annots = let index : (Longident.t Location.loc * Shape_reduce.result) list ref = ref [] in - let f ~namespace env path lid = - let not_ghost { Location.loc = { loc_ghost; _ }; _ } = not loc_ghost in - if not_ghost lid then + let f ~namespace env path (lid : _ Location.loc) = + if not (Location.is_none lid.loc) then match Env.shape_of_path ~namespace env path with | exception Not_found -> () | { uid = Some (Predef _); _ } -> () diff --git a/src/ocaml/typing/ctype.ml b/src/ocaml/typing/ctype.ml index 547f5d948..0e15d9b33 100644 --- a/src/ocaml/typing/ctype.ml +++ b/src/ocaml/typing/ctype.ml @@ -2176,7 +2176,7 @@ let rec estimate_type_jkind ~expand_component env ty = with Not_found -> Jkind.Builtin.any ~why:(Missing_cmi p) end - | Tobject _ -> Jkind.Builtin.value ~why:Object + | Tobject _ -> Jkind.for_object | Tfield _ -> Jkind.Builtin.value ~why:Tfield | Tnil -> Jkind.Builtin.value ~why:Tnil | Tlink _ | Tsubst _ -> assert false diff --git a/src/ocaml/typing/env.mli b/src/ocaml/typing/env.mli index f71a6c6db..98f37359d 100644 --- a/src/ocaml/typing/env.mli +++ b/src/ocaml/typing/env.mli @@ -45,8 +45,9 @@ type summary = | Env_persistent of summary * Ident.t | Env_value_unbound of summary * string * value_unbound_reason | Env_module_unbound of summary * string * module_unbound_reason + (* CR zqian: track [add_lock] as well *) -type address = +type address = Persistent_env.address = | Aunit of Compilation_unit.t | Alocal of Ident.t | Adot of address * int @@ -207,6 +208,10 @@ type lock_item = | Module | Class +type structure_components_reason = + | Project + | Open + type lookup_error = | Unbound_value of Longident.t * unbound_value_hint | Unbound_type of Longident.t @@ -222,9 +227,9 @@ type lookup_error = | Masked_self_variable of Longident.t | Masked_ancestor_variable of Longident.t | Structure_used_as_functor of Longident.t - | Abstract_used_as_functor of Longident.t - | Functor_used_as_structure of Longident.t - | Abstract_used_as_structure of Longident.t + | Abstract_used_as_functor of Longident.t * Path.t + | Functor_used_as_structure of Longident.t * structure_components_reason + | Abstract_used_as_structure of Longident.t * Path.t * structure_components_reason | Generative_used_as_applicative of Longident.t | Illegal_reference_to_recursive_module | Cannot_scrape_alias of Longident.t * Path.t @@ -233,6 +238,7 @@ type lookup_error = | Value_used_in_closure of lock_item * Longident.t * Mode.Value.Comonadic.error * closure_context | Local_value_used_in_exclave of lock_item * Longident.t | Non_value_used_in_object of Longident.t * type_expr * Jkind.Violation.t + | Error_from_persistent_env of Persistent_env.error val lookup_error: Location.t -> t -> lookup_error -> 'a @@ -278,6 +284,9 @@ val lookup_module_path: Path.t * Mode.Value.l val lookup_modtype_path: ?use:bool -> loc:Location.t -> Longident.t -> t -> Path.t +val lookup_module_instance_path: + ?use:bool -> ?lock:bool -> loc:Location.t -> load:bool -> + Global_module.Name.t -> t -> Path.t * Mode.Value.l val lookup_constructor: ?use:bool -> loc:Location.t -> constructor_usage -> Longident.t -> t -> @@ -405,12 +414,15 @@ val add_signature_lazy: Subst.Lazy.signature_item list -> t -> t Used to implement open. Returns None if the path refers to a functor, not a structure. *) val open_signature: - ?used_slot:bool ref -> - ?loc:Location.t -> ?toplevel:bool -> - Asttypes.override_flag -> Path.t -> - t -> (t, [`Not_found | `Functor]) result + used_slot:bool ref -> + loc:Location.t -> toplevel:bool -> + Asttypes.override_flag -> Longident.t Location.loc -> + t -> Path.t * t + +(* CR zqian: locks beyond the open are not tracked. Fix that. *) +val open_signature_by_path: Path.t -> t -> t -val open_pers_signature: string -> t -> (t, [`Not_found]) result +val open_pers_signature: string -> t -> Path.t * t val remove_last_open: Path.t -> t -> t option diff --git a/src/ocaml/typing/envaux.ml b/src/ocaml/typing/envaux.ml index e3d94244a..65d2f44fb 100644 --- a/src/ocaml/typing/envaux.ml +++ b/src/ocaml/typing/envaux.ml @@ -71,11 +71,7 @@ let rec env_from_summary sum subst = | Env_open(s, path) -> let env = env_from_summary s subst in let path' = Subst.module_path subst path in - begin match Env.open_signature Asttypes.Override path' env with - | Ok env -> env - | Error `Functor -> assert false - | Error `Not_found -> raise (Error (Module_not_found path')) - end + Env.open_signature_by_path path' env | Env_functor_arg(Env_module(s, id, pres, desc), id') when Ident.same id id' -> let desc = diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 0a4064f67..3f8db9163 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -290,7 +290,7 @@ module Error = struct { jkind : const; required_layouts_level : Language_extension.maturity } - | Unknown_jkind of Jane_syntax.Jkind.t + | Unknown_jkind of Parsetree.jkind_annotation | Multiple_jkinds of { from_annotation : const; from_attribute : const @@ -735,9 +735,9 @@ module Const = struct } let rec of_user_written_annotation_unchecked_level - (jkind : Jane_syntax.Jkind.t) : t = - match jkind with - | Abbreviation { txt = name; loc } -> ( + (jkind : Parsetree.jkind_annotation) : t = + match jkind.pjkind_desc with + | Abbreviation name -> ( (* CR layouts v2.8: move this to predef *) match name with (* CR layouts v3.0: remove this hack once non-null jkinds are out of alpha. @@ -757,7 +757,7 @@ module Const = struct | "bits32" -> Builtin.bits32.jkind | "bits64" -> Builtin.bits64.jkind | "vec128" -> Builtin.vec128.jkind - | _ -> raise ~loc (Unknown_jkind jkind)) + | _ -> raise ~loc:jkind.pjkind_loc (Unknown_jkind jkind)) | Mod (jkind, modifiers) -> let base = of_user_written_annotation_unchecked_level jkind in (* for each mode, lower the corresponding modal bound to be that mode *) @@ -793,20 +793,27 @@ module Const = struct *) (* CR layouts: When everything is stable, remove this function. *) let get_required_layouts_level (_context : History.annotation_context) - (jkind : t) : Language_extension.maturity = - match jkind.layout, jkind.nullability_upper_bound with - | (Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) | Any), _ - | Base Value, Non_null -> - Stable - | Base Void, _ | Base Value, Maybe_null -> Alpha - | Product _, _ -> Beta - - let of_user_written_annotation ~context Location.{ loc; txt = annot } = + (jkind : t) = + let rec scan_layout (l : Layout.Const.t) : Language_extension.maturity = + match l, jkind.nullability_upper_bound with + | (Base (Float64 | Float32 | Word | Bits32 | Bits64 | Vec128) | Any), _ + | Base Value, Non_null -> + Stable + | Product layouts, _ -> + List.fold_left + (fun m l -> Language_extension.Maturity.max m (scan_layout l)) + Language_extension.Stable layouts + | Base Void, _ | Base Value, Maybe_null -> Alpha + in + scan_layout jkind.layout + + let of_user_written_annotation ~context (annot : Parsetree.jkind_annotation) = let const = of_user_written_annotation_unchecked_level annot in let required_layouts_level = get_required_layouts_level context const in if not (Language_extension.is_at_least Layouts required_layouts_level) then - raise ~loc (Insufficient_level { jkind = const; required_layouts_level }); + raise ~loc:annot.pjkind_loc + (Insufficient_level { jkind = const; required_layouts_level }); const end @@ -1173,9 +1180,9 @@ let of_const ~why let of_annotated_const ~context ~const ~const_loc = of_const ~why:(Annotated (context, const_loc)) const -let of_annotation ~context (annot : _ Location.loc) = +let of_annotation ~context (annot : Parsetree.jkind_annotation) = let const = Const.of_user_written_annotation ~context annot in - let jkind = of_annotated_const ~const ~const_loc:annot.loc ~context in + let jkind = of_annotated_const ~const ~const_loc:annot.pjkind_loc ~context in jkind, (const, annot) let of_annotation_option_default ~default ~context = @@ -1190,14 +1197,13 @@ let of_attribute ~context let of_type_decl ~context (decl : Parsetree.type_declaration) = let jkind_of_annotation = - Jane_syntax.Layouts.of_type_declaration decl - |> Option.map (fun (annot, attrs) -> - let t, const = of_annotation ~context annot in - t, const, attrs) + Option.map + (fun annot -> of_annotation ~context annot) + decl.ptype_jkind_annotation in let jkind_of_attribute = Builtin_attributes.jkind decl.ptype_attributes - |> Option.map (fun attr -> + |> Option.map (fun (attr : _ Location.loc) -> let t, const = of_attribute ~context attr in (* This is a bit of a lie: the "annotation" here is being forged based on the jkind attribute. But: the jkind @@ -1206,26 +1212,28 @@ let of_type_decl ~context (decl : Parsetree.type_declaration) = valid (and equivalent) to write as an annotation, so this lie is harmless. *) - let annot = - Location.map - (fun attr -> - let name = Builtin_attributes.jkind_attribute_to_string attr in - Jane_syntax.Jkind.(Abbreviation (Const.mk name Location.none))) - attr + let annot : Parsetree.jkind_annotation = + { pjkind_loc = attr.loc; + pjkind_desc = + (let name = + Builtin_attributes.jkind_attribute_to_string attr.txt + in + Parsetree.Abbreviation name) + } in - t, (const, annot), decl.ptype_attributes) + t, (const, annot)) in match jkind_of_annotation, jkind_of_attribute with | None, None -> None | (Some _ as x), None | None, (Some _ as x) -> x - | Some (_, (from_annotation, _), _), Some (_, (from_attribute, _), _) -> + | Some (_, (from_annotation, _)), Some (_, (from_attribute, _)) -> raise ~loc:decl.ptype_loc (Multiple_jkinds { from_annotation; from_attribute }) let of_type_decl_default ~context ~default (decl : Parsetree.type_declaration) = match of_type_decl ~context decl with - | Some (t, const, attrs) -> t, Some const, attrs - | None -> default, None, decl.ptype_attributes + | Some (t, const) -> t, Some const + | None -> default, None let for_boxed_record ~all_void = if all_void @@ -1252,6 +1260,22 @@ let for_arrow = } ~why:(Value_creation Arrow) +let for_object = + fresh_jkind + { layout = Sort (Base Value); + modes_upper_bounds = + (* The crossing of objects are based on the fact that they are + produced/defined/allocated at legacy, which applies to only the + comonadic axes. *) + Alloc.Const.merge + { comonadic = Alloc.Comonadic.Const.legacy; + monadic = Alloc.Monadic.Const.max + }; + externality_upper_bound = Externality.max; + nullability_upper_bound = Non_null + } + ~why:(Value_creation Object) + (******************************) (* elimination and defaulting *) @@ -2088,10 +2112,10 @@ module Debug_printers = struct module Const = struct let t ppf (jkind : Const.t) = fprintf ppf - "@[{ layout = %a@,\ - ; modes_upper_bounds = %a@,\ - ; externality_upper_bound = %a@,\ - ; nullability_upper_bound = %a@,\ + "@[{ layout = %a@,\ + ; modes_upper_bounds = %a@,\ + ; externality_upper_bound = %a@,\ + ; nullability_upper_bound = %a@,\ }@]" Layout.Const.Debug_printers.t jkind.layout Modes.print jkind.modes_upper_bounds Externality.print jkind.externality_upper_bound @@ -2106,7 +2130,7 @@ let report_error ~loc : Error.t -> _ = function (* CR layouts v2.9: use the context to produce a better error message. When RAE tried this, some types got printed like [t/2], but the [/2] shouldn't be there. Investigate and fix. *) - "@[Unknown layout %a@]" Pprintast.jkind jkind + "@[Unknown layout %a@]" Pprintast.jkind_annotation jkind | Multiple_jkinds { from_annotation; from_attribute } -> Location.errorf ~loc "@[A type declaration's layout can be given at most once.@;\ @@ -2141,6 +2165,6 @@ let () = (* CR layouts v2.8: Remove the definitions below by propagating changes outside of this file. *) -type annotation = Const.t * Jane_syntax.Jkind.annotation +type annotation = Const.t * Parsetree.jkind_annotation let default_to_value_and_get t = default_to_value_and_get t diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index 45a75dca4..04d54db03 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -197,7 +197,7 @@ module Const : sig val get_externality_upper_bound : t -> Externality.t val of_user_written_annotation : - context:History.annotation_context -> Jane_syntax.Jkind.annotation -> t + context:History.annotation_context -> Parsetree.jkind_annotation -> t (* CR layouts: Remove this once we have a better story for printing with jkind abbreviations. *) @@ -330,13 +330,13 @@ type annotation = Types.type_expr Jkind_types.annotation val of_annotation : context:History.annotation_context -> - Jane_syntax.Jkind.annotation -> + Parsetree.jkind_annotation -> 'd t * annotation val of_annotation_option_default : default:'d t -> context:History.annotation_context -> - Jane_syntax.Jkind.annotation option -> + Parsetree.jkind_annotation option -> 'd t * annotation option (** Find a jkind from a type declaration. Type declarations are special because @@ -345,17 +345,14 @@ val of_annotation_option_default : attributes, and [of_type_decl] needs to look in two different places on the [type_declaration] to account for these two alternatives. - Returns the jkind, the user-written annotation, and the remaining unconsumed - attributes. (The attributes include old-style [[@@immediate]] or - [[@@immediate64]] attributes if those are present, but excludes any - attribute used by Jane Syntax to encode a [: jkind]-style jkind.) + Returns the jkind and the user-written annotation. Raises if a disallowed or unknown jkind is present. *) val of_type_decl : context:History.annotation_context -> Parsetree.type_declaration -> - (jkind_l * annotation * Parsetree.attributes) option + (jkind_l * annotation) option (** Find a jkind from a type declaration in the same way as [of_type_decl], defaulting to ~default. @@ -366,7 +363,7 @@ val of_type_decl_default : context:History.annotation_context -> default:jkind_l -> Parsetree.type_declaration -> - jkind_l * annotation option * Parsetree.attributes + jkind_l * annotation option (** Choose an appropriate jkind for a boxed record type, given whether all of its fields are [void]. *) @@ -379,6 +376,9 @@ val for_boxed_variant : all_voids:bool -> jkind_l (** The jkind of an arrow type. *) val for_arrow : jkind_l +(** The jkind of an object type. *) +val for_object : jkind_l + (******************************) (* elimination and defaulting *) diff --git a/src/ocaml/typing/jkind_types.ml b/src/ocaml/typing/jkind_types.ml index 0abab96de..fe40aeffa 100644 --- a/src/ocaml/typing/jkind_types.ml +++ b/src/ocaml/typing/jkind_types.ml @@ -587,4 +587,4 @@ module Const = struct } end -type 'type_expr annotation = 'type_expr Const.t * Jane_syntax.Jkind.annotation +type 'type_expr annotation = 'type_expr Const.t * Parsetree.jkind_annotation diff --git a/src/ocaml/typing/jkind_types.mli b/src/ocaml/typing/jkind_types.mli index ec266f092..e88907a92 100644 --- a/src/ocaml/typing/jkind_types.mli +++ b/src/ocaml/typing/jkind_types.mli @@ -163,4 +163,4 @@ module Const : sig end (** CR layouts v2.8: remove this when printing is improved *) -type 'type_expr annotation = 'type_expr Const.t * Jane_syntax.Jkind.annotation +type 'type_expr annotation = 'type_expr Const.t * Parsetree.jkind_annotation diff --git a/src/ocaml/typing/mode_intf.mli b/src/ocaml/typing/mode_intf.mli index 0d8ca8ae4..7f01288f6 100644 --- a/src/ocaml/typing/mode_intf.mli +++ b/src/ocaml/typing/mode_intf.mli @@ -240,6 +240,8 @@ module type S = sig val aliased : lr val unique : lr + + val zap_to_ceil : ('l * allowed) t -> Const.t end module Contention : sig diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index 85c587a75..5d582d932 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -392,8 +392,6 @@ let pr_var_jkinds = mention non-legacy modes *) let print_out_mode_legacy ppf = function | Omd_local -> fprintf ppf "local_" - | Omd_unique -> fprintf ppf "unique_" - | Omd_once -> fprintf ppf "once_" let print_out_mode_new = pp_print_string diff --git a/src/ocaml/typing/outcometree.mli b/src/ocaml/typing/outcometree.mli index 8d1929ba7..d540afeb4 100644 --- a/src/ocaml/typing/outcometree.mli +++ b/src/ocaml/typing/outcometree.mli @@ -82,8 +82,6 @@ type arg_label = type out_mode_legacy = | Omd_local - | Omd_unique - | Omd_once type out_mode_new = string diff --git a/src/ocaml/typing/parmatch.ml b/src/ocaml/typing/parmatch.ml index 773fd5775..d1fdf0d35 100644 --- a/src/ocaml/typing/parmatch.ml +++ b/src/ocaml/typing/parmatch.ml @@ -52,6 +52,7 @@ let make_pat desc ty tenv = {pat_desc = desc; pat_loc = Location.none; pat_extra = []; pat_type = ty ; pat_env = tenv; pat_attributes = []; + pat_unique_barrier = Unique_barrier.not_computed (); } let omega = Patterns.omega diff --git a/src/ocaml/typing/patterns.ml b/src/ocaml/typing/patterns.ml index 1f988c2b8..87ef2197c 100644 --- a/src/ocaml/typing/patterns.ml +++ b/src/ocaml/typing/patterns.ml @@ -27,6 +27,7 @@ let omega = { pat_type = Ctype.none; pat_env = Env.empty; pat_attributes = []; + pat_unique_barrier = Unique_barrier.not_computed (); } let rec omegas i = diff --git a/src/ocaml/typing/persistent_env.mli b/src/ocaml/typing/persistent_env.mli index d080a4ff1..9791b8f54 100644 --- a/src/ocaml/typing/persistent_env.mli +++ b/src/ocaml/typing/persistent_env.mli @@ -16,9 +16,7 @@ open Misc -module Consistbl_data : sig - type t -end +module Consistbl_data = Import_info.Intf.Nonalias.Kind module Consistbl : module type of struct include Consistbl.Make (Compilation_unit.Name) (Consistbl_data) @@ -33,11 +31,38 @@ type error = | Direct_reference_from_wrong_package of Compilation_unit.t * filepath * Compilation_unit.Prefix.t | Illegal_import_of_parameter of Global_module.Name.t * filepath - | Not_compiled_as_parameter of Global_module.Name.t * filepath + | Not_compiled_as_parameter of Global_module.Name.t | Imported_module_has_unset_parameter of { imported : Global_module.Name.t; parameter : Global_module.Name.t; - } + } + | Imported_module_has_no_such_parameter of + { imported : Compilation_unit.Name.t; + valid_parameters : Global_module.Name.t list; + parameter : Global_module.Name.t; + value : Global_module.Name.t; + } + | Not_compiled_as_argument of + { param : Global_module.Name.t; + value : Global_module.Name.t; + filename : filepath; + } + | Argument_type_mismatch of + { value : Global_module.Name.t; + filename : filepath; + expected : Global_module.Name.t; + actual : Global_module.Name.t; + } + | Inconsistent_global_name_resolution of + { name : Global_module.Name.t; + old_global : Global_module.t; + new_global : Global_module.t; + first_mentioned_by : Global_module.Name.t; + now_mentioned_by : Global_module.Name.t; + } + | Unbound_module_as_argument_value of + { instance : Global_module.Name.t; value : Global_module.Name.t; } + exception Error of error @@ -118,10 +143,6 @@ val is_parameter_import : 'a t -> Global_module.Name.t -> bool [penv] (it may have failed) *) val looked_up : 'a t -> Global_module.Name.t -> bool -(* [is_imported penv md] checks if [md] has been successfully - imported in the environment [penv] *) -val is_imported : 'a t -> Compilation_unit.Name.t -> bool - (* [is_imported_opaque penv md] checks if [md] has been imported in [penv] as an opaque module *) val is_imported_opaque : 'a t -> Compilation_unit.Name.t -> bool @@ -130,11 +151,22 @@ val is_imported_opaque : 'a t -> Compilation_unit.Name.t -> bool opaque module *) val register_import_as_opaque : 'a t -> Compilation_unit.Name.t -> unit +(* [local_ident penv md] returns the local identifier generated for [md] if + [md] is either a parameter or a dependency with a parameter. This is used + strictly for code generation - types should always use persistent + [Ident.t]s. *) +val local_ident : 'a t -> Global_module.Name.t -> Ident.t option + (* [implemented_parameter penv md] returns the argument to [-as-argument-for] that [md] was compiled with. *) val implemented_parameter : 'a t -> Global_module.Name.t -> Global_module.Name.t option +val global_of_global_name : 'a t + -> check:bool + -> Global_module.Name.t + -> Global_module.t + val make_cmi : 'a t -> Compilation_unit.Name.t -> Cmi_format.kind @@ -152,10 +184,10 @@ val without_cmis : 'a t -> ('b -> 'c) -> 'b -> 'c (* may raise Consistbl.Inconsistency *) val import_crcs : 'a t -> source:filepath -> - Import_info.t array -> unit + Import_info.Intf.t array -> unit (* Return the set of compilation units imported, with their CRC *) -val imports : 'a t -> Import_info.t list +val imports : 'a t -> Import_info.Intf.t list (* Return the set of imports represented as runtime parameters. If this module is indeed parameterised (that is, [parameters] returns a non-empty list), it will be compiled as diff --git a/src/ocaml/typing/predef.ml b/src/ocaml/typing/predef.ml index cc49c4738..67c4a01c7 100644 --- a/src/ocaml/typing/predef.ml +++ b/src/ocaml/typing/predef.ml @@ -216,9 +216,10 @@ let predef_jkind_annotation primitive = right kind. But this hack is OK as its result is just used in printing/untypeast. *) - let user_written : _ Location.loc = - Jane_syntax.Jkind.(Abbreviation (Const.mk primitive.name Location.none)) - |> Location.mknoloc + let user_written : Parsetree.jkind_annotation = + { pjkind_desc = Abbreviation primitive.name; + pjkind_loc = Location.none; + } in primitive.jkind, user_written) primitive @@ -540,28 +541,34 @@ let add_simd_stable_extension_types add_type env = Jkind.Const.Builtin.immutable_data.jkind) ~jkind_annotation:Jkind.Const.Builtin.immutable_data |> add_type ident_unboxed_int8x16 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_int8x16) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_int8x16) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_int16x8 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_int16x8) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_int16x8) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_int32x4 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_int32x4) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_int32x4) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_int64x2 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_int64x2) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_int64x2) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_float32x4 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_float32x4) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_float32x4) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 |> add_type ident_unboxed_float64x2 - ~jkind:(Jkind.of_const ~why:(Primitive ident_unboxed_float64x2) - Jkind.Const.Builtin.vec128.jkind) + ~jkind:(Jkind.add_mode_crossing + (Jkind.of_const ~why:(Primitive ident_unboxed_float64x2) + Jkind.Const.Builtin.vec128.jkind)) ~jkind_annotation:Jkind.Const.Builtin.vec128 let add_small_number_extension_types add_type env = diff --git a/src/ocaml/typing/printtyp.ml b/src/ocaml/typing/printtyp.ml index 86f5ad2b8..2e58c67f0 100644 --- a/src/ocaml/typing/printtyp.ml +++ b/src/ocaml/typing/printtyp.ml @@ -1243,10 +1243,11 @@ let add_type_to_preparation = prepare_type (* Disabled in classic mode when printing an unification error *) let print_labels = ref true -let out_jkind_of_user_jkind (jkind : Jane_syntax.Jkind.annotation) = - let rec out_jkind_const_of_user_jkind : Jane_syntax.Jkind.t -> out_jkind_const = function +let out_jkind_of_user_jkind jkind = + let rec out_jkind_const_of_user_jkind (jkind : Parsetree.jkind_annotation) : out_jkind_const = + match jkind.pjkind_desc with | Default -> Ojkind_const_default - | Abbreviation abbrev -> Ojkind_const_abbreviation (abbrev :> string Location.loc).txt + | Abbreviation abbrev -> Ojkind_const_abbreviation abbrev | Mod (base, modes) -> let base = out_jkind_const_of_user_jkind base in let modes = @@ -1257,7 +1258,7 @@ let out_jkind_of_user_jkind (jkind : Jane_syntax.Jkind.annotation) = Ojkind_const_product (List.map out_jkind_const_of_user_jkind ts) | With _ | Kind_of _ -> failwith "XXX unimplemented jkind syntax" in - Ojkind_const (out_jkind_const_of_user_jkind jkind.txt) + Ojkind_const (out_jkind_const_of_user_jkind jkind) let out_jkind_of_const_jkind jkind = Ojkind_const (Jkind.Const.to_out_jkind_const jkind) @@ -1324,9 +1325,9 @@ let tree_of_modes modes = (* The mapping passed to [tree_of_mode] must cover all non-legacy modes *) let l = [ tree_of_mode diff.areality [Mode.Locality.Const.Local, Omd_legacy Omd_local]; - tree_of_mode diff.linearity [Mode.Linearity.Const.Once, Omd_legacy Omd_once]; + tree_of_mode diff.linearity [Mode.Linearity.Const.Once, Omd_new "once"]; + tree_of_mode diff.uniqueness [Mode.Uniqueness.Const.Unique, Omd_new "unique"]; tree_of_mode diff.portability [Mode.Portability.Const.Portable, Omd_new "portable"]; - tree_of_mode diff.uniqueness [Mode.Uniqueness.Const.Unique, Omd_legacy Omd_unique]; tree_of_mode diff.contention [Mode.Contention.Const.Contended, Omd_new "contended"; Mode.Contention.Const.Shared, Omd_new "shared"]] in @@ -1365,7 +1366,9 @@ let rec tree_of_typexp mode alloc_mode ty = let arg_mode = Alloc.zap_to_legacy marg in let t1 = if is_optional l then - match get_desc (tpoly_get_mono ty1) with + match + get_desc (Ctype.expand_head !printing_env (tpoly_get_mono ty1)) + with | Tconstr(path, [ty], _) when Path.same path Predef.path_option -> tree_of_typexp mode arg_mode ty @@ -2224,7 +2227,7 @@ let rec tree_of_class_type mode params = in let tr = if is_optional l then - match get_desc ty with + match get_desc (Ctype.expand_head !printing_env ty) with | Tconstr(path, [ty], _) when Path.same path Predef.path_option -> tree_of_typexp mode ty | _ -> Otyp_stuff "" diff --git a/src/ocaml/typing/printtyped.ml b/src/ocaml/typing/printtyped.ml index 40722eb60..1d5e280fd 100644 --- a/src/ocaml/typing/printtyped.ml +++ b/src/ocaml/typing/printtyped.ml @@ -174,7 +174,7 @@ let typevar_jkind ~print_quote ppf (v, l) = | Some (_, jkind) -> fprintf ppf " (%a : %a)" pptv v - Pprintast.jkind jkind.txt + Pprintast.jkind_annotation jkind let tuple_component_label i ppf = function | None -> line i ppf "Label: None\n" @@ -518,7 +518,7 @@ and expression i ppf x = | Texp_variant (l, eo) -> line i ppf "Texp_variant \"%s\"\n" l; option i expression_alloc_mode ppf eo; - | Texp_record { fields; representation; extended_expression; alloc_mode = am} -> + | Texp_record { fields; representation; extended_expression; alloc_mode = am } -> line i ppf "Texp_record\n"; let i = i+1 in alloc_mode_option i ppf am; @@ -527,8 +527,8 @@ and expression i ppf x = line i ppf "representation =\n"; record_representation (i+1) ppf representation; line i ppf "extended_expression =\n"; - option (i+1) expression ppf extended_expression; - | Texp_field (e, li, _, _) -> + option (i+1) expression ppf (Option.map fst extended_expression); + | Texp_field (e, li, _, _, _) -> line i ppf "Texp_field\n"; expression i ppf e; longident i ppf li; diff --git a/src/ocaml/typing/solver.ml b/src/ocaml/typing/solver.ml index e35e67677..8002cd4d6 100644 --- a/src/ocaml/typing/solver.ml +++ b/src/ocaml/typing/solver.ml @@ -35,17 +35,37 @@ type 'a error = right : 'a } -(** Map the function to the list, and returns the first [Error] found; - Returns [Ok ()] if no error. *) -let rec find_error (f : 'x -> ('a, 'b) Result.t) : 'x list -> ('a, 'b) Result.t - = function - | [] -> Ok () - | x :: rest -> ( - match f x with Ok () -> find_error f rest | Error _ as e -> e) - module Solver_mono (C : Lattices_mono) = struct + type any_morph = Any_morph : ('a, 'b, 'd) C.morph -> any_morph + + module VarMap = Map.Make (struct + type t = int * any_morph + + let compare (i1, m1) (i2, m2) = + match Int.compare i1 i2 with 0 -> compare m1 m2 | i -> i + end) + + (** Map the function to the list, and returns the first [Error] found; + Returns [Ok ()] if no error. *) + let find_error (f : 'x -> ('a, 'b) Result.t) (t : 'x VarMap.t) : + ('a, 'b) Result.t = + let r = ref (Ok ()) in + let _ = + VarMap.for_all + (fun _ x -> + match f x with + | Ok () -> true + | Error _ as e -> + r := e; + false) + t + in + !r + + let var_map_to_list t = VarMap.fold (fun _ a xs -> a :: xs) t [] + type 'a var = - { mutable vlower : 'a lmorphvar list; + { mutable vlower : 'a lmorphvar VarMap.t; (** A list of variables directly under the current variable. Each is a pair [f] [v], and we have [f v <= u] where [u] is the current variable. @@ -81,12 +101,14 @@ module Solver_mono (C : Lattices_mono) = struct and ('b, 'd) morphvar = | Amorphvar : 'a var * ('a, 'b, 'd) C.morph -> ('b, 'd) morphvar + let get_key (Amorphvar (v, m)) = v.id, Any_morph m + module VarSet = Set.Make (Int) type change = | Cupper : 'a var * 'a -> change | Clower : 'a var * 'a -> change - | Cvlower : 'a var * 'a lmorphvar list -> change + | Cvlower : 'a var * 'a lmorphvar VarMap.t -> change type changes = change list @@ -107,11 +129,11 @@ module Solver_mono (C : Lattices_mono) = struct | Amode : 'a -> ('a, 'l * 'r) mode | Amodevar : ('a, 'd) morphvar -> ('a, 'd) mode | Amodejoin : - 'a * ('a, 'l * disallowed) morphvar list + 'a * ('a, 'l * disallowed) morphvar VarMap.t -> ('a, 'l * disallowed) mode (** [Amodejoin a [mv0, mv1, ..]] represents [a join mv0 join mv1 join ..] *) | Amodemeet : - 'a * ('a, disallowed * 'r) morphvar list + 'a * ('a, disallowed * 'r) morphvar VarMap.t -> ('a, disallowed * 'r) mode (** [Amodemeet a [mv0, mv1, ..]] represents [a meet mv0 meet mv1 meet ..]. *) @@ -145,7 +167,8 @@ module Solver_mono (C : Lattices_mono) = struct else let traversed = VarSet.add v.id traversed in let p = print_morphvar ~traversed obj in - Format.fprintf ppf "{%a}" (Format.pp_print_list p) v.vlower + Format.fprintf ppf "{%a}" (Format.pp_print_list p) + (var_map_to_list v.vlower) and print_morphvar : type a d. ?traversed:VarSet.t -> a C.obj -> _ -> (a, d) morphvar -> _ = @@ -167,13 +190,13 @@ module Solver_mono (C : Lattices_mono) = struct (Format.pp_print_list ~pp_sep:(fun ppf () -> Format.fprintf ppf ",") (print_morphvar ?traversed obj)) - mvs + (var_map_to_list mvs) | Amodemeet (a, mvs) -> Format.fprintf ppf "meet(%a,%a)" (C.print obj) a (Format.pp_print_list ~pp_sep:(fun ppf () -> Format.fprintf ppf ",") (print_morphvar ?traversed obj)) - mvs + (var_map_to_list mvs) module Morphvar = Magic_allow_disallow (struct type ('a, _, 'd) sided = ('a, 'd) morphvar constraint 'd = 'l * 'r @@ -204,27 +227,31 @@ module Solver_mono (C : Lattices_mono) = struct function | Amode c -> Amode c | Amodevar mv -> Amodevar (Morphvar.allow_left mv) - | Amodejoin (c, mvs) -> Amodejoin (c, List.map Morphvar.allow_left mvs) + | Amodejoin (c, mvs) -> Amodejoin (c, VarMap.map Morphvar.allow_left mvs) let allow_right : type a l r. (a, l * allowed) mode -> (a, l * r) mode = function | Amode c -> Amode c | Amodevar mv -> Amodevar (Morphvar.allow_right mv) - | Amodemeet (c, mvs) -> Amodemeet (c, List.map Morphvar.allow_right mvs) + | Amodemeet (c, mvs) -> Amodemeet (c, VarMap.map Morphvar.allow_right mvs) let disallow_left : type a l r. (a, l * r) mode -> (a, disallowed * r) mode = function | Amode c -> Amode c | Amodevar mv -> Amodevar (Morphvar.disallow_left mv) - | Amodejoin (c, mvs) -> Amodejoin (c, List.map Morphvar.disallow_left mvs) - | Amodemeet (c, mvs) -> Amodemeet (c, List.map Morphvar.disallow_left mvs) + | Amodejoin (c, mvs) -> + Amodejoin (c, VarMap.map Morphvar.disallow_left mvs) + | Amodemeet (c, mvs) -> + Amodemeet (c, VarMap.map Morphvar.disallow_left mvs) let disallow_right : type a l r. (a, l * r) mode -> (a, l * disallowed) mode = function | Amode c -> Amode c | Amodevar mv -> Amodevar (Morphvar.disallow_right mv) - | Amodejoin (c, mvs) -> Amodejoin (c, List.map Morphvar.disallow_right mvs) - | Amodemeet (c, mvs) -> Amodemeet (c, List.map Morphvar.disallow_right mvs) + | Amodejoin (c, mvs) -> + Amodejoin (c, VarMap.map Morphvar.disallow_right mvs) + | Amodemeet (c, mvs) -> + Amodemeet (c, VarMap.map Morphvar.disallow_right mvs) end) let mlower dst (Amorphvar (var, morph)) = C.apply dst morph var.lower @@ -248,9 +275,9 @@ module Solver_mono (C : Lattices_mono) = struct | Amode a -> Amode (C.apply dst morph a) | Amodevar mv -> Amodevar (apply_morphvar dst morph mv) | Amodejoin (a, vs) -> - Amodejoin (C.apply dst morph a, List.map (apply_morphvar dst morph) vs) + Amodejoin (C.apply dst morph a, VarMap.map (apply_morphvar dst morph) vs) | Amodemeet (a, vs) -> - Amodemeet (C.apply dst morph a, List.map (apply_morphvar dst morph) vs) + Amodemeet (C.apply dst morph a, VarMap.map (apply_morphvar dst morph) vs) (** Arguments are not checked and used directly. They must satisfy the INVARIANT listed above. *) @@ -285,7 +312,7 @@ module Solver_mono (C : Lattices_mono) = struct then Error v.upper else ( update_lower ~log obj v a'; - if C.le obj v.upper v.lower then set_vlower ~log v []; + if C.le obj v.upper v.lower then set_vlower ~log v VarMap.empty; Ok ()) let submode_cmv : @@ -332,7 +359,7 @@ module Solver_mono (C : Lattices_mono) = struct then update_lower ~log obj v mu_lower); r) in - if C.le obj v.upper v.lower then set_vlower ~log v []; + if C.le obj v.upper v.lower then set_vlower ~log v VarMap.empty; r) and submode_mvc : @@ -373,8 +400,6 @@ module Solver_mono (C : Lattices_mono) = struct disallow_left (disallow_right mv0) == disallow_left (disallow_right mv1)) || match C.eq_morph f0 f1 with None -> false | Some Refl -> v0 == v1 - let exists mu mvs = List.exists (fun mv -> eq_morphvar mv mu) mvs - let submode_mvmv (type a) ~log (dst : a C.obj) (Amorphvar (v, f) as mv) (Amorphvar (u, g) as mu) = if C.le dst (mupper dst mv) (mlower dst mu) @@ -400,7 +425,8 @@ module Solver_mono (C : Lattices_mono) = struct let src = C.src dst g in let g'f = C.compose src g' (C.disallow_right f) in let x = Amorphvar (v, g'f) in - if not (exists x u.vlower) then set_vlower ~log u (x :: u.vlower); + if not (VarMap.exists (fun _ mv -> eq_morphvar mv x) u.vlower) + then set_vlower ~log u (VarMap.add (get_key x) x u.vlower); Ok ()) let cnt_id = ref 0 @@ -410,7 +436,7 @@ module Solver_mono (C : Lattices_mono) = struct cnt_id := id + 1; let upper = Option.value upper ~default:(C.max obj) in let lower = Option.value lower ~default:(C.min obj) in - let vlower = Option.value vlower ~default:[] in + let vlower = Option.value vlower ~default:VarMap.empty in { upper; lower; vlower; id } let submode (type a r l) (obj : a C.obj) (a : (a, allowed * r) mode) @@ -464,20 +490,14 @@ module Solver_mono (C : Lattices_mono) = struct find_error (fun mv -> submode_mvmv ~log obj mv mu) mvs) mus))) - let cons_dedup x xs = if exists x xs then xs else x :: xs + let cons_dedup x xs = VarMap.add (get_key x) x xs - (* Similar to [List.rev_append] but dedup the result (assuming both inputs are - deduped) *) - let rev_append_dedup l0 l1 = - let rec loop rest acc = - match rest with [] -> acc | x :: xs -> loop xs (cons_dedup x acc) - in - loop l0 l1 + let union_prefer_left t0 t1 = VarMap.union (fun _ a _b -> Some a) t0 t1 let join (type a r) obj l = let rec loop : a -> - (a, allowed * disallowed) morphvar list -> + (a, allowed * disallowed) morphvar VarMap.t -> (a, allowed * r) mode list -> (a, allowed * disallowed) mode = fun a mvs rest -> @@ -495,14 +515,14 @@ module Solver_mono (C : Lattices_mono) = struct | Amodevar mv -> loop (C.join obj a (mlower obj mv)) (cons_dedup mv mvs) xs | Amodejoin (b, mvs') -> - loop (C.join obj a b) (rev_append_dedup mvs' mvs) xs) + loop (C.join obj a b) (union_prefer_left mvs' mvs) xs) in - loop (C.min obj) [] l + loop (C.min obj) VarMap.empty l let meet (type a l) obj l = let rec loop : a -> - (a, disallowed * allowed) morphvar list -> + (a, disallowed * allowed) morphvar VarMap.t -> (a, l * allowed) mode list -> (a, disallowed * allowed) mode = fun a mvs rest -> @@ -520,9 +540,9 @@ module Solver_mono (C : Lattices_mono) = struct | Amodevar mv -> loop (C.meet obj a (mupper obj mv)) (cons_dedup mv mvs) xs | Amodemeet (b, mvs') -> - loop (C.meet obj a b) (rev_append_dedup mvs' mvs) xs) + loop (C.meet obj a b) (union_prefer_left mvs' mvs) xs) in - loop (C.max obj) [] l + loop (C.max obj) VarMap.empty l let get_conservative_ceil : type a l r. a C.obj -> (a, l * r) mode -> a = fun obj m -> @@ -530,9 +550,9 @@ module Solver_mono (C : Lattices_mono) = struct | Amode a -> a | Amodevar mv -> mupper obj mv | Amodemeet (a, mvs) -> - List.fold_left (fun acc mv -> C.meet obj acc (mupper obj mv)) a mvs + VarMap.fold (fun _ mv acc -> C.meet obj acc (mupper obj mv)) mvs a | Amodejoin (a, mvs) -> - List.fold_left (fun acc mv -> C.join obj acc (mupper obj mv)) a mvs + VarMap.fold (fun _ mv acc -> C.join obj acc (mupper obj mv)) mvs a let get_conservative_floor : type a l r. a C.obj -> (a, l * r) mode -> a = fun obj m -> @@ -540,9 +560,9 @@ module Solver_mono (C : Lattices_mono) = struct | Amode a -> a | Amodevar mv -> mlower obj mv | Amodejoin (a, mvs) -> - List.fold_left (fun acc mv -> C.join obj acc (mupper obj mv)) a mvs + VarMap.fold (fun _ mv acc -> C.join obj acc (mupper obj mv)) mvs a | Amodemeet (a, mvs) -> - List.fold_left (fun acc mv -> C.meet obj acc (mlower obj mv)) a mvs + VarMap.fold (fun _ mv acc -> C.meet obj acc (mlower obj mv)) mvs a (* Due to our biased implementation, the ceil is precise. *) let get_ceil = get_conservative_ceil @@ -598,13 +618,13 @@ module Solver_mono (C : Lattices_mono) = struct | Amodevar mv -> zap_to_floor_morphvar obj mv ~commit:log | Amodejoin (a, mvs) -> let floor = - List.fold_left - (fun acc mv -> + VarMap.fold + (fun _ mv acc -> C.join obj acc (zap_to_floor_morphvar obj mv ~commit:None)) - a mvs + mvs a in - List.iter - (fun mv -> assert (submode_mvc obj mv floor ~log |> Result.is_ok)) + VarMap.iter + (fun _ mv -> assert (submode_mvc obj mv floor ~log |> Result.is_ok)) mvs; floor @@ -614,10 +634,10 @@ module Solver_mono (C : Lattices_mono) = struct | Amode a -> a | Amodevar mv -> zap_to_floor_morphvar obj mv ~commit:None | Amodejoin (a, mvs) -> - List.fold_left - (fun acc mv -> + VarMap.fold + (fun _ mv acc -> C.join obj acc (zap_to_floor_morphvar obj mv ~commit:None)) - a mvs + mvs a let print : type a l r. @@ -641,7 +661,11 @@ module Solver_mono (C : Lattices_mono) = struct (* [~lower] is not precise (because [mlower mv] is not precise), but it doesn't need to be *) ( Amodevar - (Amorphvar (fresh ~lower:(mlower obj mv) ~vlower:[mv] obj, C.id)), + (Amorphvar + ( fresh ~lower:(mlower obj mv) + ~vlower:(VarMap.singleton (get_key mv) mv) + obj, + C.id )), true ) | Amodejoin (a, mvs) -> (* [~lower] is not precise here, but it doesn't need to be *) @@ -662,8 +686,8 @@ module Solver_mono (C : Lattices_mono) = struct let u = fresh obj in let mu = Amorphvar (u, C.id) in assert (Result.is_ok (submode_mvc obj ~log:None mu a)); - List.iter - (fun mv -> assert (Result.is_ok (submode_mvmv obj ~log:None mu mv))) + VarMap.iter + (fun _ mv -> assert (Result.is_ok (submode_mvmv obj ~log:None mu mv))) mvs; allow_left (Amodevar mu), true end diff --git a/src/ocaml/typing/tast_iterator.ml b/src/ocaml/typing/tast_iterator.ml index 90710bd77..dbd1da991 100644 --- a/src/ocaml/typing/tast_iterator.ml +++ b/src/ocaml/typing/tast_iterator.ml @@ -358,8 +358,8 @@ let expr sub {exp_loc; exp_extra; exp_desc; exp_env; exp_attributes; _} = | _, Kept _ -> () | _, Overridden (lid, exp) -> iter_loc sub lid; sub.expr sub exp) fields; - Option.iter (sub.expr sub) extended_expression; - | Texp_field (exp, lid, _, _) -> + Option.iter (fun (exp, _) -> sub.expr sub exp) extended_expression; + | Texp_field (exp, lid, _, _, _) -> iter_loc sub lid; sub.expr sub exp | Texp_setfield (exp1, _, lid, _, exp2) -> @@ -716,7 +716,14 @@ let value_binding sub ({vb_loc; vb_pat; vb_expr; vb_attributes; _} as vb) = let env _sub _ = () -let jkind_annotation sub (_, l) = iter_loc sub l +let jkind_annotation sub ((_, l) : Jkind.annotation) = + (* iterate over locations contained within parsetree jkind annotation *) + let ast_iterator = + { Ast_iterator.default_iterator + with location = (fun _this loc -> sub.location sub loc) + } + in + ast_iterator.jkind_annotation ast_iterator l let item_declaration _sub _ = () diff --git a/src/ocaml/typing/tast_mapper.ml b/src/ocaml/typing/tast_mapper.ml index 251b34cef..60115fc39 100644 --- a/src/ocaml/typing/tast_mapper.ml +++ b/src/ocaml/typing/tast_mapper.ml @@ -485,11 +485,12 @@ let expr sub x = in Texp_record { fields; representation; - extended_expression = Option.map (sub.expr sub) extended_expression; + extended_expression = + Option.map (fun (exp, ubr) -> (sub.expr sub exp, ubr)) extended_expression; alloc_mode } - | Texp_field (exp, lid, ld, float) -> - Texp_field (sub.expr sub exp, map_loc sub lid, ld, float) + | Texp_field (exp, lid, ld, float, ubr) -> + Texp_field (sub.expr sub exp, map_loc sub lid, ld, float, ubr) | Texp_setfield (exp1, am, lid, ld, exp2) -> Texp_setfield ( sub.expr sub exp1, @@ -990,7 +991,14 @@ let value_binding sub x = let env _sub x = x -let jkind_annotation sub (c, l) = (c, map_loc sub l) +let jkind_annotation sub (c, annot) = + (* map over locations contained within parsetree jkind annotation *) + let ast_mapper = + { Ast_mapper.default_mapper + with location = (fun _this loc -> sub.location sub loc) + } + in + (c, ast_mapper.jkind_annotation ast_mapper annot) let default = { diff --git a/src/ocaml/typing/typeclass.ml b/src/ocaml/typing/typeclass.ml index 2c56ee280..fbf58557e 100644 --- a/src/ocaml/typing/typeclass.ml +++ b/src/ocaml/typing/typeclass.ml @@ -2138,7 +2138,7 @@ let check_recmod_decl env sdecl = (* Approximate the class declaration as class ['params] id = object end *) let approx_class sdecl = let open Ast_helper in - let self' = Typ.any () in + let self' = Typ.any None in let clty' = Cty.signature ~loc:sdecl.pci_expr.pcty_loc (Csig.mk self' []) in { sdecl with pci_expr = clty' } diff --git a/src/ocaml/typing/typecore.mli b/src/ocaml/typing/typecore.mli index b204fc0b9..5285c5cb7 100644 --- a/src/ocaml/typing/typecore.mli +++ b/src/ocaml/typing/typecore.mli @@ -317,6 +317,7 @@ type error = | Cannot_stack_allocate of Env.locality_context option | Unsupported_stack_allocation of unsupported_stack_allocation | Not_allocation + | Impossible_function_jkind of type_expr * jkind_lr exception Error of Location.t * Env.t * error exception Error_forward of Location.error diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index 515b900a0..3be0c80c3 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -264,7 +264,7 @@ let enter_type ?abstract_abbrevs rec_flag env sdecl (id, uid) = jkind of the variable put in manifests here is updated when constraints are checked and then unified with the real manifest and checked against the kind. *) - let type_jkind, type_jkind_annotation, sdecl_attributes = + let type_jkind, type_jkind_annotation = Jkind.of_type_decl_default ~context:(Type_declaration path) ~default:any @@ -300,7 +300,7 @@ in type_is_newtype = false; type_expansion_scope = Btype.lowest_level; type_loc = sdecl.ptype_loc; - type_attributes = sdecl_attributes; + type_attributes = sdecl.ptype_attributes; type_unboxed_default = false; type_uid = uid; type_has_illegal_crossings = false; @@ -365,7 +365,7 @@ let is_fixed_type sd = (* CR layouts upstreaming: The Ptyp_alias case also covers the case for a jkind annotation, conveniently. When upstreaming jkinds, this function will need a case for jkind-annotation aliases. *) - Ptyp_alias (sty, _) -> has_row_var sty + Ptyp_alias (sty, _jkind, _) -> has_row_var sty | Ptyp_class _ | Ptyp_object (_, Open) | Ptyp_variant (_, Open, _) @@ -544,24 +544,22 @@ let transl_constructor_arguments ~new_var_jkind ~unboxed defined types. It is updated later by [update_constructor_arguments_jkinds] *) let make_constructor - env loc ~cstr_path ~type_path ~unboxed type_params (svars : _ Either.t) + env loc ~cstr_path ~type_path ~unboxed type_params svars sargs sret_type = - let tvars = match svars with - | Left vars_only -> List.map (fun v -> v.txt, None) vars_only - | Right vars_jkinds -> - List.map - (fun (v, l) -> - v.txt, - Option.map - (fun annot -> - let const = - Jkind.Const.of_user_written_annotation - ~context:(Constructor_type_parameter (cstr_path, v.txt)) - annot - in - const, annot) - l) - vars_jkinds + let tvars = + List.map + (fun (v, l) -> + v.txt, + Option.map + (fun annot -> + let const = + Jkind.Const.of_user_written_annotation + ~context:(Constructor_type_parameter (cstr_path, v.txt)) + annot + in + const, annot) + l) + svars in match sret_type with | None -> @@ -577,19 +575,16 @@ let make_constructor TyVarEnv.with_local_scope begin fun () -> let closed = match svars with - | Left [] | Right [] -> false + | [] -> false | _ -> true in let targs, tret_type, args, ret_type, _univars = Ctype.with_local_level_if closed begin fun () -> TyVarEnv.reset (); let univar_list = - match svars with - | Left vars_only -> TyVarEnv.make_poly_univars vars_only - | Right vars_jkinds -> - TyVarEnv.make_poly_univars_jkinds - ~context:(fun v -> Constructor_type_parameter (cstr_path, v)) - vars_jkinds + TyVarEnv.make_poly_univars_jkinds + ~context:(fun v -> Constructor_type_parameter (cstr_path, v)) + svars in let univars = if closed then Some univar_list else None in let args, targs = @@ -790,11 +785,11 @@ let transl_declaration env sdecl (id, uid) = | _ -> false, false (* Not unboxable, mark as boxed *) in verify_unboxed_attr unboxed_attr sdecl; - let jkind_from_annotation, jkind_annotation, sdecl_attributes = + let jkind_from_annotation, jkind_annotation = match Jkind.of_type_decl ~context:(Type_declaration path) sdecl with - | Some (jkind, jkind_annotation, sdecl_attributes) -> - Some jkind, Some jkind_annotation, sdecl_attributes - | None -> None, None, sdecl.ptype_attributes + | Some (jkind, jkind_annotation) -> + Some jkind, Some jkind_annotation + | None -> None, None in let (tman, man) = match sdecl.ptype_manifest with None -> None, None @@ -817,7 +812,7 @@ let transl_declaration env sdecl (id, uid) = Remove when we allow users to define their own null constructors. *) | Ptype_abstract when - Builtin_attributes.has_or_null_reexport sdecl_attributes -> + Builtin_attributes.has_or_null_reexport sdecl.ptype_attributes -> let param = (* We require users to define ['a t = 'a or_null]. Manifest must be set to [or_null] so typechecking stays correct. *) @@ -835,7 +830,7 @@ let transl_declaration env sdecl (id, uid) = in Ttype_abstract, type_kind, jkind | (Ptype_variant _ | Ptype_record _ | Ptype_open) when - Builtin_attributes.has_or_null_reexport sdecl_attributes -> + Builtin_attributes.has_or_null_reexport sdecl.ptype_attributes -> raise (Error (sdecl.ptype_loc, Non_abstract_reexport path)) | Ptype_abstract -> Ttype_abstract, Type_abstract Definition, @@ -860,19 +855,11 @@ let transl_declaration env sdecl (id, uid) = raise(Error(sdecl.ptype_loc, Too_many_constructors)); let make_cstr scstr = let name = Ident.create_local scstr.pcd_name.txt in - let svars, attributes = - match Jane_syntax.Layouts.of_constructor_declaration scstr with - | None -> - Either.Left scstr.pcd_vars, - scstr.pcd_attributes - | Some (vars_jkinds, attributes) -> - Either.Right vars_jkinds, - attributes - in + let attributes = scstr.pcd_attributes in let tvars, targs, tret_type, args, ret_type = make_constructor ~unboxed:unbox env scstr.pcd_loc ~cstr_path:(Path.Pident name) ~type_path:path params - svars scstr.pcd_args scstr.pcd_res + scstr.pcd_vars scstr.pcd_args scstr.pcd_res in let tcstr = { cd_id = name; @@ -975,7 +962,7 @@ let transl_declaration env sdecl (id, uid) = type_is_newtype = false; type_expansion_scope = Btype.lowest_level; type_loc = sdecl.ptype_loc; - type_attributes = sdecl_attributes; + type_attributes = sdecl.ptype_attributes; type_unboxed_default = unboxed_default; type_uid = uid; type_has_illegal_crossings = false; @@ -2352,27 +2339,15 @@ let transl_extension_constructor_decl args, jkinds, constructor_shape, constant, ret_type, Text_decl(tvars, targs, tret_type) -let transl_extension_constructor_jst env type_path _type_params - typext_params _priv loc id _attrs : - Jane_syntax.Extension_constructor.t -> _ = function - | Jext_layout (Lext_decl(vars_jkinds, args, res)) -> - transl_extension_constructor_decl - env type_path typext_params loc id (Right vars_jkinds) args res - let transl_extension_constructor ~scope env type_path type_params typext_params priv sext = let id = Ident.create_scoped ~scope sext.pext_name.txt in let loc = sext.pext_loc in let args, arg_jkinds, shape, constant, ret_type, kind = - match Jane_syntax.Extension_constructor.of_ast sext with - | Some (jext, attrs) -> - transl_extension_constructor_jst - env type_path type_params typext_params priv loc id attrs jext - | None -> match sext.pext_kind with Pext_decl(svars, sargs, sret_type) -> transl_extension_constructor_decl - env type_path typext_params loc id (Left svars) sargs sret_type + env type_path typext_params loc id svars sargs sret_type | Pext_rebind lid -> let usage : Env.constructor_usage = if priv = Public then Env.Exported else Env.Exported_private @@ -2894,7 +2869,7 @@ let rec parse_native_repr_attributes env core_type ty rmode ~global_repr ~is_layout_poly in ((mode, repr_arg) :: repr_args, repr_res) - | (Ptyp_poly (_, t) | Ptyp_alias (t, _)), _, _ -> + | (Ptyp_poly (_, t) | Ptyp_alias (t, _, _)), _, _ -> parse_native_repr_attributes env t ty rmode ~global_repr ~is_layout_poly | _ -> let rmode = @@ -3008,14 +2983,15 @@ let error_if_containing_unexpected_jkind prim cty ty = unexpected_layout_any_check prim cty ty (* Translate a value declaration *) -let transl_value_decl env loc valdecl = +let transl_value_decl env loc ~sig_modalities valdecl = let cty = Typetexp.transl_type_scheme env valdecl.pval_type in let modalities = - valdecl.pval_modalities - |> Typemode.transl_modalities ~maturity:Alpha Immutable - valdecl.pval_attributes - |> Mode.Modality.Value.of_const + match valdecl.pval_modalities with + | [] -> sig_modalities + | l -> Typemode.transl_modalities ~maturity:Alpha Immutable + valdecl.pval_attributes l in + let modalities = Mode.Modality.Value.of_const modalities in (* CR layouts v5: relax this to check for representability. *) begin match Ctype.constrain_type_jkind env cty.ctyp_type (Jkind.Builtin.value_or_null ~why:Structure_element) with @@ -3116,9 +3092,9 @@ let transl_value_decl env loc valdecl = in desc, newenv -let transl_value_decl env loc valdecl = +let transl_value_decl env ~sig_modalities loc valdecl = Builtin_attributes.warning_scope valdecl.pval_attributes - (fun () -> transl_value_decl env loc valdecl) + (fun () -> transl_value_decl env ~sig_modalities loc valdecl) (* Translate a "with" constraint -- much simplified version of transl_type_decl. For a constraint [Sig with t = sdecl], @@ -3340,7 +3316,7 @@ let approx_type_decl sdecl_list = let id = Ident.create_scoped ~scope sdecl.ptype_name.txt in let path = Path.Pident id in let injective = sdecl.ptype_kind <> Ptype_abstract in - let jkind, jkind_annotation, _sdecl_attributes = + let jkind, jkind_annotation = Jkind.of_type_decl_default ~context:(Type_declaration path) ~default:(Jkind.Builtin.value ~why:Default_type_jkind) diff --git a/src/ocaml/typing/typedecl.mli b/src/ocaml/typing/typedecl.mli index 36da3879e..4418515a6 100644 --- a/src/ocaml/typing/typedecl.mli +++ b/src/ocaml/typing/typedecl.mli @@ -35,7 +35,7 @@ val transl_type_extension: Typedtree.type_extension * Env.t * Shape.t list val transl_value_decl: - Env.t -> Location.t -> + Env.t -> sig_modalities:Mode.Modality.Value.Const.t -> Location.t -> Parsetree.value_description -> Typedtree.value_description * Env.t (* If the [fixed_row_path] optional argument is provided, diff --git a/src/ocaml/typing/typedtree.ml b/src/ocaml/typing/typedtree.ml index efa5f71b2..939713292 100644 --- a/src/ocaml/typing/typedtree.ml +++ b/src/ocaml/typing/typedtree.ml @@ -50,7 +50,49 @@ type _ pattern_category = | Value : value pattern_category | Computation : computation pattern_category -type unique_barrier = Mode.Uniqueness.r +module Unique_barrier = struct + (* For added safety, we record the states in the life of a barrier: + - Barriers start out as Not_computed + - They are enabled by the uniqueness analysis + - They are resolved in translcore + This allows us to error if the barrier is not enabled or resolved. *) + type barrier = + | Enabled of Mode.Uniqueness.lr + | Resolved of Mode.Uniqueness.Const.t + | Not_computed + + type t = barrier ref + + let not_computed () = ref Not_computed + + let enable barrier = match !barrier with + | Not_computed -> + barrier := Enabled (Uniqueness.newvar ()) + | _ -> Misc.fatal_error "Unique barrier was enabled twice" + + (* Due to or-patterns a barrier may have several upper bounds. *) + let add_upper_bound uniq barrier = + match !barrier with + | Enabled barrier -> Uniqueness.submode_exn barrier uniq + | _ -> Misc.fatal_error "Unique barrier got an upper bound in the wrong state" + + let resolve barrier = + match !barrier with + | Enabled uniq -> + let zapped = Uniqueness.zap_to_ceil uniq in + barrier := Resolved zapped; + zapped + | Resolved barrier -> barrier + | Not_computed -> + (* CR uniqueness: The uniqueness analysis does not go into legacy + language constructs such as objects; for those, we default to legacy. + We should change the uniqueness analysis to also traverse these + constructs. Then this case will be impossible to reach and we can fail + here. Failing here will protect us when future language extensions are + not traversing the uniqueness analysis. This ensures that the + unique barriers will stay sound for future extensions. *) + Uniqueness.Const.legacy +end type unique_use = Mode.Uniqueness.r * Mode.Linearity.l @@ -77,6 +119,7 @@ and 'a pattern_data = pat_type: type_expr; pat_env: Env.t; pat_attributes: attribute list; + pat_unique_barrier : Unique_barrier.t; } and pat_extra = @@ -168,11 +211,12 @@ and expression_desc = | Texp_record of { fields : ( Types.label_description * record_label_definition ) array; representation : Types.record_representation; - extended_expression : expression option; + extended_expression : (expression * Unique_barrier.t) option; alloc_mode : alloc_mode option } | Texp_field of - expression * Longident.t loc * label_description * texp_field_boxing + expression * Longident.t loc * label_description * texp_field_boxing * + Unique_barrier.t | Texp_setfield of expression * Mode.Locality.l * Longident.t loc * label_description * expression | Texp_array of mutability * Jkind.Sort.t * expression list * alloc_mode @@ -511,8 +555,10 @@ and primitive_coercion = and signature = { sig_items : signature_item list; + sig_modalities : Mode.Modality.Value.Const.t; sig_type : Types.signature; sig_final_env : Env.t; + sig_sloc : Location.t; } and signature_item = @@ -682,7 +728,7 @@ and type_declaration = typ_manifest: core_type option; typ_loc: Location.t; typ_attributes: attribute list; - typ_jkind_annotation: Jane_syntax.Jkind.annotation option; + typ_jkind_annotation: Parsetree.jkind_annotation option; } and type_kind = @@ -854,6 +900,7 @@ let as_computation_pattern (p : pattern) : computation general_pattern = pat_type = p.pat_type; pat_env = p.pat_env; pat_attributes = []; + pat_unique_barrier = p.pat_unique_barrier; } let function_arity params body = @@ -1193,7 +1240,7 @@ let rec exp_is_nominal exp = | Texp_variant (_, None) | Texp_construct (_, _, [], _) -> true - | Texp_field (parent, _, _, _) | Texp_send (parent, _, _) -> + | Texp_field (parent, _, _, _, _) | Texp_send (parent, _, _) -> exp_is_nominal parent | _ -> false diff --git a/src/ocaml/typing/typedtree.mli b/src/ocaml/typing/typedtree.mli index 0da0231d6..bc031e627 100644 --- a/src/ocaml/typing/typedtree.mli +++ b/src/ocaml/typing/typedtree.mli @@ -62,12 +62,25 @@ type _ pattern_category = | Value : value pattern_category | Computation : computation pattern_category -(* CR zqian: use this field when overwriting is supported. *) -(** Access mode for a field projection, represented by the usage of the record - immediately following the projection. If the following usage is unique, the - projection must be borrowed and cannot be moved. If the following usage is - aliased, the projection can be aliased and moved. *) -type unique_barrier = Mode.Uniqueness.r +(** A unique barrier annotates field accesses (eg. Texp_field and patterns) + with the uniqueness mode of the allocation that is projected out of. + Projections out of unique allocations may not be pushed down in later + stages of the compiler, because the unique allocation may be overwritten. *) +module Unique_barrier : sig + type t + + (* Barriers start out as not computed. *) + val not_computed : unit -> t + + (* The uniqueness analysis enables all barriers. *) + val enable : t -> unit + + (* Record an upper bound on the uniqueness of the record. *) + val add_upper_bound : Mode.Uniqueness.r -> t -> unit + + (* Resolve the unique barrier once type-checking is complete. *) + val resolve : t -> Mode.Uniqueness.Const.t +end type unique_use = Mode.Uniqueness.r * Mode.Linearity.l @@ -96,6 +109,9 @@ and 'a pattern_data = pat_type: Types.type_expr; pat_env: Env.t; pat_attributes: attributes; + pat_unique_barrier : Unique_barrier.t; + (** This tracks whether the scrutinee of the pattern is used uniquely + within the body of the pattern match. *) } and pat_extra = @@ -285,7 +301,7 @@ and expression_desc = (** fun P0 P1 -> function p1 -> e1 | p2 -> e2 (body = Tfunction_cases _) fun P0 P1 -> E (body = Tfunction_body _) This construct has the same arity as the originating - {{!Jane_syntax.Expression.Jexp_n_ary_function}[Jexp_n_ary_function]}. + {{!Parsetree.Pexp_function}[Pexp_function]}. Arity determines when side-effects for effectful parameters are run (e.g. optional argument defaults, matching against lazy patterns). Parameters' effects are run left-to-right when an n-ary function is @@ -359,7 +375,7 @@ and expression_desc = | Texp_record of { fields : ( Types.label_description * record_label_definition ) array; representation : Types.record_representation; - extended_expression : expression option; + extended_expression : (expression * Unique_barrier.t) option; alloc_mode : alloc_mode option } (** { l1=P1; ...; ln=Pn } (extended_expression = None) @@ -377,7 +393,7 @@ and expression_desc = in which case it does not need allocation. *) | Texp_field of expression * Longident.t loc * Types.label_description * - texp_field_boxing + texp_field_boxing * Unique_barrier.t (** [texp_field_boxing] provides extra information depending on if the projection requires boxing. *) | Texp_setfield of @@ -784,8 +800,10 @@ and primitive_coercion = and signature = { sig_items : signature_item list; + sig_modalities : Mode.Modality.Value.Const.t; sig_type : Types.signature; sig_final_env : Env.t; + sig_sloc : Location.t; } and signature_item = @@ -960,7 +978,7 @@ and type_declaration = typ_manifest: core_type option; typ_loc: Location.t; typ_attributes: attributes; - typ_jkind_annotation: Jane_syntax.Jkind.annotation option; + typ_jkind_annotation: Parsetree.jkind_annotation option; } and type_kind = diff --git a/src/ocaml/typing/typemode.ml b/src/ocaml/typing/typemode.ml index 9b020815e..8cbd18650 100644 --- a/src/ocaml/typing/typemode.ml +++ b/src/ocaml/typing/typemode.ml @@ -58,7 +58,7 @@ let transl_annot (type m) ~(annot_type : m annot_type) ~required_mode_maturity annot : m Axis_pair.t = Option.iter (fun maturity -> - Jane_syntax_parsing.assert_extension_enabled ~loc:annot.loc Mode maturity) + Language_extension.assert_enabled ~loc:annot.loc Mode maturity) required_mode_maturity; match Axis_pair.of_string annot.txt, annot_type with | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) -> diff --git a/src/ocaml/typing/typetexp.ml b/src/ocaml/typing/typetexp.ml index 83dc41a33..81e17a1c0 100644 --- a/src/ocaml/typing/typetexp.ml +++ b/src/ocaml/typing/typetexp.ml @@ -164,7 +164,8 @@ module TyVarEnv : sig val make_poly_univars_jkinds : context:(string -> Jkind.History.annotation_context) -> - (string Location.loc * Jane_syntax.Jkind.annotation option) list -> poly_univars + (string Location.loc * Parsetree.jkind_annotation option) list + -> poly_univars (* see mli file *) val check_poly_univars : Env.t -> Location.t -> poly_univars -> type_expr list @@ -576,27 +577,27 @@ let transl_type_param_var env loc attrs name_opt { ctyp_desc = tvar; ctyp_type = ty; ctyp_env = env; ctyp_loc = loc; ctyp_attributes = attrs } -let transl_type_param_jst env loc attrs path : - Jane_syntax.Core_type.t -> _ = - function - | Jtyp_layout (Ltyp_var { name; jkind = jkind_annot }) -> - let jkind, jkind_annot = - Jkind.of_annotation ~context:(Type_parameter (path, name)) jkind_annot - in - transl_type_param_var env loc attrs name jkind (Some jkind_annot) - | Jtyp_layout (Ltyp_poly _ | Ltyp_alias _) -> - Misc.fatal_error "non-type-variable in transl_type_param_jst" - let transl_type_param env path jkind_default styp = let loc = styp.ptyp_loc in - match Jane_syntax.Core_type.of_ast styp with - | Some (etyp, attrs) -> transl_type_param_jst env loc attrs path etyp - | None -> + let transl_jkind_and_annot_opt jkind_annot name = + match jkind_annot with + | None -> jkind_default, None + | Some jkind_annot -> + let jkind, jkind_annot = + Jkind.of_annotation ~context:(Type_parameter (path, name)) jkind_annot + in + jkind, Some jkind_annot + in let attrs = styp.ptyp_attributes in match styp.ptyp_desc with - Ptyp_any -> transl_type_param_var env loc attrs None jkind_default None - | Ptyp_var name -> - transl_type_param_var env loc attrs (Some name) jkind_default None + Ptyp_any jkind -> + let name = None in + let jkind, jkind_annot = transl_jkind_and_annot_opt jkind name in + transl_type_param_var env loc attrs name jkind jkind_annot + | Ptyp_var (name, jkind) -> + let name = Some name in + let jkind, jkind_annot = transl_jkind_and_annot_opt jkind name in + transl_type_param_var env loc attrs name jkind jkind_annot | _ -> assert false let transl_type_param env path jkind_default styp = @@ -606,23 +607,24 @@ let transl_type_param env path jkind_default styp = (fun () -> transl_type_param env path jkind_default styp) let get_type_param_jkind path styp = - match Jane_syntax.Core_type.of_ast styp with - | None -> Jkind.of_new_legacy_sort ~why:(Unannotated_type_parameter path) - | Some (Jtyp_layout (Ltyp_var { name; jkind }), _attrs) -> + let of_annotation jkind name = let jkind, _ = - Jkind.of_annotation - ~context:(Type_parameter (path, name)) - jkind + Jkind.of_annotation ~context:(Type_parameter (path, name)) jkind in jkind - | Some _ -> Misc.fatal_error "non-type-variable in get_type_param_jkind" + in + match styp.ptyp_desc with + | Ptyp_any (Some jkind) -> + of_annotation jkind None + | Ptyp_var (name, Some jkind) -> + of_annotation jkind (Some name) + | _ -> Jkind.of_new_legacy_sort ~why:(Unannotated_type_parameter path) let get_type_param_name styp = - (* We don't need to check for jane-syntax here, just to get the - name. *) + (* We don't need to check for jkinds here, just to get the name. *) match styp.ptyp_desc with - | Ptyp_any -> None - | Ptyp_var name -> Some name + | Ptyp_any _ -> None + | Ptyp_var (name, _) -> Some name | _ -> Misc.fatal_error "non-type-variable in get_type_param_name" let rec extract_params styp = @@ -676,15 +678,14 @@ let enrich_with_attributes attrs annotation_context = | None -> annotation_context let jkind_of_annotation annotation_context attrs jkind = - Jkind.of_annotation ~context:(enrich_with_attributes attrs annotation_context) jkind + Jkind.of_annotation ~context:(enrich_with_attributes attrs annotation_context) + jkind (* translate the ['a 'b ('c : immediate) .] part of a polytype, returning a [poly_univars] *) -let transl_bound_vars : (_, _) Either.t -> _ = - function - | Left vars_only -> TyVarEnv.make_poly_univars vars_only - | Right vars_jkinds -> TyVarEnv.make_poly_univars_jkinds - ~context:(fun v -> Univar ("'" ^ v)) vars_jkinds +let transl_bound_vars vars_jkinds = + TyVarEnv.make_poly_univars_jkinds + ~context:(fun v -> Univar ("'" ^ v)) vars_jkinds (* Forward declaration (set in Typemod.type_open) *) let type_open : @@ -717,20 +718,23 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = { ctyp_desc; ctyp_type; ctyp_env = env; ctyp_loc = loc; ctyp_attributes = styp.ptyp_attributes } in - match Jane_syntax.Core_type.of_ast styp with - | Some (etyp, attrs) -> - transl_type_aux_jst env ~policy ~row_context mode attrs loc etyp - | None -> match styp.ptyp_desc with - Ptyp_any -> - let ty = - TyVarEnv.new_any_var loc env (TyVarEnv.new_jkind ~is_named:false policy) policy - in - ctyp (Ttyp_var (None, None)) ty - | Ptyp_var name -> + Ptyp_any jkind -> + let tjkind, tjkind_annot = + match jkind with + | None -> TyVarEnv.new_jkind ~is_named:false policy, None + | Some jkind -> + let tjkind, tjkind_annot = + jkind_of_annotation (Type_wildcard loc) styp.ptyp_attributes jkind + in + tjkind, Some tjkind_annot + in + let ty = TyVarEnv.new_any_var loc env tjkind policy in + ctyp (Ttyp_var (None, tjkind_annot)) ty + | Ptyp_var (name, jkind) -> let desc, typ = transl_type_var env ~policy ~row_context - styp.ptyp_attributes styp.ptyp_loc name None + styp.ptyp_attributes styp.ptyp_loc name jkind in ctyp desc typ | Ptyp_arrow _ -> @@ -781,8 +785,7 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = in ctyp desc typ | Ptyp_unboxed_tuple stl -> - Jane_syntax_parsing.assert_extension_enabled ~loc Layouts - Language_extension.Beta; + Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; let tl = List.map (fun (label, t) -> @@ -798,7 +801,7 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = let (path, decl) = Env.lookup_type ~loc:lid.loc lid.txt env in let stl = match stl with - | [ {ptyp_desc=Ptyp_any} as t ] when decl.type_arity > 1 -> + | [ {ptyp_desc=Ptyp_any None} as t ] when decl.type_arity > 1 -> List.map (fun _ -> t) decl.type_params | _ -> stl in @@ -890,10 +893,10 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = assert false in ctyp (Ttyp_class (path, lid, args)) ty - | Ptyp_alias(st, alias) -> + | Ptyp_alias(st, alias, jkind) -> let desc, typ = transl_type_alias env ~policy ~row_context - mode styp.ptyp_attributes loc st (Some alias) None + mode styp.ptyp_attributes loc st alias jkind in ctyp desc typ | Ptyp_variant(fields, closed, present) -> @@ -1020,7 +1023,7 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = | Ptyp_poly(vars, st) -> let desc, typ = transl_type_poly env ~policy ~row_context mode styp.ptyp_loc - (Either.Left vars) st + vars st in ctyp desc typ | Ptyp_package (p, l) -> @@ -1067,33 +1070,6 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = | Ptyp_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) -and transl_type_aux_jst env ~policy ~row_context mode attrs loc - (jtyp : Jane_syntax.Core_type.t) = - let ctyp_desc, ctyp_type = - match jtyp with - | Jtyp_layout typ -> - transl_type_aux_jst_layout env ~policy ~row_context mode attrs loc typ - in - { ctyp_desc; ctyp_type; ctyp_env = env; ctyp_loc = loc; - ctyp_attributes = attrs } - -and transl_type_aux_jst_layout env ~policy ~row_context mode attrs loc : - Jane_syntax.Layouts.core_type -> _ = function - | Ltyp_var { name = None; jkind } -> - let tjkind, tjkind_annot = - jkind_of_annotation (Type_wildcard loc) attrs jkind - in - Ttyp_var (None, Some tjkind_annot), - TyVarEnv.new_any_var loc env tjkind policy - | Ltyp_var { name = Some name; jkind } -> - transl_type_var env ~policy ~row_context attrs loc name (Some jkind) - | Ltyp_poly { bound_vars; inner_type } -> - transl_type_poly env ~policy ~row_context mode loc (Either.Right bound_vars) - inner_type - | Ltyp_alias { aliased_type; name; jkind } -> - transl_type_alias env ~policy ~row_context mode attrs loc aliased_type name - (Some jkind) - and transl_type_var env ~policy ~row_context attrs loc name jkind_annot_opt = let print_name = "'" ^ name in if not (valid_tyvar_name name) then @@ -1119,12 +1095,11 @@ and transl_type_var env ~policy ~row_context attrs loc name jkind_annot_opt = match constrain_type_jkind env ty jkind with | Ok () -> Some annot | Error err -> - raise (Error(jkind_annot.loc, env, Bad_jkind_annot (ty, err))) + raise (Error(jkind_annot.pjkind_loc, env, Bad_jkind_annot (ty, err))) in Ttyp_var (Some name, jkind_annot), ty -and transl_type_poly env ~policy ~row_context mode loc (vars : (_, _) Either.t) - st = +and transl_type_poly env ~policy ~row_context mode loc vars st = let typed_vars, new_univars, cty = with_local_level begin fun () -> let new_univars = transl_bound_vars vars in @@ -1165,7 +1140,7 @@ and transl_type_alias env ~row_context ~policy mode attrs styp_loc styp name_opt begin match constrain_type_jkind env t jkind with | Ok () -> () | Error err -> - raise (Error(jkind_annot.loc, env, Bad_jkind_annot(t, err))) + raise (Error(jkind_annot.pjkind_loc, env, Bad_jkind_annot(t, err))) end; Some annot in @@ -1213,12 +1188,12 @@ and transl_type_alias env ~row_context ~policy mode attrs styp_loc styp name_opt | Some jkind_annot -> jkind_annot in let jkind, annot = - jkind_of_annotation (Type_wildcard jkind_annot.loc) attrs jkind_annot + jkind_of_annotation (Type_wildcard jkind_annot.pjkind_loc) attrs jkind_annot in begin match constrain_type_jkind env cty_expr jkind with | Ok () -> () | Error err -> - raise (Error(jkind_annot.loc, env, + raise (Error(jkind_annot.pjkind_loc, env, Bad_jkind_annot(cty_expr, err))) end; cty, Some annot @@ -1231,8 +1206,9 @@ and transl_type_aux_tuple env ~loc ~policy ~row_context stl = let ctys = List.map (fun (label, t) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) label; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + label; label, transl_type env ~policy ~row_context Alloc.Const.legacy t) stl in @@ -1441,22 +1417,11 @@ let transl_type_scheme_poly env attrs loc vars inner_type = ctyp_loc = loc; ctyp_attributes = attrs } -let transl_type_scheme_jst env styp attrs loc : Jane_syntax.Core_type.t -> _ = - function - | Jtyp_layout (Ltyp_poly { bound_vars; inner_type }) -> - transl_type_scheme_poly env attrs loc (Right bound_vars) inner_type - | Jtyp_layout (Ltyp_var _ | Ltyp_alias _) -> - transl_type_scheme_mono env styp - let transl_type_scheme env styp = - match Jane_syntax.Core_type.of_ast styp with - | Some (etyp, attrs) -> - transl_type_scheme_jst env styp attrs styp.ptyp_loc etyp - | None -> match styp.ptyp_desc with | Ptyp_poly (vars, st) -> transl_type_scheme_poly env styp.ptyp_attributes - styp.ptyp_loc (Either.Left vars) st + styp.ptyp_loc vars st | _ -> transl_type_scheme_mono env styp diff --git a/src/ocaml/typing/typetexp.mli b/src/ocaml/typing/typetexp.mli index 835545fda..3a1ac480b 100644 --- a/src/ocaml/typing/typetexp.mli +++ b/src/ocaml/typing/typetexp.mli @@ -37,7 +37,7 @@ module TyVarEnv : sig val make_poly_univars_jkinds : context:(string -> Jkind.History.annotation_context) -> - (string Location.loc * Jane_syntax.Jkind.annotation option) list -> + (string Location.loc * Parsetree.jkind_annotation option) list -> poly_univars (** remember that a list of strings connotes univars; this must always be paired with a [check_poly_univars]. *) diff --git a/src/ocaml/typing/uniqueness_analysis.ml b/src/ocaml/typing/uniqueness_analysis.ml index e900b8ffc..d975d49a2 100644 --- a/src/ocaml/typing/uniqueness_analysis.ml +++ b/src/ocaml/typing/uniqueness_analysis.ml @@ -111,7 +111,7 @@ module Maybe_aliased : sig type t type access = - | Read + | Read of Unique_barrier.t | Write val string_of_access : access -> string @@ -119,7 +119,10 @@ module Maybe_aliased : sig (** The type representing a usage that could be either aliased or borrowed *) (** Extract an arbitrary occurrence from the usage *) - val extract_occurrence_access : t -> Occurrence.t * access + val extract_occurrence : t -> Occurrence.t + + (** extract an arbitrary access from this usage *) + val extract_access : t -> access (** Add a barrier. The uniqueness mode represents the usage immediately following the current usage. If that mode is Unique, the current usage @@ -130,13 +133,15 @@ module Maybe_aliased : sig val meet : t -> t -> t - val singleton : unique_barrier ref -> Occurrence.t -> access -> t + val singleton : Occurrence.t -> access -> t end = struct type access = - | Read + | Read of Unique_barrier.t | Write - let string_of_access = function Read -> "read from" | Write -> "written to" + let string_of_access = function + | Read _ -> "read from" + | Write -> "written to" (** list of occurences together with modes to be forced as borrowed in the future if needed. It is a list because of multiple control flows. For @@ -145,19 +150,24 @@ end = struct is the meet of all modes in the list. (recall that borrowed > aliased). Therefore, if this virtual mode needs to be forced borrowed, the whole list needs to be forced borrowed. *) - type t = (unique_barrier ref * Occurrence.t * access) list + type t = (Occurrence.t * access) list let meet l0 l1 = l0 @ l1 - let singleton r occ access = [r, occ, access] + let singleton occ access = [occ, access] + + let extract_occurrence = function [] -> assert false | (occ, _) :: _ -> occ - let extract_occurrence_access = function + let extract_access = function | [] -> assert false - | (_, occ, access) :: _ -> occ, access + | (_, access) :: _ -> access let add_barrier t uniq = List.iter - (fun (barrier, _, _) -> barrier := Uniqueness.meet [!barrier; uniq]) + (fun (_, access) -> + match access with + | Read barrier -> Unique_barrier.add_upper_bound uniq barrier + | _ -> ()) t end @@ -302,7 +312,7 @@ end = struct let extract_occurrence = function | Unused -> None | Borrowed occ -> Some occ - | Maybe_aliased t -> Some (Maybe_aliased.extract_occurrence_access t |> fst) + | Maybe_aliased t -> Some (Maybe_aliased.extract_occurrence t) | Aliased t -> Some (Aliased.extract_occurrence t) | Maybe_unique t -> Some (Maybe_unique.extract_occurrence t) @@ -312,7 +322,10 @@ end = struct | Borrowed _, t | t, Borrowed _ -> t | Maybe_aliased l0, Maybe_aliased l1 -> Maybe_aliased (Maybe_aliased.meet l0 l1) - | Maybe_aliased _, t | t, Maybe_aliased _ -> t + | Maybe_aliased _, t | t, Maybe_aliased _ -> + (* The barrier stays empty; if there is any unique after this, + the analysis will error *) + t | Aliased _, t | t, Aliased _ -> t | Maybe_unique l0, Maybe_unique l1 -> Maybe_unique (Maybe_unique.meet l0 l1) @@ -347,14 +360,14 @@ end = struct | Maybe_aliased t0, Maybe_aliased t1 -> Maybe_aliased (Maybe_aliased.meet t0 t1) | Maybe_aliased _, Aliased occ | Aliased occ, Maybe_aliased _ -> - (* The barrier stays empty; if there is any unique after this, it - will error *) + (* The barrier stays empty; if there is any unique after this, + the analysis will error *) Aliased occ | Maybe_aliased t0, Maybe_unique t1 | Maybe_unique t1, Maybe_aliased t0 -> (* t1 must be aliased *) force_aliased_multiuse t1 (Maybe_aliased t0) First; - (* The barrier stays empty; if there is any unique after this, it will - error *) + (* The barrier stays empty; if there is any unique after this, + the analysis will error *) aliased (Maybe_unique.extract_occurrence t1) Aliased.Forced | Aliased t0, Aliased _ -> Aliased t0 | Aliased t0, Maybe_unique t1 -> @@ -407,7 +420,10 @@ end = struct | Maybe_unique l, Borrowed occ -> force_aliased_multiuse l m1 First; aliased occ Aliased.Forced - | Aliased _, Maybe_aliased _ -> m0 + | Aliased _, Maybe_aliased _ -> + (* The barrier stays empty; if there is any unique after this, + the analysis will error *) + m0 | Maybe_unique l0, Maybe_aliased l1 -> (* Four cases: Aliased;Borrowed = Aliased @@ -417,8 +433,10 @@ end = struct As you can see, we need to force the m0 to Aliased, and m1 needn't be constrained. The result is always Aliased. + The barrier stays empty; if there is any unique after this, + the analysis will error. *) - let occ, _ = Maybe_aliased.extract_occurrence_access l1 in + let occ = Maybe_aliased.extract_occurrence l1 in force_aliased_multiuse l0 m1 First; aliased occ Aliased.Forced | Aliased _, Aliased _ -> m0 @@ -441,7 +459,7 @@ module Projection : sig | Record_field of string | Construct_field of string * int | Variant_field of label - | Memory_address + | Memory_address (* this is rendered as clubsuit in the ICFP'24 paper *) module Map : Map.S with type key = t end = struct @@ -766,7 +784,7 @@ module Paths : sig val choose : t -> t -> t val mark_implicit_borrow_memory_address : - Maybe_aliased.access -> Occurrence.t -> t -> UF.t + Occurrence.t -> Maybe_aliased.access -> t -> UF.t val mark_aliased : Occurrence.t -> Aliased.reason -> t -> UF.t end = struct @@ -808,13 +826,9 @@ end = struct let fresh () = [UF.Path.fresh_root ()] - let mark_implicit_borrow_memory_address access occ paths = - (* Currently we just generate a dummy unique_barrier ref that won't be - consumed. The distinction between implicit and explicit borrowing is - still needed because they are handled differently in closures *) - let barrier = ref (Uniqueness.max |> Uniqueness.disallow_left) in + let mark_implicit_borrow_memory_address occ access paths = mark - (Maybe_aliased (Maybe_aliased.singleton barrier occ access)) + (Maybe_aliased (Maybe_aliased.singleton occ access)) (memory_address paths) let mark_aliased occ reason paths = mark (Usage.aliased occ reason) paths @@ -857,9 +871,7 @@ module Value : sig val mark_maybe_unique : t -> UF.t (** Mark the memory_address of the value as implicitly borrowed - (borrow_or_aliased). We still ask for the [occ] argument, because - [Value.occ] is the occurrence of the value, not necessary the place where - it is borrowed. *) + (borrow_or_aliased). *) val mark_implicit_borrow_memory_address : Maybe_aliased.access -> t -> UF.t val mark_aliased : reason:boundary_reason -> t -> UF.t @@ -890,7 +902,7 @@ end = struct let mark_implicit_borrow_memory_address access = function | Fresh -> UF.unused | Existing { paths; occ; _ } -> - Paths.mark_implicit_borrow_memory_address access occ paths + Paths.mark_implicit_borrow_memory_address occ access paths let mark_maybe_unique = function | Fresh -> UF.unused @@ -1000,10 +1012,13 @@ let conjuncts_pattern_match l = let rec pattern_match_tuple pat values = match pat.pat_desc with | Tpat_or (pat0, pat1, _) -> + Unique_barrier.enable pat.pat_unique_barrier; let ext0, uf0 = pattern_match_tuple pat0 values in let ext1, uf1 = pattern_match_tuple pat1 values in Ienv.Extension.disjunct ext0 ext1, UF.choose uf0 uf1 | Tpat_tuple pats -> + (* No read: the tuple does not exist in memory *) + Unique_barrier.enable pat.pat_unique_barrier; List.map2 (fun (_, pat) value -> let paths = @@ -1025,22 +1040,40 @@ let rec pattern_match_tuple pat values = and pattern_match_single pat paths : Ienv.Extension.t * UF.t = let loc = pat.pat_loc in let occ = Occurrence.mk loc in + (* To read from the allocation, we need to borrow its memory cell + and set the unique_barrier. However, we do not read in every case, + since the user might want use a wildcard for already-consumed data. *) + let no_borrow_memory_address () = + Unique_barrier.enable pat.pat_unique_barrier; + ignore (Unique_barrier.resolve pat.pat_unique_barrier) + in + let borrow_memory_address () = + Unique_barrier.enable pat.pat_unique_barrier; + Paths.mark_implicit_borrow_memory_address occ (Read pat.pat_unique_barrier) + paths + in match pat.pat_desc with | Tpat_or (pat0, pat1, _) -> + no_borrow_memory_address (); let ext0, uf0 = pattern_match_single pat0 paths in let ext1, uf1 = pattern_match_single pat1 paths in Ienv.Extension.disjunct ext0 ext1, UF.choose uf0 uf1 - | Tpat_any -> Ienv.Extension.empty, UF.unused - | Tpat_var (id, _, _, _) -> Ienv.Extension.singleton id paths, UF.unused + | Tpat_any -> + no_borrow_memory_address (); + Ienv.Extension.empty, UF.unused + | Tpat_var (id, _, _, _) -> + no_borrow_memory_address (); + Ienv.Extension.singleton id paths, UF.unused | Tpat_alias (pat', id, _, _, _) -> + no_borrow_memory_address (); let ext0 = Ienv.Extension.singleton id paths in let ext1, uf = pattern_match_single pat' paths in Ienv.Extension.conjunct ext0 ext1, uf | Tpat_constant _ -> - ( Ienv.Extension.empty, - Paths.mark_implicit_borrow_memory_address Read occ paths ) + let uf_read = borrow_memory_address () in + Ienv.Extension.empty, uf_read | Tpat_construct (lbl, cd, pats, _) -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let pats_args = List.combine pats cd.cstr_args in let ext, uf_pats = List.mapi @@ -1053,7 +1086,7 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_pats | Tpat_variant (lbl, arg, _) -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let ext, uf_arg = match arg with | Some arg -> @@ -1063,7 +1096,7 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_arg | Tpat_record (pats, _) -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let ext, uf_pats = List.map (fun (_, l, pat) -> @@ -1074,7 +1107,7 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_pats | Tpat_array (_, _, pats) -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let ext, uf_pats = List.map (fun pat -> @@ -1085,13 +1118,15 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_pats | Tpat_lazy arg -> + no_borrow_memory_address (); + (* forced below: *) (* forcing a lazy expression is like calling a nullary-function *) let uf_force = Paths.mark_aliased occ Lazy paths in let paths = Paths.fresh () in let ext, uf_arg = pattern_match_single arg paths in ext, UF.par uf_force uf_arg | Tpat_tuple args -> - let uf_read = Paths.mark_implicit_borrow_memory_address Read occ paths in + let uf_read = borrow_memory_address () in let ext, uf_args = List.mapi (fun i (_, arg) -> @@ -1102,6 +1137,8 @@ and pattern_match_single pat paths : Ienv.Extension.t * UF.t = in ext, UF.par uf_read uf_args | Tpat_unboxed_tuple args -> + (* No borrow since unboxed data can not be consumed. *) + no_borrow_memory_address (); let ext, uf_args = List.mapi (fun i (_, arg, _) -> @@ -1116,11 +1153,18 @@ let pattern_match pat = function | Match_tuple values -> pattern_match_tuple pat values | Match_single paths -> pattern_match_single pat paths -(* We ignore exceptions in uniqueness analysis. *) let comp_pattern_match pat value = - match split_pattern pat with - | Some pat', _ -> pattern_match pat' value - | None, _ -> Ienv.Extension.empty, UF.unused + let vals, exns = split_pattern pat in + (* We ignore exceptions in uniqueness analysis, + since they can never contain unique values. *) + (match exns with + | Some exns -> + let _ = pattern_match exns (Match_single Paths.untracked) in + () + | None -> ()); + match vals with + | Some pat' -> pattern_match pat' value + | None -> Ienv.Extension.empty, UF.unused let value_of_ident ienv unique_use occ path = match path with @@ -1187,7 +1231,8 @@ let lift_implicit_borrowing uf = (function | Maybe_aliased t -> (* implicit borrowing lifted. *) - let occ, access = Maybe_aliased.extract_occurrence_access t in + let occ = Maybe_aliased.extract_occurrence t in + let access = Maybe_aliased.extract_access t in Usage.aliased occ (Aliased.Lifted access) | m -> (* other usage stays the same *) @@ -1283,9 +1328,12 @@ let rec check_uniqueness_exp (ienv : Ienv.t) exp : UF.t = let value, uf_ext = match extended_expression with | None -> Value.fresh, UF.unused - | Some exp -> + | Some (exp, unique_barrier) -> let value, uf_exp = check_uniqueness_exp_as_value ienv exp in - let uf_read = Value.mark_implicit_borrow_memory_address Read value in + Unique_barrier.enable unique_barrier; + let uf_read = + Value.mark_implicit_borrow_memory_address (Read unique_barrier) value + in value, UF.par uf_exp uf_read in let uf_fields = @@ -1419,14 +1467,20 @@ and check_uniqueness_exp_as_value ienv exp : Value.t * UF.t = | Some value -> value in value, UF.unused - | Texp_field (e, _, l, float) -> ( + | Texp_field (e, _, l, float, unique_barrier) -> ( let value, uf = check_uniqueness_exp_as_value ienv e in match Value.paths value with - | None -> Value.fresh, uf + | None -> + (* No barrier: the expression 'e' is not overwritable. *) + Unique_barrier.enable unique_barrier; + Value.fresh, uf | Some paths -> (* accessing the field meaning borrowing the parent record's mem block. Note that the field itself is not borrowed or used *) - let uf_read = Value.mark_implicit_borrow_memory_address Read value in + Unique_barrier.enable unique_barrier; + let uf_read = + Value.mark_implicit_borrow_memory_address (Read unique_barrier) value + in let uf_boxing, value = let occ = Occurrence.mk loc in let paths = Paths.record_field l.lbl_modalities l.lbl_name paths in @@ -1556,9 +1610,8 @@ let report_multi_use inner first_is_of_second = let here_usage = "used" in let there_usage = match there with - | Usage.Maybe_aliased t -> ( - let _, access = Maybe_aliased.extract_occurrence_access t in - match access with Read -> "read from" | Write -> "written to") + | Usage.Maybe_aliased t -> + Maybe_aliased.string_of_access (Maybe_aliased.extract_access t) | Usage.Aliased t -> ( match Aliased.reason t with | Forced | Lazy -> "used" diff --git a/src/ocaml/typing/untypeast.ml b/src/ocaml/typing/untypeast.ml index a351e50ff..d19dce644 100644 --- a/src/ocaml/typing/untypeast.ml +++ b/src/ocaml/typing/untypeast.ml @@ -123,22 +123,19 @@ let rec extract_letop_patterns n pat = (** Mapping functions. *) let constant = function - | Const_char c -> `Parsetree (Pconst_char c) - | Const_string (s,loc,d) -> `Parsetree (Pconst_string (s,loc,d)) - | Const_int i -> `Parsetree (Pconst_integer (Int.to_string i, None)) - | Const_int32 i -> `Parsetree (Pconst_integer (Int32.to_string i, Some 'l')) - | Const_int64 i -> `Parsetree (Pconst_integer (Int64.to_string i, Some 'L')) - | Const_nativeint i -> `Parsetree (Pconst_integer (Nativeint.to_string i, Some 'n')) - | Const_float f -> `Parsetree (Pconst_float (f,None)) - | Const_float32 f -> `Parsetree (Pconst_float (f, Some 's')) - | Const_unboxed_float f -> `Jane_syntax (Jane_syntax.Layouts.Float (f, None)) - | Const_unboxed_float32 f -> `Jane_syntax (Jane_syntax.Layouts.Float (f, Some 's')) - | Const_unboxed_int32 i -> - `Jane_syntax (Jane_syntax.Layouts.Integer (Int32.to_string i, 'l')) - | Const_unboxed_int64 i -> - `Jane_syntax (Jane_syntax.Layouts.Integer (Int64.to_string i, 'L')) - | Const_unboxed_nativeint i -> - `Jane_syntax (Jane_syntax.Layouts.Integer (Nativeint.to_string i, 'n')) + | Const_char c -> Pconst_char c + | Const_string (s,loc,d) -> Pconst_string (s,loc,d) + | Const_int i -> Pconst_integer (Int.to_string i, None) + | Const_int32 i -> Pconst_integer (Int32.to_string i, Some 'l') + | Const_int64 i -> Pconst_integer (Int64.to_string i, Some 'L') + | Const_nativeint i -> Pconst_integer (Nativeint.to_string i, Some 'n') + | Const_float f -> Pconst_float (f,None) + | Const_float32 f -> Pconst_float (f, Some 's') + | Const_unboxed_float f -> Pconst_unboxed_float (f, None) + | Const_unboxed_float32 f -> Pconst_unboxed_float (f, Some 's') + | Const_unboxed_int32 i -> Pconst_unboxed_integer (Int32.to_string i, 'l') + | Const_unboxed_int64 i -> Pconst_unboxed_integer (Int64.to_string i, 'L') + | Const_unboxed_nativeint i -> Pconst_unboxed_integer (Nativeint.to_string i, 'n') let attribute sub a = { attr_name = map_loc sub a.attr_name; @@ -229,7 +226,7 @@ let type_parameter sub (ct, v) = (sub.typ sub ct, v) let type_declaration sub decl = let loc = sub.location sub decl.typ_loc in let attrs = sub.attributes sub decl.typ_attributes in - Jane_syntax.Layouts.type_declaration_of + Type.mk ~loc ~attrs ~params:(List.map (type_parameter sub) decl.typ_params) ~cstrs:( @@ -239,10 +236,9 @@ let type_declaration sub decl = decl.typ_cstrs) ~kind:(sub.type_kind sub decl.typ_kind) ~priv:decl.typ_private - ~manifest:(Option.map (sub.typ sub) decl.typ_manifest) + ?manifest:(Option.map (sub.typ sub) decl.typ_manifest) ~docs:Docstrings.empty_docs - ~text:None - ~jkind:decl.typ_jkind_annotation + ?jkind_annotation:decl.typ_jkind_annotation (map_loc sub decl.typ_name) let type_kind sub tk = match tk with @@ -266,11 +262,10 @@ let constructor_declaration sub cd = let loc = sub.location sub cd.cd_loc in let attrs = sub.attributes sub cd.cd_attributes in let vars_jkinds = List.map (var_jkind ~loc) cd.cd_vars in - Jane_syntax.Layouts.constructor_declaration_of ~loc ~attrs - ~vars_jkinds + Type.constructor ~loc ~attrs + ~vars:vars_jkinds ~args:(constructor_arguments sub cd.cd_args) - ~res:(Option.map (sub.typ sub) cd.cd_res) - ~info:Docstrings.empty_info + ?res:(Option.map (sub.typ sub) cd.cd_res) (map_loc sub cd.cd_name) let mutable_ (mut : Types.mutability) : mutable_flag = @@ -317,8 +312,7 @@ let extension_constructor sub ext = let vs = List.map (var_jkind ~loc) vs in let args = constructor_arguments sub args in let ret = Option.map (sub.typ sub) ret in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~name ~attrs (Jext_layout (Lext_decl (vs, args, ret))) + Te.constructor ~loc ~attrs name (Pext_decl (vs, args, ret)) | Text_rebind (_p, lid) -> Te.constructor ~loc ~attrs name (Pext_rebind (map_loc sub lid)) @@ -326,15 +320,6 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> let loc = sub.location sub pat.pat_loc in (* todo: fix attributes on extras *) let attrs = sub.attributes sub pat.pat_attributes in - let attrs = ref attrs in - (* Hack so we can return an extra value out of the [match] expression for Jane - Street internal expressions without needing to modify every case, which - would open us up to more merge conflicts. - *) - let add_jane_syntax_attributes { ppat_attributes; ppat_desc; _ } = - attrs := ppat_attributes @ !attrs; - ppat_desc - in let desc = match pat with { pat_extra=[Tpat_unpack, loc, _attrs]; pat_desc = Tpat_any; _ } -> @@ -370,12 +355,7 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> | Tpat_alias (pat, _id, name, _uid, _mode) -> Ppat_alias (sub.pat sub pat, name) - | Tpat_constant cst -> - begin match constant cst with - | `Parsetree cst -> Ppat_constant cst - | `Jane_syntax cst -> - Jane_syntax.Layouts.pat_of ~loc (Lpat_constant cst) |> add_jane_syntax_attributes - end + | Tpat_constant cst -> Ppat_constant (constant cst) | Tpat_tuple list -> Ppat_tuple ( List.map (fun (label, p) -> label, sub.pat sub p) list @@ -412,35 +392,19 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> | Tpat_record (list, closed) -> Ppat_record (List.map (fun (lid, _, pat) -> map_loc sub lid, sub.pat sub pat) list, closed) - | Tpat_array (am, _, list) -> begin - let pats = List.map (sub.pat sub) list in - if Types.is_mutable am then Ppat_array pats - else - Jane_syntax.Immutable_arrays.pat_of - ~loc - (Iapat_immutable_array pats) - |> add_jane_syntax_attributes - end + | Tpat_array (am, _, list) -> + Ppat_array (mutable_ am, List.map (sub.pat sub) list) | Tpat_lazy p -> Ppat_lazy (sub.pat sub p) | Tpat_exception p -> Ppat_exception (sub.pat sub p) | Tpat_value p -> (sub.pat sub (p :> pattern)).ppat_desc | Tpat_or (p1, p2, _) -> Ppat_or (sub.pat sub p1, sub.pat sub p2) in - Pat.mk ~loc ~attrs:!attrs desc + Pat.mk ~loc ~attrs desc let exp_extra sub (extra, loc, attrs) sexp = let loc = sub.location sub loc in let attrs = sub.attributes sub attrs in - let attrs = ref attrs in - (* Hack so we can return an extra value out of the [match] expression for Jane - Street internal expressions without needing to modify every case, which - would open us up to more merge conflicts. - *) - let add_jane_syntax_attributes { pexp_attributes; pexp_desc; _ } = - attrs := pexp_attributes @ !attrs; - pexp_desc - in let desc = match extra with Texp_coerce (cty1, cty2) -> @@ -453,15 +417,11 @@ let exp_extra sub (extra, loc, attrs) sexp = Option.map (sub.typ sub) cty, Typemode.untransl_mode_annots ~loc modes) | Texp_poly cto -> Pexp_poly (sexp, Option.map (sub.typ sub) cto) - | Texp_newtype (_, label_loc, None, _) -> - Pexp_newtype (label_loc, sexp) - | Texp_newtype (_, label_loc, Some (_, jkind), _) -> - Jane_syntax.Layouts.expr_of ~loc - (Lexp_newtype(label_loc, jkind, sexp)) - |> add_jane_syntax_attributes + | Texp_newtype (_, label_loc, jkind, _) -> + Pexp_newtype (label_loc, Option.map snd jkind, sexp) | Texp_stack -> Pexp_stack sexp in - Exp.mk ~loc ~attrs:!attrs desc + Exp.mk ~loc ~attrs desc let case : type k . mapper -> k case -> _ = fun sub {c_lhs; c_guard; c_rhs} -> { @@ -477,33 +437,32 @@ let value_binding sub vb = (sub.pat sub vb.vb_pat) (sub.expr sub vb.vb_expr) -let comprehension sub comp_type comp = - let open Jane_syntax.Comprehensions in +let comprehension sub comp = let iterator = function | Texp_comp_range { ident = _; pattern; start ; stop ; direction } -> pattern, - Range { start = sub.expr sub start + Pcomp_range { start = sub.expr sub start ; stop = sub.expr sub stop ; direction } | Texp_comp_in { pattern; sequence } -> sub.pat sub pattern, - In (sub.expr sub sequence) + Pcomp_in (sub.expr sub sequence) in let binding { comp_cb_iterator ; comp_cb_attributes } = let pattern, iterator = iterator comp_cb_iterator in - { pattern - ; iterator - ; attributes = comp_cb_attributes } + { pcomp_cb_pattern = pattern + ; pcomp_cb_iterator = iterator + ; pcomp_cb_attributes = comp_cb_attributes } in let clause = function - | Texp_comp_for bindings -> For (List.map binding bindings) - | Texp_comp_when cond -> When (sub.expr sub cond) + | Texp_comp_for bindings -> Pcomp_for (List.map binding bindings) + | Texp_comp_when cond -> Pcomp_when (sub.expr sub cond) in let comprehension { comp_body; comp_clauses } = - { body = sub.expr sub comp_body - ; clauses = List.map clause comp_clauses } + { pcomp_body = sub.expr sub comp_body + ; pcomp_clauses = List.map clause comp_clauses } in - Jane_syntax.Comprehensions.expr_of (comp_type (comprehension comp)) + comprehension comp let label : Types.arg_label -> Parsetree.arg_label = function (* There is no Position label in the Parsetree, since we parse [%call_pos] @@ -519,24 +478,10 @@ let call_pos_extension = Location.mknoloc "call_pos_extension", PStr [] let expression sub exp = let loc = sub.location sub exp.exp_loc in let attrs = sub.attributes sub exp.exp_attributes in - let attrs = ref attrs in - (* Hack so we can return an extra value out of the [match] expression for Jane - Street internal expressions without needing to modify every case, which - would open us up to more merge conflicts. - *) - let add_jane_syntax_attributes { pexp_attributes; pexp_desc; _ } = - attrs := pexp_attributes @ !attrs; - pexp_desc - in let desc = match exp.exp_desc with Texp_ident (_path, lid, _, _, _) -> Pexp_ident (map_loc sub lid) - | Texp_constant cst -> - begin match constant cst with - | `Parsetree cst -> Pexp_constant cst - | `Jane_syntax cst -> - Jane_syntax.Layouts.expr_of ~loc (Lexp_constant cst) |> add_jane_syntax_attributes - end + | Texp_constant cst -> Pexp_constant (constant cst) | Texp_let (rec_flag, list, exp) -> Pexp_let (rec_flag, List.map (sub.value_binding sub) list, @@ -635,30 +580,21 @@ let expression sub exp = | _, Overridden (lid, exp) -> (lid, sub.expr sub exp) :: l) [] fields in - Pexp_record (list, Option.map (sub.expr sub) extended_expression) - | Texp_field (exp, lid, _label, _) -> + Pexp_record (list, Option.map (fun (exp, _) -> sub.expr sub exp) + extended_expression) + | Texp_field (exp, lid, _label, _, _) -> Pexp_field (sub.expr sub exp, map_loc sub lid) | Texp_setfield (exp1, _, lid, _label, exp2) -> Pexp_setfield (sub.expr sub exp1, map_loc sub lid, sub.expr sub exp2) - | Texp_array (amut, _, list, _) -> begin - (* Can be inlined when we get to upstream immutable arrays *) - let plist = List.map (sub.expr sub) list in - if Types.is_mutable amut then Pexp_array plist - else - Jane_syntax.Immutable_arrays.expr_of - ~loc (Iaexp_immutable_array plist) - |> add_jane_syntax_attributes - end + | Texp_array (amut, _, list, _) -> + Pexp_array (mutable_ amut, List.map (sub.expr sub) list) | Texp_list_comprehension comp -> - comprehension - ~loc sub (fun comp -> Cexp_list_comprehension comp) comp - |> add_jane_syntax_attributes + Pexp_comprehension + (Pcomp_list_comprehension (comprehension sub comp)) | Texp_array_comprehension (amut, _, comp) -> - let amut = mutable_ amut in - comprehension - ~loc sub (fun comp -> Cexp_array_comprehension (amut, comp)) comp - |> add_jane_syntax_attributes + Pexp_comprehension + (Pcomp_array_comprehension (mutable_ amut, comprehension sub comp)) | Texp_ifthenelse (exp1, exp2, expo) -> Pexp_ifthenelse (sub.expr sub exp1, sub.expr sub exp2, @@ -766,7 +702,7 @@ let expression sub exp = Pexp_extension (id, PStr []) in List.fold_right (exp_extra sub) exp.exp_extra - (Exp.mk ~loc ~attrs:!attrs desc) + (Exp.mk ~loc ~attrs desc) let binding_op sub bop pat = let pbop_op = bop.bop_op_name in @@ -787,8 +723,11 @@ let module_type_declaration sub mtd = ?typ:(Option.map (sub.module_type sub) mtd.mtd_type) (map_loc sub mtd.mtd_name) -let signature sub sg = - List.map (sub.signature_item sub) sg.sig_items +let signature sub {sig_items; sig_modalities; sig_sloc} = + let psg_items = List.map (sub.signature_item sub) sig_items in + let psg_modalities = Typemode.untransl_modalities Immutable [] sig_modalities in + let psg_loc = sub.location sub sig_sloc in + {psg_items; psg_modalities; psg_loc} let signature_item sub item = let loc = sub.location sub item.sig_loc in @@ -894,11 +833,8 @@ let module_type (sub : mapper) mty = | Tmty_typeof mexpr -> Mty.mk ~loc ~attrs (Pmty_typeof (sub.module_expr sub mexpr)) | Tmty_strengthen (mtype, _path, lid) -> - Jane_syntax.Module_type.mty_of ~loc ~attrs - (Jane_syntax.Module_type.Jmty_strengthen - { mty = sub.module_type sub mtype; - mod_id = map_loc sub lid - }) + Mty.mk ~loc ~attrs + (Pmty_strengthen (sub.module_type sub mtype, map_loc sub lid)) let with_constraint sub (_path, lid, cstr) = match cstr with @@ -1025,22 +961,9 @@ let class_type_field sub ctf = let core_type sub ct = let loc = sub.location sub ct.ctyp_loc in let attrs = sub.attributes sub ct.ctyp_attributes in - let attrs = ref attrs in - (* Hack so we can return an extra value out of the [match] expression for Jane - Street internal expressions without needing to modify every case, which - would open us up to more merge conflicts. - *) - let add_jane_syntax_attributes { ptyp_attributes; ptyp_desc; _ } = - attrs := ptyp_attributes @ !attrs; - ptyp_desc - in let desc = match ct.ctyp_desc with - | Ttyp_var (None, None) -> Ptyp_any - | Ttyp_var (Some s, None) -> Ptyp_var s - | Ttyp_var (name, Some (_, jkind_annotation)) -> - Jane_syntax.Layouts.type_of ~loc - (Ltyp_var { name; jkind = jkind_annotation }) |> - add_jane_syntax_attributes + | Ttyp_var (None, jkind) -> Ptyp_any (Option.map snd jkind) + | Ttyp_var (Some s, jkind) -> Ptyp_var (s, Option.map snd jkind) | Ttyp_arrow (arg_label, ct1, ct2) -> (* CR cgunn: recover mode annotation here *) Ptyp_arrow (label arg_label, sub.typ sub ct1, sub.typ sub ct2, [], []) @@ -1057,28 +980,21 @@ let core_type sub ct = (List.map (sub.object_field sub) list, o) | Ttyp_class (_path, lid, list) -> Ptyp_class (map_loc sub lid, List.map (sub.typ sub) list) - | Ttyp_alias (ct, Some s, None) -> - Ptyp_alias (sub.typ sub ct, s) - | Ttyp_alias (ct, name, Some (_, jkind_annotation)) -> - Jane_syntax.Layouts.type_of ~loc - (Ltyp_alias { aliased_type = sub.typ sub ct; name; - jkind = jkind_annotation }) |> - add_jane_syntax_attributes | Ttyp_alias (_, None, None) -> - Misc.fatal_error "anonymous alias without layout annotation in Untypeast" + Misc.fatal_error "anonymous alias without layout annotation in Untypeast" + | Ttyp_alias (ct, s, jkind) -> + Ptyp_alias (sub.typ sub ct, s, Option.map snd jkind) | Ttyp_variant (list, bool, labels) -> Ptyp_variant (List.map (sub.row_field sub) list, bool, labels) | Ttyp_poly (list, ct) -> let bound_vars = List.map (var_jkind ~loc) list in - Jane_syntax.Layouts.type_of ~loc - (Ltyp_poly { bound_vars; inner_type = sub.typ sub ct }) |> - add_jane_syntax_attributes + Ptyp_poly (bound_vars, sub.typ sub ct) | Ttyp_package pack -> Ptyp_package (sub.package_type sub pack) | Ttyp_open (_path, mod_ident, t) -> Ptyp_open (mod_ident, sub.typ sub t) | Ttyp_call_pos -> Ptyp_extension call_pos_extension in - Typ.mk ~loc ~attrs:!attrs desc + Typ.mk ~loc ~attrs desc let class_structure sub cs = let rec remove_self = function diff --git a/src/ocaml/typing/value_rec_check.ml b/src/ocaml/typing/value_rec_check.ml index 959b3445f..43b704472 100644 --- a/src/ocaml/typing/value_rec_check.ml +++ b/src/ocaml/typing/value_rec_check.ml @@ -768,7 +768,7 @@ let rec expression : Typedtree.expression -> term_judg = in join [ array field es; - option expression eo << Dereference + option expression (Option.map fst eo) << Dereference ] | Texp_ifthenelse (cond, ifso, ifnot) -> (* @@ -834,7 +834,7 @@ let rec expression : Typedtree.expression -> term_judg = join [ expression e1 << Dereference ] - | Texp_field (e, _, _, _) -> + | Texp_field (e, _, _, _, _) -> (* G |- e: m[Dereference] ----------------------- diff --git a/src/ocaml/utils/language_extension.mli b/src/ocaml/utils/language_extension.mli index 6cacb221e..e69de29bb 100644 --- a/src/ocaml/utils/language_extension.mli +++ b/src/ocaml/utils/language_extension.mli @@ -1,160 +0,0 @@ -(** Language extensions provided by the Jane Street version of the OCaml - compiler. -*) - -(** A setting for extensions that track multiple maturity levels *) -type maturity = Language_extension_kernel.maturity = - | Stable - | Beta - | Alpha - -(** The type of language extensions. An ['a t] is an extension that can either - be off or be set to have any value in ['a], so a [unit t] can be either on - or off, while a [maturity t] can have different maturity settings. *) -type 'a t = 'a Language_extension_kernel.t = - | Comprehensions : unit t - | Mode : maturity t - | Unique : unit t - | Include_functor : unit t - | Polymorphic_parameters : unit t - | Immutable_arrays : unit t - | Module_strengthening : unit t - | Layouts : maturity t - | SIMD : maturity t - | Labeled_tuples : unit t - | Small_numbers : maturity t - | Instances : unit t - -(** Existentially packed language extension *) -module Exist : sig - type 'a extn = 'a t - (* this is removed from the sig by the [with] below; ocamldoc doesn't like - [:=] in sigs *) - - type t = Language_extension_kernel.Exist.t = Pack : 'a extn -> t - - val to_string : t -> string - - val is_enabled : t -> bool - - val is_erasable : t -> bool - - (** Returns a list of all strings, like ["layouts_beta"], that - correspond to this extension. *) - val to_command_line_strings : t -> string list - - val all : t list -end -with type 'a extn := 'a t - -(** Equality on language extensions *) -val equal : 'a t -> 'b t -> bool - -(** The type of language extension universes. Each universe allows a set of - extensions, and every successive universe includes the previous one. - - Each variant corresponds to the [-extension-universe ] CLI flag. - - Each extension universe, except for [No_extensions], should also have - a corresponding library in [otherlibs/]. Those libraries must contain - OCaml code for corresponding extensions that would normally go into Stdlib. -*) -module Universe : sig - type t = - | No_extensions - | Upstream_compatible - (** Upstream compatible extensions, also known as "erasable". *) - | Stable (** Extensions of [Stable] maturity. *) - | Beta (** Extensions of [Beta] maturity. *) - | Alpha - (** All extensions. This is the universe enabled by default - for the time being. *) - - val all : t list - - (** Equal to [Alpha]. *) - val maximal : t - - val to_string : t -> string - - val of_string : string -> t option -end - -(** Disable all extensions *) -val disable_all : unit -> unit - -(** Check if a language extension is "erasable", i.e. whether it can be - harmlessly translated to attributes and compiled with the upstream - compiler. *) -val is_erasable : 'a t -> bool - -(** Print and parse language extensions; parsing is case-insensitive *) -val to_string : 'a t -> string - -val to_command_line_string : 'a t -> 'a -> string - -val of_string : string -> Exist.t option - -val maturity_to_string : maturity -> string - -(** Get the command line string enabling the given extension, if it's - enabled; otherwise None *) -val get_command_line_string_if_enabled : 'a t -> string option - -(** Enable and disable according to command-line strings; these raise - an exception if the input string is invalid. *) -val enable_of_string_exn : string -> unit - -val disable_of_string_exn : string -> unit - -(** Enable and disable language extensions; these operations are idempotent *) -val set : unit t -> enabled:bool -> unit - -val enable : 'a t -> 'a -> unit - -val disable : 'a t -> unit - -(** Check if a language extension is currently enabled (at any maturity level) -*) -val is_enabled : 'a t -> bool - -(** Check if a language extension is enabled at least at the given level *) -val is_at_least : 'a t -> 'a -> bool - -(** Tooling support: Temporarily enable and disable language extensions; these - operations are idempotent. Calls to [set], [enable], [disable] inside the body - of the function argument will also be rolled back when the function finishes, - but this behavior may change; nest multiple [with_*] functions instead. *) -val with_set : unit t -> enabled:bool -> (unit -> unit) -> unit - -val with_enabled : 'a t -> 'a -> (unit -> unit) -> unit - -val with_disabled : 'a t -> (unit -> unit) -> unit - -(** Check if the allowable extensions are restricted to only those that are - "erasable". This is true when the universe is set to [No_extensions] or - [Upstream_compatible]. *) -val erasable_extensions_only : unit -> bool - -(** Set the extension universe and enable all allowed extensions. *) -val set_universe_and_enable_all : Universe.t -> unit - -(** Parse a command-line string and call [set_universe_and_enable_all]. - Raises if the argument is invalid. *) -val set_universe_and_enable_all_of_string_exn : string -> unit - -(**/**) - -(** Special functionality that can only be used in "pprintast.ml" *) -module For_pprintast : sig - (** A function for wrapping a printer from "pprintast.ml" so that it will - unconditionally print Jane Syntax instead of raising an exception when - trying to print syntax from disabled extensions. *) - type printer_exporter = - { print_with_maximal_extensions : - 'a. (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a -> unit - } - - (** Raises if called more than once ever. *) - val make_printer_exporter : unit -> printer_exporter -end diff --git a/src/ocaml/utils/language_extension_kernel.ml b/src/ocaml/utils/language_extension_kernel.ml index 0f56351ef..7d338785e 100644 --- a/src/ocaml/utils/language_extension_kernel.ml +++ b/src/ocaml/utils/language_extension_kernel.ml @@ -1,6 +1,9 @@ -type maturity = Stable | Beta | Alpha +type maturity = + | Stable + | Beta + | Alpha -(* Remember to update [all] when changing this type. *) +(* Remember to update [Language_extension.Exist.all] when changing this type. *) type _ t = | Comprehensions : unit t | Mode : maturity t @@ -15,31 +18,6 @@ type _ t = | Small_numbers : maturity t | Instances : unit t -type 'a language_extension_kernel = 'a t - -module Exist = struct - type t = Pack : _ language_extension_kernel -> t - - let all = - [ Pack Comprehensions - ; Pack Mode - ; Pack Unique - ; Pack Include_functor - ; Pack Polymorphic_parameters - ; Pack Immutable_arrays - ; Pack Module_strengthening - ; Pack Layouts - ; Pack SIMD - ; Pack Labeled_tuples - ; Pack Small_numbers - ; Pack Instances - ] -end - -module Exist_pair = struct - type t = Pair : 'a language_extension_kernel * 'a -> t -end - (* When you update this, update [pair_of_string] below too. *) let to_string : type a. a t -> string = function | Comprehensions -> "comprehensions" @@ -54,71 +32,3 @@ let to_string : type a. a t -> string = function | Labeled_tuples -> "labeled_tuples" | Small_numbers -> "small_numbers" | Instances -> "instances" - -(* converts full extension names, like "layouts_alpha" to a pair of - an extension and its maturity. For extensions that don't take an - argument, the conversion is just [Language_extension_kernel.of_string]. -*) -let pair_of_string extn_name : Exist_pair.t option = - match String.lowercase_ascii extn_name with - | "comprehensions" -> Some (Pair (Comprehensions, ())) - | "mode" -> Some (Pair (Mode, Stable)) - | "mode_beta" -> Some (Pair (Mode, Beta)) - | "mode_alpha" -> Some (Pair (Mode, Alpha)) - | "unique" -> Some (Pair (Unique, ())) - | "include_functor" -> Some (Pair (Include_functor, ())) - | "polymorphic_parameters" -> Some (Pair (Polymorphic_parameters, ())) - | "immutable_arrays" -> Some (Pair (Immutable_arrays, ())) - | "module_strengthening" -> Some (Pair (Module_strengthening, ())) - | "layouts" -> Some (Pair (Layouts, Stable)) - | "layouts_alpha" -> Some (Pair (Layouts, Alpha)) - | "layouts_beta" -> Some (Pair (Layouts, Beta)) - | "simd" -> Some (Pair (SIMD, Stable)) - | "simd_beta" -> Some (Pair (SIMD, Beta)) - | "labeled_tuples" -> Some (Pair (Labeled_tuples, ())) - | "small_numbers" -> Some (Pair (Small_numbers, Stable)) - | "small_numbers_beta" -> Some (Pair (Small_numbers, Beta)) - | "instances" -> Some (Pair (Instances, ())) - | _ -> None - -let maturity_to_string = function - | Alpha -> "alpha" - | Beta -> "beta" - | Stable -> "stable" - -let of_string extn_name : Exist.t option = - match pair_of_string extn_name with - | Some (Pair (ext, _)) -> Some (Pack ext) - | None -> None - -(* We'll do this in a more principled way later. *) -(* CR layouts: Note that layouts is only "mostly" erasable, because of annoying - interactions with the pre-layouts [@@immediate] attribute like: - - type ('a : immediate) t = 'a [@@immediate] - - But we've decided to punt on this issue in the short term. -*) -let is_erasable : type a. a t -> bool = function - | Mode - | Unique - | Layouts -> - true - | Comprehensions - | Include_functor - | Polymorphic_parameters - | Immutable_arrays - | Module_strengthening - | SIMD - | Labeled_tuples - | Small_numbers - | Instances -> - false - -(* See the mli. *) -module type Language_extension_for_jane_syntax = sig - type nonrec 'a t = 'a t - - val is_enabled : _ t -> bool - val is_at_least : 'a t -> 'a -> bool -end diff --git a/src/ocaml/utils/language_extension_kernel.mli b/src/ocaml/utils/language_extension_kernel.mli index 7801452bf..d0a833b05 100644 --- a/src/ocaml/utils/language_extension_kernel.mli +++ b/src/ocaml/utils/language_extension_kernel.mli @@ -1,11 +1,13 @@ (** Language extensions provided by the Jane Street version of the OCaml - compiler. + compiler. These are the parts of [Language_extension] that are required + by [Profile_counters_functions]. Forward declaring these allow us to + avoid a mutual dependency between files in utils/ and parsing/. Such + a dependency prevents Merlin from compiling. *) - This is the signature of the {!Language_extension_kernel} module that is - directly imported into [ppxlib_jane]. -*) - -type maturity = Stable | Beta | Alpha +type maturity = + | Stable + | Beta + | Alpha (** The type of language extensions. An ['a t] is an extension that can either be off or be set to have any value in ['a], so a [unit t] can be either on @@ -24,43 +26,5 @@ type _ t = | Small_numbers : maturity t | Instances : unit t -module Exist : sig - type 'a extn = 'a t - type t = Pack : _ extn -> t - - val all : t list -end with type 'a extn := 'a t - -module Exist_pair : sig - type 'a extn = 'a t - type t = Pair : 'a extn * 'a -> t -end with type 'a extn := 'a t - (** Print and parse language extensions; parsing is case-insensitive *) val to_string : _ t -> string -val of_string : string -> Exist.t option -val pair_of_string : string -> Exist_pair.t option -val maturity_to_string : maturity -> string - -(** Check if a language extension is "erasable", i.e. whether it can be - harmlessly translated to attributes and compiled with the upstream - compiler. *) -val is_erasable : _ t -> bool - -module type Language_extension_for_jane_syntax = sig - (** This module type defines the pieces of functionality used by - {!Jane_syntax_parsing} and {!Jane_syntax} so that we can more easily - import these modules into [ppxlib_jane], without also including all of the - [Language_extension] machinery. - - It includes the stateful operations that {!Jane_syntax_parsing} relies on. - This limits the number of bindings that [ppxlib_jane] needs to have mock - implementations for. - *) - - type nonrec 'a t = 'a t - - (** Check if a language extension is currently enabled. *) - val is_enabled : _ t -> bool - val is_at_least : 'a t -> 'a -> bool -end diff --git a/src/ocaml/utils/profile.ml b/src/ocaml/utils/profile.ml index 75dce84ca..2535a6a56 100644 --- a/src/ocaml/utils/profile.ml +++ b/src/ocaml/utils/profile.ml @@ -154,11 +154,7 @@ let file_prefix = "file=" [Clflags.directory]. let annotate_file_name name = - let file_path = - match !Clflags.directory with - | Some directory -> Filename.concat directory name - | None -> name - in + let file_path = Clflags.prepend_directory name in file_prefix ^ file_path *) From 2aa9ac6131abe4228eabf455687159ffbd1cf295 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 10:37:16 -0500 Subject: [PATCH 04/15] Commit conflicts --- src/ocaml/parsing/ast_helper.ml | 92 ++- src/ocaml/parsing/ast_helper.mli | 51 +- src/ocaml/parsing/language_extension.ml | 544 +++++++++++++++++ src/ocaml/parsing/language_extension.mli | 183 ++++++ src/ocaml/parsing/pprintast.ml | 454 +++++++------- src/ocaml/parsing/pprintast.mli | 7 + src/ocaml/parsing/printast.ml | 137 ++++- src/ocaml/typing/env.ml | 481 +++++++++++++-- src/ocaml/typing/persistent_env.ml | 556 ++++++++++++++++-- .../typing/signature_with_global_bindings.ml | 79 +++ .../typing/signature_with_global_bindings.mli | 54 ++ src/ocaml/typing/typecore.ml | 342 ++++++----- src/ocaml/typing/typecore.ml.rej | 300 ++++++++++ src/ocaml/typing/typemod.ml | 282 ++++----- src/ocaml/typing/typeopt.ml | 96 +-- src/ocaml/typing/untypeast.mli | 7 + .../parsing/language_extension.ml | 544 +++++++++++++++++ .../parsing/language_extension.mli | 183 ++++++ .../typing/signature_with_global_bindings.ml | 79 +++ .../typing/signature_with_global_bindings.mli | 54 ++ 20 files changed, 3802 insertions(+), 723 deletions(-) create mode 100644 src/ocaml/parsing/language_extension.ml create mode 100644 src/ocaml/parsing/language_extension.mli create mode 100644 src/ocaml/typing/signature_with_global_bindings.ml create mode 100644 src/ocaml/typing/signature_with_global_bindings.mli create mode 100644 src/ocaml/typing/typecore.ml.rej create mode 100644 upstream/ocaml_flambda/parsing/language_extension.ml create mode 100644 upstream/ocaml_flambda/parsing/language_extension.mli create mode 100644 upstream/ocaml_flambda/typing/signature_with_global_bindings.ml create mode 100644 upstream/ocaml_flambda/typing/signature_with_global_bindings.mli diff --git a/src/ocaml/parsing/ast_helper.ml b/src/ocaml/parsing/ast_helper.ml index a3fcb8410..dfa86568e 100644 --- a/src/ocaml/parsing/ast_helper.ml +++ b/src/ocaml/parsing/ast_helper.ml @@ -65,15 +65,15 @@ module Typ = struct let attr d a = {d with ptyp_attributes = d.ptyp_attributes @ [a]} - let any ?loc ?attrs () = mk ?loc ?attrs Ptyp_any - let var ?loc ?attrs a = mk ?loc ?attrs (Ptyp_var a) + let any ?loc ?attrs a = mk ?loc ?attrs (Ptyp_any a) + let var ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_var (a, b)) let arrow ?loc ?attrs a b c d e = mk ?loc ?attrs (Ptyp_arrow (a, b, c, d, e)) let tuple ?loc ?attrs a = mk ?loc ?attrs (Ptyp_tuple a) let unboxed_tuple ?loc ?attrs a = mk ?loc ?attrs (Ptyp_unboxed_tuple a) let constr ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_constr (a, b)) let object_ ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_object (a, b)) let class_ ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_class (a, b)) - let alias ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_alias (a, b)) + let alias ?loc ?attrs a b c = mk ?loc ?attrs (Ptyp_alias (a, b, c)) let variant ?loc ?attrs a b c = mk ?loc ?attrs (Ptyp_variant (a, b, c)) let poly ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_poly (a, b)) let package ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_package (a, b)) @@ -88,21 +88,27 @@ module Typ = struct let varify_constructors var_names t = let check_variable vl loc v = if List.mem v vl then +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 raise_error Syntaxerr.(Error(Variable_in_scope(loc,v))) in +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + raise Syntaxerr.(Error(Variable_in_scope(loc,v))) in +======= + raise Syntaxerr.(Error(Variable_in_scope(loc,v))) in + let check_variable_opt vl v = + Option.iter (fun v -> check_variable vl v.loc v.txt) v + in +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a let var_names = List.map Location.get_txt var_names in let rec loop t = let desc = - (* This *ought* to match on [Jane_syntax.Core_type.ast_of] first, but - that would be a dependency cycle -- [Jane_syntax] depends rather - crucially on [Ast_helper]. However, this just recurses looking for - constructors and variables, so it *should* be fine even so. If - Jane-syntax embeddings ever change so that this breaks, we'll need to - resolve this knot. *) match t.ptyp_desc with - | Ptyp_any -> Ptyp_any - | Ptyp_var x -> + | Ptyp_any jkind -> + let jkind = Option.map loop_jkind jkind in + Ptyp_any jkind + | Ptyp_var (x, jkind) -> + let jkind = Option.map loop_jkind jkind in check_variable var_names t.ptyp_loc x; - Ptyp_var x + Ptyp_var (x, jkind) | Ptyp_arrow (label,core_type,core_type',modes,modes') -> Ptyp_arrow(label, loop core_type, loop core_type', modes, modes') | Ptyp_tuple lst -> @@ -111,27 +117,28 @@ module Typ = struct Ptyp_unboxed_tuple (List.map (fun (l, t) -> l, loop t) lst) | Ptyp_constr( { txt = Longident.Lident s }, []) when List.mem s var_names -> - Ptyp_var s + Ptyp_var (s, None) | Ptyp_constr(longident, lst) -> Ptyp_constr(longident, List.map loop lst) | Ptyp_object (lst, o) -> Ptyp_object (List.map loop_object_field lst, o) | Ptyp_class (longident, lst) -> Ptyp_class (longident, List.map loop lst) - (* A Ptyp_alias might be a jkind annotation (that is, it might have - attributes which mean it should be interpreted as a - [Jane_syntax.Layouts.Ltyp_alias]), but the code here still has the - correct behavior. *) - | Ptyp_alias(core_type, alias) -> - check_variable var_names alias.loc alias.txt; - Ptyp_alias(loop core_type, alias) + | Ptyp_alias(core_type, alias, jkind) -> + let jkind = Option.map loop_jkind jkind in + check_variable_opt var_names alias; + Ptyp_alias(loop core_type, alias, jkind) | Ptyp_variant(row_field_list, flag, lbl_lst_option) -> Ptyp_variant(List.map loop_row_field row_field_list, flag, lbl_lst_option) - | Ptyp_poly(string_lst, core_type) -> - List.iter (fun v -> - check_variable var_names t.ptyp_loc v.txt) string_lst; - Ptyp_poly(string_lst, loop core_type) + | Ptyp_poly(var_lst, core_type) -> + let var_lst = + List.map (fun (v, jkind) -> + let jkind = Option.map loop_jkind jkind in + check_variable var_names t.ptyp_loc v.txt; + v, jkind) var_lst + in + Ptyp_poly(var_lst, loop core_type) | Ptyp_package(longident,lst) -> Ptyp_package(longident,List.map (fun (n,typ) -> (n,loop typ) ) lst) | Ptyp_open (mod_ident, core_type) -> @@ -140,6 +147,17 @@ module Typ = struct Ptyp_extension (s, arg) in {t with ptyp_desc = desc} + and loop_jkind jkind = + let pjkind_desc = + match jkind.pjkind_desc with + | Default as x -> x + | Abbreviation _ as x -> x + | Mod (jkind, modes) -> Mod (loop_jkind jkind, modes) + | With (jkind, typ) -> With (loop_jkind jkind, loop typ) + | Kind_of typ -> Kind_of (loop typ) + | Product jkinds -> Product (List.map loop_jkind jkinds) + in + { jkind with pjkind_desc } and loop_row_field field = let prf_desc = match field.prf_desc with | Rtag(label,flag,lst) -> @@ -179,7 +197,7 @@ module Pat = struct let construct ?loc ?attrs a b = mk ?loc ?attrs (Ppat_construct (a, b)) let variant ?loc ?attrs a b = mk ?loc ?attrs (Ppat_variant (a, b)) let record ?loc ?attrs a b = mk ?loc ?attrs (Ppat_record (a, b)) - let array ?loc ?attrs a = mk ?loc ?attrs (Ppat_array a) + let array ?loc ?attrs a b = mk ?loc ?attrs (Ppat_array (a, b)) let or_ ?loc ?attrs a b = mk ?loc ?attrs (Ppat_or (a, b)) let constraint_ ?loc ?attrs a b c = mk ?loc ?attrs (Ppat_constraint (a, b, c)) let type_ ?loc ?attrs a = mk ?loc ?attrs (Ppat_type a) @@ -215,7 +233,7 @@ module Exp = struct let record ?loc ?attrs a b = mk ?loc ?attrs (Pexp_record (a, b)) let field ?loc ?attrs a b = mk ?loc ?attrs (Pexp_field (a, b)) let setfield ?loc ?attrs a b c = mk ?loc ?attrs (Pexp_setfield (a, b, c)) - let array ?loc ?attrs a = mk ?loc ?attrs (Pexp_array a) + let array ?loc ?attrs a b = mk ?loc ?attrs (Pexp_array (a, b)) let ifthenelse ?loc ?attrs a b c = mk ?loc ?attrs (Pexp_ifthenelse (a, b, c)) let sequence ?loc ?attrs a b = mk ?loc ?attrs (Pexp_sequence (a, b)) let while_ ?loc ?attrs a b = mk ?loc ?attrs (Pexp_while (a, b)) @@ -235,7 +253,7 @@ module Exp = struct let lazy_ ?loc ?attrs a = mk ?loc ?attrs (Pexp_lazy a) let poly ?loc ?attrs a b = mk ?loc ?attrs (Pexp_poly (a, b)) let object_ ?loc ?attrs a = mk ?loc ?attrs (Pexp_object a) - let newtype ?loc ?attrs a b = mk ?loc ?attrs (Pexp_newtype (a, b)) + let newtype ?loc ?attrs a b c = mk ?loc ?attrs (Pexp_newtype (a, b, c)) let pack ?loc ?attrs a = mk ?loc ?attrs (Pexp_pack a) let open_ ?loc ?attrs a b = mk ?loc ?attrs (Pexp_open (a, b)) let letop ?loc ?attrs let_ ands body = @@ -243,9 +261,14 @@ module Exp = struct let extension ?loc ?attrs a = mk ?loc ?attrs (Pexp_extension a) let unreachable ?loc ?attrs () = mk ?loc ?attrs Pexp_unreachable let stack ?loc ?attrs e = mk ?loc ?attrs (Pexp_stack e) +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 let hole ?(loc = !default_loc) ?attrs () = let id = Location.mkloc hole_txt loc in mk ~loc ?attrs @@ Pexp_extension (id, PStr []) +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +======= + let comprehension ?loc ?attrs e = mk ?loc ?attrs (Pexp_comprehension e) +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a let case lhs ?guard rhs = { @@ -275,6 +298,7 @@ module Mty = struct let with_ ?loc ?attrs a b = mk ?loc ?attrs (Pmty_with (a, b)) let typeof_ ?loc ?attrs a = mk ?loc ?attrs (Pmty_typeof a) let extension ?loc ?attrs a = mk ?loc ?attrs (Pmty_extension a) + let strengthen ?loc ?attrs a b = mk ?loc ?attrs (Pmty_strengthen (a, b)) end module Mod = struct @@ -291,9 +315,14 @@ module Mod = struct let constraint_ ?loc ?attrs m mty = mk ?loc ?attrs (Pmod_constraint (m, mty)) let unpack ?loc ?attrs e = mk ?loc ?attrs (Pmod_unpack e) let extension ?loc ?attrs a = mk ?loc ?attrs (Pmod_extension a) +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 let hole ?(loc = !default_loc) ?attrs () = let id = Location.mkloc hole_txt loc in mk ~loc ?attrs @@ Pmod_extension (id, PStr []) +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +======= + let instance ?loc ?attrs a = mk ?loc ?attrs (Pmod_instance a) +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a end module Sig = struct @@ -314,6 +343,7 @@ module Sig = struct let class_ ?loc a = mk ?loc (Psig_class a) let class_type ?loc a = mk ?loc (Psig_class_type a) let extension ?loc ?(attrs = []) a = mk ?loc (Psig_extension (a, attrs)) + let kind_abbrev ?loc a b = mk ?loc (Psig_kind_abbrev (a, b)) let attribute ?loc a = mk ?loc (Psig_attribute a) let text txt = let f_txt = List.filter (fun ds -> docstring_body ds <> "") txt in @@ -322,6 +352,11 @@ module Sig = struct f_txt end +module Sg = struct + let mk ?(loc = !default_loc) ?(modalities = []) a = + {psg_items = a; psg_modalities = modalities; psg_loc = loc} +end + module Str = struct let mk ?(loc = !default_loc) d = {pstr_desc = d; pstr_loc = loc} @@ -339,6 +374,7 @@ module Str = struct let class_type ?loc a = mk ?loc (Pstr_class_type a) let include_ ?loc a = mk ?loc (Pstr_include a) let extension ?loc ?(attrs = []) a = mk ?loc (Pstr_extension (a, attrs)) + let kind_abbrev ?loc a b = mk ?loc (Pstr_kind_abbrev (a, b)) let attribute ?loc a = mk ?loc (Pstr_attribute a) let text txt = let f_txt = List.filter (fun ds -> docstring_body ds <> "") txt in @@ -557,6 +593,7 @@ module Type = struct ?(kind = Ptype_abstract) ?(priv = Public) ?manifest + ?jkind_annotation name = { ptype_name = name; @@ -566,6 +603,7 @@ module Type = struct ptype_private = priv; ptype_manifest = manifest; ptype_attributes = add_text_attrs text (add_docs_attrs docs attrs); + ptype_jkind_annotation = jkind_annotation; ptype_loc = loc; } diff --git a/src/ocaml/parsing/ast_helper.mli b/src/ocaml/parsing/ast_helper.mli index b1651f729..2b0b59148 100644 --- a/src/ocaml/parsing/ast_helper.mli +++ b/src/ocaml/parsing/ast_helper.mli @@ -72,8 +72,9 @@ module Typ : val mk: ?loc:loc -> ?attrs:attrs -> core_type_desc -> core_type val attr: core_type -> attribute -> core_type - val any: ?loc:loc -> ?attrs:attrs -> unit -> core_type - val var: ?loc:loc -> ?attrs:attrs -> string -> core_type + val any: ?loc:loc -> ?attrs:attrs -> jkind_annotation option -> core_type + val var: ?loc:loc -> ?attrs:attrs -> string -> jkind_annotation option + -> core_type val arrow: ?loc:loc -> ?attrs:attrs -> arg_label -> core_type -> core_type -> mode with_loc list -> mode with_loc list -> core_type val tuple: ?loc:loc -> ?attrs:attrs -> (string option * core_type) list -> core_type @@ -83,11 +84,13 @@ module Typ : val object_: ?loc:loc -> ?attrs:attrs -> object_field list -> closed_flag -> core_type val class_: ?loc:loc -> ?attrs:attrs -> lid -> core_type list -> core_type - val alias: ?loc:loc -> ?attrs:attrs -> core_type -> string with_loc - -> core_type + val alias: ?loc:loc -> ?attrs:attrs -> core_type -> string with_loc option + -> jkind_annotation option -> core_type + (* Invariant: One of the options must be [Some]. *) val variant: ?loc:loc -> ?attrs:attrs -> row_field list -> closed_flag -> label list option -> core_type - val poly: ?loc:loc -> ?attrs:attrs -> str list -> core_type -> core_type + val poly: ?loc:loc -> ?attrs:attrs -> + (str * jkind_annotation option) list -> core_type -> core_type val package: ?loc:loc -> ?attrs:attrs -> lid -> (lid * core_type) list -> core_type val open_ : ?loc:loc -> ?attrs:attrs -> lid -> core_type -> core_type @@ -127,7 +130,8 @@ module Pat: val variant: ?loc:loc -> ?attrs:attrs -> label -> pattern option -> pattern val record: ?loc:loc -> ?attrs:attrs -> (lid * pattern) list -> closed_flag -> pattern - val array: ?loc:loc -> ?attrs:attrs -> pattern list -> pattern + val array: ?loc:loc -> ?attrs:attrs -> mutable_flag -> pattern list -> + pattern val or_: ?loc:loc -> ?attrs:attrs -> pattern -> pattern -> pattern val constraint_: ?loc:loc -> ?attrs:attrs -> pattern -> core_type option -> mode with_loc list -> pattern @@ -169,7 +173,8 @@ module Exp: val field: ?loc:loc -> ?attrs:attrs -> expression -> lid -> expression val setfield: ?loc:loc -> ?attrs:attrs -> expression -> lid -> expression -> expression - val array: ?loc:loc -> ?attrs:attrs -> expression list -> expression + val array: ?loc:loc -> ?attrs:attrs -> mutable_flag -> expression list -> + expression val ifthenelse: ?loc:loc -> ?attrs:attrs -> expression -> expression -> expression option -> expression val sequence: ?loc:loc -> ?attrs:attrs -> expression -> expression @@ -199,7 +204,8 @@ module Exp: val poly: ?loc:loc -> ?attrs:attrs -> expression -> core_type option -> expression val object_: ?loc:loc -> ?attrs:attrs -> class_structure -> expression - val newtype: ?loc:loc -> ?attrs:attrs -> str -> expression -> expression + val newtype: ?loc:loc -> ?attrs:attrs -> str -> jkind_annotation option -> + expression -> expression val pack: ?loc:loc -> ?attrs:attrs -> module_expr -> expression val open_: ?loc:loc -> ?attrs:attrs -> open_declaration -> expression -> expression @@ -208,6 +214,8 @@ module Exp: val extension: ?loc:loc -> ?attrs:attrs -> extension -> expression val unreachable: ?loc:loc -> ?attrs:attrs -> unit -> expression val stack : ?loc:loc -> ?attrs:attrs -> expression -> expression + val comprehension : + ?loc:loc -> ?attrs:attrs -> comprehension_expression -> expression val case: pattern -> ?guard:expression -> expression -> case val binding_op: str -> pattern -> expression -> loc -> binding_op @@ -227,11 +235,14 @@ module Type: val mk: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?text:text -> ?params:(core_type * (variance * injectivity)) list -> ?cstrs:(core_type * core_type * loc) list -> - ?kind:type_kind -> ?priv:private_flag -> ?manifest:core_type -> str -> + ?kind:type_kind -> ?priv:private_flag -> ?manifest:core_type -> + ?jkind_annotation:jkind_annotation -> + str -> type_declaration val constructor: ?loc:loc -> ?attrs:attrs -> ?info:info -> - ?vars:str list -> ?args:constructor_arguments -> ?res:core_type -> + ?vars:(str * jkind_annotation option) list -> + ?args:constructor_arguments -> ?res:core_type -> str -> constructor_declaration @@ -257,7 +268,8 @@ module Te: str -> extension_constructor_kind -> extension_constructor val decl: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?info:info -> - ?vars:str list -> ?args:constructor_arguments -> ?res:core_type -> + ?vars:(str * jkind_annotation option) list -> + ?args:constructor_arguments -> ?res:core_type -> str -> extension_constructor val rebind: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?info:info -> @@ -281,6 +293,8 @@ module Mty: with_constraint list -> module_type val typeof_: ?loc:loc -> ?attrs:attrs -> module_expr -> module_type val extension: ?loc:loc -> ?attrs:attrs -> extension -> module_type + val strengthen: ?loc:loc -> ?attrs:attrs -> module_type -> lid -> + module_type end (** Module expressions *) @@ -300,7 +314,12 @@ module Mod: module_expr val unpack: ?loc:loc -> ?attrs:attrs -> expression -> module_expr val extension: ?loc:loc -> ?attrs:attrs -> extension -> module_expr +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 val hole: ?loc:loc -> ?attrs:attrs -> unit -> module_expr +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +======= + val instance: ?loc:loc -> ?attrs:attrs -> module_instance -> module_expr +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a end (** Signature items *) @@ -325,9 +344,17 @@ module Sig: val class_type: ?loc:loc -> class_type_declaration list -> signature_item val extension: ?loc:loc -> ?attrs:attrs -> extension -> signature_item val attribute: ?loc:loc -> attribute -> signature_item + val kind_abbrev: ?loc:loc -> label with_loc -> jkind_annotation -> + signature_item val text: text -> signature_item list end +module Sg: + sig + val mk : ?loc:loc -> ?modalities:modality with_loc list -> + signature_item list -> signature + end + (** Structure items *) module Str: sig @@ -347,6 +374,8 @@ module Str: val class_type: ?loc:loc -> class_type_declaration list -> structure_item val include_: ?loc:loc -> include_declaration -> structure_item val extension: ?loc:loc -> ?attrs:attrs -> extension -> structure_item + val kind_abbrev: ?loc:loc -> label with_loc -> jkind_annotation -> + structure_item val attribute: ?loc:loc -> attribute -> structure_item val text: text -> structure_item list end diff --git a/src/ocaml/parsing/language_extension.ml b/src/ocaml/parsing/language_extension.ml new file mode 100644 index 000000000..b0af2e23a --- /dev/null +++ b/src/ocaml/parsing/language_extension.ml @@ -0,0 +1,544 @@ +include Language_extension_kernel + +type 'a language_extension = 'a t + +(* operations we want on every extension level *) +module type Extension_level = sig + type t + + val compare : t -> t -> int + + val max : t -> t -> t + + val max_value : t + + val all : t list + + val to_command_line_suffix : t -> string +end + +module Unit = struct + type t = unit + + let compare = Unit.compare + + let max _ _ = () + + let max_value = () + + let all = [()] + + let to_command_line_suffix () = "" +end + +module Maturity = struct + type t = maturity = + | Stable + | Beta + | Alpha + + let compare t1 t2 = + let rank = function Stable -> 1 | Beta -> 2 | Alpha -> 3 in + compare (rank t1) (rank t2) + + let max t1 t2 = if compare t1 t2 >= 0 then t1 else t2 + + let max_value = Alpha + + let all = [Stable; Beta; Alpha] + + let to_command_line_suffix = function + | Stable -> "" + | Beta -> "_beta" + | Alpha -> "_alpha" +end + +let maturity_to_string = function + | Alpha -> "alpha" + | Beta -> "beta" + | Stable -> "stable" + +let get_level_ops : type a. a t -> (module Extension_level with type t = a) = + function + | Comprehensions -> (module Unit) + | Mode -> (module Maturity) + | Unique -> (module Unit) + | Include_functor -> (module Unit) + | Polymorphic_parameters -> (module Unit) + | Immutable_arrays -> (module Unit) + | Module_strengthening -> (module Unit) + | Layouts -> (module Maturity) + | SIMD -> (module Maturity) + | Labeled_tuples -> (module Unit) + | Small_numbers -> (module Maturity) + | Instances -> (module Unit) + +(* We'll do this in a more principled way later. *) +(* CR layouts: Note that layouts is only "mostly" erasable, because of annoying + interactions with the pre-layouts [@@immediate] attribute like: + + type ('a : immediate) t = 'a [@@immediate] + + But we've decided to punt on this issue in the short term. +*) +let is_erasable : type a. a t -> bool = function + | Mode | Unique | Layouts -> true + | Comprehensions | Include_functor | Polymorphic_parameters | Immutable_arrays + | Module_strengthening | SIMD | Labeled_tuples | Small_numbers | Instances -> + false + +module Exist_pair = struct + type t = Pair : 'a language_extension * 'a -> t + + let maturity : t -> Maturity.t = function + | Pair (Comprehensions, ()) -> Beta + | Pair (Mode, m) -> m + | Pair (Unique, ()) -> Alpha + | Pair (Include_functor, ()) -> Stable + | Pair (Polymorphic_parameters, ()) -> Stable + | Pair (Immutable_arrays, ()) -> Stable + | Pair (Module_strengthening, ()) -> Stable + | Pair (Layouts, m) -> m + | Pair (SIMD, m) -> m + | Pair (Labeled_tuples, ()) -> Stable + | Pair (Small_numbers, m) -> m + | Pair (Instances, ()) -> Stable + + let is_erasable : t -> bool = function Pair (ext, _) -> is_erasable ext + + let to_string = function + | Pair (Layouts, m) -> to_string Layouts ^ "_" ^ maturity_to_string m + | Pair (Mode, m) -> to_string Mode ^ "_" ^ maturity_to_string m + | Pair (Small_numbers, m) -> + to_string Small_numbers ^ "_" ^ maturity_to_string m + | Pair (SIMD, m) -> to_string SIMD ^ "_" ^ maturity_to_string m + | Pair + ( (( Comprehensions | Unique | Include_functor | Polymorphic_parameters + | Immutable_arrays | Module_strengthening | Labeled_tuples + | Instances ) as ext), + _ ) -> + to_string ext + + (* converts full extension names, like "layouts_alpha" to a pair of + an extension and its maturity. For extensions that don't take an + argument, the conversion is just [Language_extension_kernel.of_string]. + *) + let of_string extn_name : t option = + match String.lowercase_ascii extn_name with + | "comprehensions" -> Some (Pair (Comprehensions, ())) + | "mode" -> Some (Pair (Mode, Stable)) + | "mode_beta" -> Some (Pair (Mode, Beta)) + | "mode_alpha" -> Some (Pair (Mode, Alpha)) + | "unique" -> Some (Pair (Unique, ())) + | "include_functor" -> Some (Pair (Include_functor, ())) + | "polymorphic_parameters" -> Some (Pair (Polymorphic_parameters, ())) + | "immutable_arrays" -> Some (Pair (Immutable_arrays, ())) + | "module_strengthening" -> Some (Pair (Module_strengthening, ())) + | "layouts" -> Some (Pair (Layouts, Stable)) + | "layouts_alpha" -> Some (Pair (Layouts, Alpha)) + | "layouts_beta" -> Some (Pair (Layouts, Beta)) + | "simd" -> Some (Pair (SIMD, Stable)) + | "simd_beta" -> Some (Pair (SIMD, Beta)) + | "labeled_tuples" -> Some (Pair (Labeled_tuples, ())) + | "small_numbers" -> Some (Pair (Small_numbers, Stable)) + | "small_numbers_beta" -> Some (Pair (Small_numbers, Beta)) + | "instances" -> Some (Pair (Instances, ())) + | _ -> None +end + +type extn_pair = Exist_pair.t = Pair : 'a t * 'a -> extn_pair + +type exist = Pack : _ t -> exist + +let all_extensions = + [ Pack Comprehensions; + Pack Mode; + Pack Unique; + Pack Include_functor; + Pack Polymorphic_parameters; + Pack Immutable_arrays; + Pack Module_strengthening; + Pack Layouts; + Pack SIMD; + Pack Labeled_tuples; + Pack Small_numbers; + Pack Instances ] + +(**********************************) +(* string conversions *) + +let to_command_line_string : type a. a t -> a -> string = + fun extn level -> + let (module Ops) = get_level_ops extn in + to_string extn ^ Ops.to_command_line_suffix level + +let pair_of_string_exn extn_name = + match Exist_pair.of_string extn_name with + | Some pair -> pair + | None -> + raise (Arg.Bad (Printf.sprintf "Extension %s is not known" extn_name)) + +let of_string extn_name : exist option = + match Exist_pair.of_string extn_name with + | Some (Pair (ext, _)) -> Some (Pack ext) + | None -> None + +(************************************) +(* equality *) + +let equal_t (type a b) (a : a t) (b : b t) : (a, b) Misc.eq option = + match a, b with + | Comprehensions, Comprehensions -> Some Refl + | Mode, Mode -> Some Refl + | Unique, Unique -> Some Refl + | Include_functor, Include_functor -> Some Refl + | Polymorphic_parameters, Polymorphic_parameters -> Some Refl + | Immutable_arrays, Immutable_arrays -> Some Refl + | Module_strengthening, Module_strengthening -> Some Refl + | Layouts, Layouts -> Some Refl + | SIMD, SIMD -> Some Refl + | Labeled_tuples, Labeled_tuples -> Some Refl + | Small_numbers, Small_numbers -> Some Refl + | Instances, Instances -> Some Refl + | ( ( Comprehensions | Mode | Unique | Include_functor + | Polymorphic_parameters | Immutable_arrays | Module_strengthening + | Layouts | SIMD | Labeled_tuples | Small_numbers | Instances ), + _ ) -> + None + +let equal a b = Option.is_some (equal_t a b) + +(*****************************) +(* extension universes *) + +module Universe : sig + type t = + | No_extensions + | Upstream_compatible + | Stable + | Beta + | Alpha + + val all : t list + + val maximal : t + + val to_string : t -> string + + val of_string : string -> t option + + val get : unit -> t + + val set : t -> unit + + val is : t -> bool + + val check : extn_pair -> unit + + (* Allowed extensions, each with the greatest allowed level. *) + val allowed_extensions_in : t -> extn_pair list +end = struct + (** Which extensions can be enabled? *) + type t = + | No_extensions + | Upstream_compatible + | Stable + | Beta + | Alpha + (* If you add a constructor, you should also add it to [all]. *) + + let all = [No_extensions; Upstream_compatible; Stable; Beta; Alpha] + + let maximal = Alpha + + let to_string = function + | No_extensions -> "no_extensions" + | Upstream_compatible -> "upstream_compatible" + | Stable -> "stable" + | Beta -> "beta" + | Alpha -> "alpha" + + let of_string = function + | "no_extensions" -> Some No_extensions + | "upstream_compatible" -> Some Upstream_compatible + | "stable" -> Some Stable + | "beta" -> Some Beta + | "alpha" -> Some Alpha + | _ -> None + + let compare t1 t2 = + let rank = function + | No_extensions -> 0 + | Upstream_compatible -> 1 + | Stable -> 2 + | Beta -> 3 + | Alpha -> 4 + in + compare (rank t1) (rank t2) + + (* For now, the default universe is set to [Alpha] but only a limited set of + extensions is enabled. After the migration to extension universes, the + default will be [No_extensions]. *) + let universe = ref Alpha + + let get () = !universe + + let set new_universe = universe := new_universe + + let is u = compare u !universe = 0 + + let compiler_options = function + | No_extensions -> "flag -extension-universe no_extensions" + | Upstream_compatible -> "flag -extension-universe upstream_compatible" + | Stable -> "flag -extension-universe stable" + | Beta -> "flag -extension-universe beta" + | Alpha -> "flag -extension-universe alpha (default CLI option)" + + let is_allowed_in t extn_pair = + match t with + | No_extensions -> false + | Upstream_compatible -> + Exist_pair.is_erasable extn_pair + && Maturity.compare (Exist_pair.maturity extn_pair) Stable <= 0 + | Stable -> Maturity.compare (Exist_pair.maturity extn_pair) Stable <= 0 + | Beta -> Maturity.compare (Exist_pair.maturity extn_pair) Beta <= 0 + | Alpha -> true + + let is_allowed extn_pair = is_allowed_in !universe extn_pair + + (* The terminating [()] argument helps protect against ignored arguments. See + the documentation for [Base.failwithf]. *) + let fail fmt = Format.ksprintf (fun str () -> raise (Arg.Bad str)) fmt + + let check extn_pair = + if not (is_allowed extn_pair) + then + fail "Cannot enable extension %s: incompatible with %s" + (Exist_pair.to_string extn_pair) + (compiler_options !universe) + () + + let allowed_extensions_in t = + let maximal_in_universe (Pack extn) = + let (module Ops) = get_level_ops extn in + let allowed_levels = + Ops.all |> List.filter (fun lvl -> is_allowed_in t (Pair (extn, lvl))) + in + match allowed_levels with + | [] -> None + | lvl :: lvls -> + let max_allowed_lvl = List.fold_left Ops.max lvl lvls in + Some (Pair (extn, max_allowed_lvl)) + in + List.filter_map maximal_in_universe all_extensions +end + +(*****************************************) +(* enabling / disabling *) + +(* Mutable state. Invariants: + + (1) [!extensions] contains at most one copy of each extension. + + (2) Every member of [!extensions] satisfies [Universe.is_allowed]. (For + instance, [!universe = No_extensions] implies [!extensions = []]). *) + +(* After the migration to extension universes, this will be an empty list. *) +let legacy_default_extensions : extn_pair list = + Universe.allowed_extensions_in Stable + +let extensions : extn_pair list ref = ref legacy_default_extensions + +let set_worker (type a) (extn : a t) = function + | Some value -> + Universe.check (Pair (extn, value)); + let (module Ops) = get_level_ops extn in + let rec update_extensions already_seen : extn_pair list -> extn_pair list = + function + | [] -> Pair (extn, value) :: already_seen + | (Pair (extn', v) as e) :: es -> ( + match equal_t extn extn' with + | None -> update_extensions (e :: already_seen) es + | Some Refl -> + Pair (extn, Ops.max v value) :: List.rev_append already_seen es) + in + extensions := update_extensions [] !extensions + | None -> + extensions + := List.filter + (fun (Pair (extn', _) : extn_pair) -> not (equal extn extn')) + !extensions + +let set extn ~enabled = set_worker extn (if enabled then Some () else None) + +let enable extn value = set_worker extn (Some value) + +let disable extn = set_worker extn None + +(* This is similar to [Misc.protect_refs], but we don't have values to set + [extensions] to. *) +let with_temporary_extensions f = + let current_extensions = !extensions in + Fun.protect ~finally:(fun () -> extensions := current_extensions) f + +(* It might make sense to ban [set], [enable], [disable], + [only_erasable_extensions], and [disallow_extensions] inside [f], but it's + not clear that it's worth the hassle *) +let with_set_worker extn value f = + with_temporary_extensions (fun () -> + set_worker extn value; + f ()) + +let with_set extn ~enabled = + with_set_worker extn (if enabled then Some () else None) + +let with_enabled extn value = with_set_worker extn (Some value) + +let with_disabled extn = with_set_worker extn None + +let enable_of_string_exn extn_name = + match pair_of_string_exn extn_name with + | Pair (extn, setting) -> enable extn setting + +let disable_of_string_exn extn_name = + match pair_of_string_exn extn_name with Pair (extn, _) -> disable extn + +let disable_all () = extensions := [] + +let unconditionally_enable_maximal_without_checks () = + let maximal_pair (Pack extn) = + let (module Ops) = get_level_ops extn in + Pair (extn, Ops.max_value) + in + extensions := List.map maximal_pair all_extensions + +let erasable_extensions_only () = + Universe.is No_extensions || Universe.is Upstream_compatible + +let set_universe_and_enable_all u = + Universe.set u; + extensions := Universe.allowed_extensions_in (Universe.get ()) + +let set_universe_and_enable_all_of_string_exn univ_name = + match Universe.of_string univ_name with + | Some u -> set_universe_and_enable_all u + | None -> + raise (Arg.Bad (Printf.sprintf "Universe %s is not known" univ_name)) + +(********************************************) +(* checking an extension *) + +let is_at_least (type a) (extn : a t) (value : a) = + let rec check : extn_pair list -> bool = function + | [] -> false + | Pair (e, v) :: es -> ( + let (module Ops) = get_level_ops e in + match equal_t e extn with + | Some Refl -> Ops.compare v value >= 0 + | None -> check es) + in + check !extensions + +let is_enabled extn = + let rec check : extn_pair list -> bool = function + | [] -> false + | Pair (e, _) :: _ when equal e extn -> true + | _ :: es -> check es + in + check !extensions + +let get_command_line_string_if_enabled extn = + let rec find = function + | [] -> None + | Pair (e, v) :: _ when equal e extn -> Some (to_command_line_string e v) + | _ :: es -> find es + in + find !extensions + +(********************************************) +(* existentially packed extension *) + +module Exist = struct + type t = exist = Pack : _ language_extension -> t + + let all = all_extensions + + let to_command_line_strings (Pack extn) = + let (module Ops) = get_level_ops extn in + List.map (to_command_line_string extn) Ops.all + + let to_string : t -> string = function Pack extn -> to_string extn + + let is_enabled : t -> bool = function Pack extn -> is_enabled extn + + let is_erasable : t -> bool = function Pack extn -> is_erasable extn +end + +module Error = struct + type error = + | Disabled_extension : + { ext : _ t; + maturity : maturity option + } + -> error + + let report_error ~loc = function + | Disabled_extension { ext; maturity } -> ( + (* CR layouts: The [maturity] special case is a bit ad-hoc, but the + layouts error message would be much worse without it. It also would be + nice to mention the language construct in the error message. *) + match maturity with + | None -> + Location.errorf ~loc + "The extension \"%s\" is disabled and cannot be used" (to_string ext) + | Some maturity -> + Location.errorf ~loc + "This construct requires the %s version of the extension \"%s\", \ + which is disabled and cannot be used" + (maturity_to_string maturity) + (to_string ext)) + + exception Error of Location.t * error + + let () = + Location.register_error_of_exn (function + | Error (loc, err) -> Some (report_error ~loc err) + | _ -> None) +end + +let assert_enabled (type a) ~loc (t : a t) (setting : a) = + if not (is_at_least t setting) + then + let maturity : maturity option = + match t with Layouts -> Some (setting : maturity) | _ -> None + in + raise (Error.Error (loc, Disabled_extension { ext = t; maturity })) + +(********************************************) +(* Special functionality for [Pprintast] *) + +module For_pprintast = struct + type printer_exporter = + { print_with_maximal_extensions : + 'a. (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a -> unit + } + + let can_still_define_printers = ref true + + let make_printer_exporter () = + if !can_still_define_printers + then ( + can_still_define_printers := false; + { print_with_maximal_extensions = + (fun pp fmt item -> + with_temporary_extensions (fun () -> + (* It's safe to call this here without validating that the + extensions are enabled, because the [Pprintast] printers + should always print Jane syntax. *) + unconditionally_enable_maximal_without_checks (); + pp fmt item)) + }) + else + Misc.fatal_error + "Only Pprintast may use [Language_extension.For_pprintast]" +end diff --git a/src/ocaml/parsing/language_extension.mli b/src/ocaml/parsing/language_extension.mli new file mode 100644 index 000000000..d3d0c15cc --- /dev/null +++ b/src/ocaml/parsing/language_extension.mli @@ -0,0 +1,183 @@ +(** Language extensions provided by the Jane Street version of the OCaml + compiler. +*) + +(** A setting for extensions that track multiple maturity levels *) +type maturity = Language_extension_kernel.maturity = + | Stable + | Beta + | Alpha + +module Maturity : sig + (* Maturities are ordered such that the most experimental (Alpha) is + greatest *) + val max : maturity -> maturity -> maturity +end + +(** The type of language extensions. An ['a t] is an extension that can either + be off or be set to have any value in ['a], so a [unit t] can be either on + or off, while a [maturity t] can have different maturity settings. *) +type 'a t = 'a Language_extension_kernel.t = + | Comprehensions : unit t + | Mode : maturity t + | Unique : unit t + | Include_functor : unit t + | Polymorphic_parameters : unit t + | Immutable_arrays : unit t + | Module_strengthening : unit t + | Layouts : maturity t + | SIMD : maturity t + | Labeled_tuples : unit t + | Small_numbers : maturity t + | Instances : unit t + +(** Require that an extension is enabled for at least the provided level, or + else throw an exception at the provided location saying otherwise. *) +val assert_enabled : loc:Location.t -> 'a t -> 'a -> unit + +(** Existentially packed language extension *) +module Exist : sig + type 'a extn = 'a t + (* this is removed from the sig by the [with] below; ocamldoc doesn't like + [:=] in sigs *) + + type t = Pack : 'a extn -> t + + val to_string : t -> string + + val is_enabled : t -> bool + + val is_erasable : t -> bool + + (** Returns a list of all strings, like ["layouts_beta"], that + correspond to this extension. *) + val to_command_line_strings : t -> string list + + val all : t list +end +with type 'a extn := 'a t + +(** Equality on language extensions *) +val equal : 'a t -> 'b t -> bool + +(** The type of language extension universes. Each universe allows a set of + extensions, and every successive universe includes the previous one. + + Each variant corresponds to the [-extension-universe ] CLI flag. + + Each extension universe, except for [No_extensions], should also have + a corresponding library in [otherlibs/]. Those libraries must contain + OCaml code for corresponding extensions that would normally go into Stdlib. +*) +module Universe : sig + type t = + | No_extensions + | Upstream_compatible + (** Upstream compatible extensions, also known as "erasable". *) + | Stable (** Extensions of [Stable] maturity. *) + | Beta (** Extensions of [Beta] maturity. *) + | Alpha + (** All extensions. This is the universe enabled by default + for the time being. *) + + val all : t list + + (** Equal to [Alpha]. *) + val maximal : t + + val to_string : t -> string + + val of_string : string -> t option +end + +(** Disable all extensions *) +val disable_all : unit -> unit + +(** Check if a language extension is "erasable", i.e. whether it can be + harmlessly translated to attributes and compiled with the upstream + compiler. *) +val is_erasable : 'a t -> bool + +(** Print and parse language extensions; parsing is case-insensitive *) +val to_string : 'a t -> string + +val to_command_line_string : 'a t -> 'a -> string + +val of_string : string -> Exist.t option + +val maturity_to_string : maturity -> string + +(** Get the command line string enabling the given extension, if it's + enabled; otherwise None *) +val get_command_line_string_if_enabled : 'a t -> string option + +(** Enable and disable according to command-line strings; these raise + an exception if the input string is invalid. *) +val enable_of_string_exn : string -> unit + +val disable_of_string_exn : string -> unit + +(** Enable and disable language extensions; these operations are idempotent *) +val set : unit t -> enabled:bool -> unit + +val enable : 'a t -> 'a -> unit + +val disable : 'a t -> unit + +(** Check if a language extension is currently enabled (at any maturity level) +*) +val is_enabled : 'a t -> bool + +(** Check if a language extension is enabled at least at the given level *) +val is_at_least : 'a t -> 'a -> bool + +(** Tooling support: Temporarily enable and disable language extensions; these + operations are idempotent. Calls to [set], [enable], [disable] inside the body + of the function argument will also be rolled back when the function finishes, + but this behavior may change; nest multiple [with_*] functions instead. *) +val with_set : unit t -> enabled:bool -> (unit -> unit) -> unit + +val with_enabled : 'a t -> 'a -> (unit -> unit) -> unit + +val with_disabled : 'a t -> (unit -> unit) -> unit + +(** Check if the allowable extensions are restricted to only those that are + "erasable". This is true when the universe is set to [No_extensions] or + [Upstream_compatible]. *) +val erasable_extensions_only : unit -> bool + +(** Set the extension universe and enable all allowed extensions. *) +val set_universe_and_enable_all : Universe.t -> unit + +(** Parse a command-line string and call [set_universe_and_enable_all]. + Raises if the argument is invalid. *) +val set_universe_and_enable_all_of_string_exn : string -> unit + +(**/**) + +(** Special functionality that can only be used in "pprintast.ml" *) +module For_pprintast : sig + (** A function for wrapping a printer from "pprintast.ml" so that it will + unconditionally print Jane Syntax instead of raising an exception when + trying to print syntax from disabled extensions. *) + type printer_exporter = + { print_with_maximal_extensions : + 'a. (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a -> unit + } + + (** Raises if called more than once ever. *) + val make_printer_exporter : unit -> printer_exporter +end + +(** Expose the exception type raised by [assert_extension_enabled] to help + the exception printer. *) +module Error : sig + type error = private + | Disabled_extension : + { ext : _ t; + maturity : maturity option + } + -> error + + type exn += private Error of Location.t * error +end diff --git a/src/ocaml/parsing/pprintast.ml b/src/ocaml/parsing/pprintast.ml index 266dfab0d..7ce892215 100644 --- a/src/ocaml/parsing/pprintast.ml +++ b/src/ocaml/parsing/pprintast.ml @@ -116,7 +116,7 @@ let protect_longident ppf print_longident longprefix txt = fprintf ppf "%a.(%s)" print_longident longprefix txt let is_curry_attr attr = - attr.attr_name.txt = Jane_syntax.Arrow_curry.curry_attr_name + attr.attr_name.txt = Builtin_attributes.curry_attr_name let filter_curry_attrs attrs = List.filter (fun attr -> not (is_curry_attr attr)) attrs @@ -257,6 +257,13 @@ let constant f = function paren (first_is '-' i) (fun f -> pp f "%s") f i | Pconst_float (i, Some m) -> paren (first_is '-' i) (fun f (i,m) -> pp f "%s%c" i m) f (i,m) + | Pconst_unboxed_float (x, None) -> + paren (first_is '-' x) (fun f -> pp f "%s") f + (Misc.format_as_unboxed_literal x) + | Pconst_unboxed_float (x, Some suffix) + | Pconst_unboxed_integer (x, suffix) -> + paren (first_is '-' x) (fun f (x, suffix) -> pp f "%s%c" x suffix) f + (Misc.format_as_unboxed_literal x, suffix) (* trailing space*) let mutable_flag f = function @@ -303,7 +310,6 @@ let tyvar ppf s = let string_loc ppf x = fprintf ppf "%s" x.txt -let tyvar_loc f str = tyvar f str.txt let string_quot f x = pp f "`%a" ident_of_name x (* legacy modes and modalities *) @@ -373,10 +379,19 @@ let modality f m = let modalities f m = pp_print_list ~pp_sep:(fun f () -> pp f " ") modality f m -let optional_atat_modalities f m = +let optional_atat_modalities ?(pre = fun _ () -> ()) ?(post = fun _ () -> ()) f m = match m with | [] -> () - | m -> pp f " %@%@ %a" modalities m + | m -> + pre f (); + pp f "%@%@ %a" modalities m; + post f () + +let optional_space_atat_modalities f m = + optional_atat_modalities ~pre:pp_print_space f m + +let optional_atat_modalities_newline f m = + optional_atat_modalities ~post:pp_print_newline f m (* helpers for printing both legacy/new mode syntax *) let split_out_legacy_modes = @@ -404,7 +419,7 @@ let modalities_type pty ctxt f pca = pp f "%a%a%a" optional_legacy_modalities legacy (pty ctxt) pca.pca_type - optional_atat_modalities m + optional_space_atat_modalities m let include_kind f = function | Functor -> pp f "@ functor" @@ -429,46 +444,70 @@ and type_with_label ctxt f (label, c, mode) = pp f "?%a:%a" ident_of_name s (maybe_legacy_modes_type_at_modes core_type1 ctxt) (c, mode) -and jkind ?(nested = false) ctxt f k = match (k : Jane_syntax.Jkind.t) with +and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with | Default -> pp f "_" - | Abbreviation s -> - pp f "%s" s.txt + | Abbreviation s -> pp f "%s" s | Mod (t, modes) -> begin match modes with | [] -> Misc.fatal_error "malformed jkind annotation" | _ :: _ -> Misc_stdlib.pp_parens_if nested (fun f (t, modes) -> pp f "%a mod %a" - (jkind ~nested:true ctxt) t + (jkind_annotation ~nested:true ctxt) t (pp_print_list ~pp_sep:pp_print_space mode) modes ) f (t, modes) end | With (t, ty) -> +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 Misc_stdlib.pp_parens_if nested (fun f (t, ty) -> pp f "%a with %a" (jkind ~nested:true ctxt) t (core_type ctxt) ty +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + Misc.pp_parens_if nested (fun f (t, ty) -> + pp f "%a with %a" (jkind ~nested:true ctxt) t (core_type ctxt) ty +======= + Misc.pp_parens_if nested (fun f (t, ty) -> + pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) + ty +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a ) f (t, ty) | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 Misc_stdlib.pp_parens_if nested (fun f ts -> pp f "%a" (list (jkind ~nested:true ctxt) ~sep:"@;&@;") ts +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + Misc.pp_parens_if nested (fun f ts -> + pp f "%a" (list (jkind ~nested:true ctxt) ~sep:"@;&@;") ts +======= + Misc.pp_parens_if nested (fun f ts -> + pp f "%a" (list (jkind_annotation ~nested:true ctxt) ~sep:"@;&@;") ts +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a ) f ts -and jkind_annotation ctxt f annot = jkind ctxt f annot.txt +and tyvar_jkind f (str, jkind) = + match jkind with + | None -> tyvar f str + | Some lay -> pp f "(%a : %a)" tyvar str (jkind_annotation reset_ctxt) lay -and tyvar_jkind_loc ctxt ~print_quote f (str,jkind) = - let pptv = - if print_quote - then tyvar - else fun ppf s -> pp ppf "%s" s - in +and tyvar_loc_jkind f (str, jkind) = tyvar_jkind f (str.txt,jkind) + +and tyvar_loc_option_jkind f (str, jkind) = + match jkind with + | None -> tyvar_loc_option f str + | Some jkind -> + pp f "(%a : %a)" + tyvar_loc_option str + (jkind_annotation reset_ctxt) jkind + +and name_jkind f (name, jkind) = match jkind with - | None -> pptv f str.txt - | Some lay -> pp f "(%a : %a)" pptv str.txt (jkind_annotation ctxt) lay + | None -> ident_of_name f name + | Some jkind -> + pp f "(%a : %a)" + ident_of_name name + (jkind_annotation reset_ctxt) jkind and core_type ctxt f x = - match Jane_syntax.Core_type.of_ast x with - | Some (jtyp, attrs) -> core_type_jane_syntax ctxt attrs f jtyp - | None -> let filtered_attrs = filter_curry_attrs x.ptyp_attributes in if filtered_attrs <> [] then begin pp f "((%a)%a)" (core_type ctxt) {x with ptyp_attributes=[]} @@ -478,8 +517,9 @@ and core_type ctxt f x = | Ptyp_arrow (l, ct1, ct2, m1, m2) -> pp f "@[<2>%a@;->@;%a@]" (* FIXME remove parens later *) (type_with_label ctxt) (l,ct1,m1) (return_type ctxt) (ct2,m2) - | Ptyp_alias (ct, s) -> - pp f "@[<2>%a@;as@;%a@]" (core_type1 ctxt) ct tyvar s.txt + | Ptyp_alias (ct, s, j) -> + pp f "@[<2>%a@;as@;%a@]" (core_type1 ctxt) ct + tyvar_loc_option_jkind (s, j) | Ptyp_poly ([], ct) -> core_type ctxt f ct | Ptyp_poly (sl, ct) -> @@ -488,19 +528,18 @@ and core_type ctxt f x = | [] -> () | _ -> pp f "%a@;.@;" - (list tyvar_loc ~sep:"@;") l) + (list + tyvar_loc_jkind ~sep:"@;") + l) sl (core_type ctxt) ct | _ -> pp f "@[<2>%a@]" (core_type1 ctxt) x and core_type1 ctxt f x = - match Jane_syntax.Core_type.of_ast x with - | Some (jtyp, attrs) -> core_type1_jane_syntax ctxt attrs f jtyp - | None -> if has_non_curry_attr x.ptyp_attributes then core_type ctxt f x else match x.ptyp_desc with - | Ptyp_any -> pp f "_"; - | Ptyp_var s -> tyvar f s; + | Ptyp_any jkind -> tyvar_loc_option_jkind f (None, jkind) + | Ptyp_var (s, jkind) -> tyvar_jkind f (s, jkind) | Ptyp_tuple tl -> pp f "(%a)" (list (labeled_core_type1 ctxt) ~sep:"@;*@;") tl | Ptyp_unboxed_tuple l -> @@ -580,46 +619,12 @@ and core_type1 ctxt f x = | (Ptyp_arrow _ | Ptyp_alias _ | Ptyp_poly _) -> paren true (core_type ctxt) f x -and core_type_jane_syntax ctxt attrs f (x : Jane_syntax.Core_type.t) = - let filtered_attrs = filter_curry_attrs attrs in - if filtered_attrs <> [] then begin - pp f "((%a)%a)" (core_type_jane_syntax ctxt []) x - (attributes ctxt) filtered_attrs - end - else match x with - | Jtyp_layout (Ltyp_alias { aliased_type; name; jkind }) -> - pp f "@[<2>%a@;as@;(%a :@ %a)@]" - (core_type1 ctxt) aliased_type - tyvar_option (Option.map Location.get_txt name) - (jkind_annotation ctxt) jkind - | Jtyp_layout (Ltyp_poly {bound_vars = []; inner_type}) -> - core_type ctxt f inner_type - | Jtyp_layout (Ltyp_poly {bound_vars; inner_type}) -> - let jkind_poly_var f (name, jkind_opt) = - match jkind_opt with - | Some jkind -> pp f "(%a@;:@;%a)" tyvar_loc name (jkind_annotation ctxt) jkind - | None -> tyvar_loc f name - in - pp f "@[<2>%a@;.@;%a@]" - (list jkind_poly_var ~sep:"@;") bound_vars - (core_type ctxt) inner_type - | Jtyp_layout (Ltyp_var _) -> - pp f "@[<2>%a@]" (core_type1_jane_syntax ctxt attrs) x - - -and core_type1_jane_syntax ctxt attrs f (x : Jane_syntax.Core_type.t) = - if has_non_curry_attr attrs then core_type_jane_syntax ctxt attrs f x - else - match x with - | Jtyp_layout (Ltyp_var { name; jkind }) -> - pp f "(%a@;:@;%a)" tyvar_option name (jkind_annotation ctxt) jkind - | Jtyp_layout (Ltyp_alias _ | Ltyp_poly _) -> - paren true (core_type_jane_syntax ctxt attrs) f x - and tyvar_option f = function | None -> pp f "_" | Some name -> tyvar f name +and tyvar_loc_option f str = tyvar_option f (Option.map Location.get_txt str) + and core_type1_labeled_tuple ctxt f ~unboxed tl = pp f "%s(%a)" (if unboxed then "#" else "") (list (labeled_core_type1 ctxt) ~sep:"@;*@;") tl @@ -638,9 +643,6 @@ and return_type ctxt f (x, m) = (********************pattern********************) (* be cautious when use [pattern], [pattern1] is preferred *) and pattern ctxt f x = - match Jane_syntax.Pattern.of_ast x with - | Some (jpat, attrs) -> pattern_jane_syntax ctxt attrs f jpat - | None -> if x.ppat_attributes <> [] then begin pp f "((%a)%a)" (pattern ctxt) {x with ppat_attributes=[]} (attributes ctxt) x.ppat_attributes @@ -669,8 +671,8 @@ and pattern1 ctxt (f:Format.formatter) (x:pattern) : unit = ({ txt = Lident("::") ;_}, Some ([], inner_pat)); ppat_attributes = []} -> - begin match Jane_syntax.Pattern.of_ast inner_pat, inner_pat.ppat_desc with - | None, Ppat_tuple([None, pat1; None, pat2], Closed) -> + begin match inner_pat.ppat_desc with + | Ppat_tuple([None, pat1; None, pat2], Closed) -> pp f "%a::%a" (simple_pattern ctxt) pat1 pattern_list_helper pat2 (*RA*) | _ -> pattern1 ctxt f p end @@ -713,16 +715,21 @@ and labeled_pattern1 ctxt (f:Format.formatter) (label, x) : unit = and simple_pattern ctxt (f:Format.formatter) (x:pattern) : unit = if x.ppat_attributes <> [] then pattern ctxt f x - else match Jane_syntax.Pattern.of_ast x with - | Some (jpat, attrs) -> pattern_jane_syntax ctxt attrs f jpat - | None -> - match x.ppat_desc with + else match x.ppat_desc with | Ppat_construct (({txt=Lident ("()"|"[]"|"true"|"false" as x);_}), None) -> pp f "%s" x | Ppat_any -> pp f "_"; | Ppat_var ({txt = txt;_}) -> ident_of_name f txt - | Ppat_array l -> - pp f "@[<2>[|%a|]@]" (list (pattern1 ctxt) ~sep:";") l + | Ppat_array (mut, l) -> + let punct = + match mut with + | Mutable -> '|' + | Immutable -> ':' + in + pp f "@[<2>[%c%a%c]@]" + punct + (list (pattern1 ctxt) ~sep:";") l + punct | Ppat_unpack { txt = None } -> pp f "(module@ _)@ " | Ppat_unpack { txt = Some s } -> @@ -781,12 +788,7 @@ and simple_pattern ctxt (f:Format.formatter) (x:pattern) : unit = | Ppat_extension e -> extension ctxt f e | Ppat_open (lid, p) -> let with_paren = - match Jane_syntax.Pattern.of_ast p with - | Some (jpat, _attrs) -> begin match jpat with - | Jpat_immutable_array (Iapat_immutable_array _) -> false - | Jpat_layout (Lpat_constant _) -> false - end - | None -> match p.ppat_desc with + match p.ppat_desc with | Ppat_array _ | Ppat_record _ | Ppat_construct (({txt=Lident ("()"|"[]"|"true"|"false");_}), None) -> false @@ -795,16 +797,6 @@ and simple_pattern ctxt (f:Format.formatter) (x:pattern) : unit = (paren with_paren @@ pattern1 ctxt) p | _ -> paren true (pattern ctxt) f x -and pattern_jane_syntax ctxt attrs f (pat : Jane_syntax.Pattern.t) = - if attrs <> [] then - pp f "((%a)%a)" (pattern_jane_syntax ctxt []) pat - (attributes ctxt) attrs - else - match pat with - | Jpat_immutable_array (Iapat_immutable_array l) -> - pp f "@[<2>[:%a:]@]" (list (pattern1 ctxt) ~sep:";") l - | Jpat_layout (Lpat_constant c) -> unboxed_constant ctxt f c - and labeled_tuple_pattern ctxt f ~unboxed l closed = let closed_flag ppf = function | Closed -> () @@ -897,7 +889,7 @@ and sugar_expr ctxt f e = | Ldot (Lident "Bigarray", "Array3"), i1 :: i2 :: i3 :: rest -> print ".{" "," "}" (simple_expr ctxt) [i1; i2; i3] rest | Ldot (Lident "Bigarray", "Genarray"), - {pexp_desc = Pexp_array indexes; pexp_attributes = []} :: rest -> + {pexp_desc = Pexp_array (_, indexes); pexp_attributes = []} :: rest -> print ".{" "," "}" (simple_expr ctxt) indexes rest | _ -> false end @@ -910,7 +902,7 @@ and sugar_expr ctxt f e = let multi_indices = String.contains s ';' in let i = match i.pexp_desc with - | Pexp_array l when multi_indices -> l + | Pexp_array (_, l) when multi_indices -> l | _ -> [ i ] in let assign = last_is '-' s in let kind = @@ -933,17 +925,7 @@ and sugar_expr ctxt f e = end | _ -> false -(* Postcondition: If [x] has any non-Jane Syntax attributes, the output will - be self-delimiting. (I.e., it will be wrapped in parens.) - - Passing [jane_syntax_parens=true] will insert parens around Jane Syntax - expressions that aren't already self-delimiting. -*) -and expression ?(jane_syntax_parens = false) ctxt f x = - match Jane_syntax.Expression.of_ast x with - | Some (jexpr, attrs) -> - jane_syntax_expr ctxt attrs f jexpr ~parens:jane_syntax_parens - | None -> +and expression ctxt f x = if x.pexp_attributes <> [] then pp f "((%a)@,%a)" (expression ctxt) {x with pexp_attributes=[]} (attributes ctxt) x.pexp_attributes @@ -958,8 +940,9 @@ and expression ?(jane_syntax_parens = false) ctxt f x = | Pexp_letexception _ | Pexp_letop _ when ctxt.semi -> paren true (expression reset_ctxt) f x - | Pexp_newtype (lid, e) -> - pp f "@[<2>fun@;(type@;%a)@;%a@]" ident_of_name lid.txt + | Pexp_newtype (lid, jkind, e) -> + pp f "@[<2>fun@;(type@;%a)@;%a@]" + name_jkind (lid.txt, jkind) (pp_print_pexp_newtype ctxt "->") e | Pexp_function (params, constraint_, body) -> begin match params, constraint_ with @@ -1122,14 +1105,14 @@ and expression ?(jane_syntax_parens = false) ctxt f x = | _ -> expression1 ctxt f x and expression1 ctxt f x = - if x.pexp_attributes <> [] then expression ctxt f x ~jane_syntax_parens:true + if x.pexp_attributes <> [] then expression ctxt f x else match x.pexp_desc with | Pexp_object cs -> pp f "%a" (class_structure ctxt) cs | _ -> expression2 ctxt f x (* used in [Pexp_apply] *) and expression2 ctxt f x = - if x.pexp_attributes <> [] then expression ctxt f x ~jane_syntax_parens:true + if x.pexp_attributes <> [] then expression ctxt f x else match x.pexp_desc with | Pexp_field (e, li) -> pp f "@[%a.%a@]" (simple_expr ctxt) e longident_loc li @@ -1139,7 +1122,7 @@ and expression2 ctxt f x = | _ -> simple_expr ctxt f x and simple_expr ctxt f x = - if x.pexp_attributes <> [] then expression ctxt f x ~jane_syntax_parens:true + if x.pexp_attributes <> [] then expression ctxt f x else match x.pexp_desc with | Pexp_construct _ when is_simple_construct (view_expr x) -> (match view_expr x with @@ -1192,9 +1175,16 @@ and simple_expr ctxt f x = pp f "@[@[{@;%a%a@]@;}@]"(* "@[{%a%a}@]" *) (option ~last:" with@;" (simple_expr ctxt)) eo (list longident_x_expression ~sep:";@;") l - | Pexp_array (l) -> - pp f "@[<0>@[<2>[|%a|]@]@]" + | Pexp_array (mut, l) -> + let punct = match mut with + | Immutable -> ':' + | Mutable -> '|' + in + pp f "@[<0>@[<2>[%c%a%c]@]@]" + punct (list (simple_expr (under_semi ctxt)) ~sep:";") l + punct + | Pexp_comprehension comp -> comprehension_expr ctxt f comp | Pexp_while (e1, e2) -> let fmt : (_,_,_) format = "@[<2>while@;%a@;do@;%a@;done@]" in pp f fmt (expression ctxt) e1 (expression ctxt) e2 @@ -1227,7 +1217,7 @@ and value_description ctxt f x = (* note: value_description has an attribute field, but they're already printed by the callers this method *) pp f "@[%a%a%a@]" (core_type ctxt) x.pval_type - optional_atat_modalities x.pval_modalities + optional_space_atat_modalities x.pval_modalities (fun f x -> if x.pval_prim <> [] then pp f "@ =@ %a" (list constant_string) x.pval_prim @@ -1271,7 +1261,7 @@ and class_type_field ctxt f x = and class_signature ctxt f { pcsig_self = ct; pcsig_fields = l ;_} = pp f "@[@[object@[<1>%a@]@ %a@]@ end@]" (fun f -> function - {ptyp_desc=Ptyp_any; ptyp_attributes=[]; _} -> () + {ptyp_desc=Ptyp_any None; ptyp_attributes=[]; _} -> () | ct -> pp f " (%a)" (core_type ctxt) ct) ct (list (class_type_field ctxt) ~sep:"@;") l @@ -1441,7 +1431,7 @@ and include_ : 'a. ctxt -> formatter -> and sig_include ctxt f incl moda = include_ ctxt f ~contents:module_type incl; - optional_atat_modalities f moda + optional_space_atat_modalities f moda and kind_abbrev ctxt f name jkind = pp f "@[kind_abbrev_@ %a@ =@ %a@]" @@ -1449,9 +1439,6 @@ and kind_abbrev ctxt f name jkind = (jkind_annotation ctxt) jkind and module_type ctxt f x = - match Jane_syntax.Module_type.of_ast x with - | Some (jmty, attrs) -> module_type_jane_syntax ctxt attrs f jmty - | None -> if x.pmty_attributes <> [] then begin pp f "((%a)%a)" (module_type ctxt) {x with pmty_attributes=[]} (attributes ctxt) x.pmty_attributes @@ -1473,20 +1460,12 @@ and module_type ctxt f x = pp f "@[%a@ with@ %a@]" (module_type1 ctxt) mt (list (with_constraint ctxt) ~sep:"@ and@ ") l - | _ -> module_type1 ctxt f x - -and module_type_jane_syntax ctxt attrs f (mty : Jane_syntax.Module_type.t) = - if attrs <> [] then - pp f "((%a)%a)" - (module_type_jane_syntax ctxt []) mty - (attributes ctxt) attrs - else - match mty with - | Jmty_strengthen { mty; mod_id } -> + | Pmty_strengthen (mty, mod_id) -> pp f "@[%a@ with@ %a@]" (module_type1 ctxt) mty longident_loc mod_id + | _ -> module_type1 ctxt f x and with_constraint ctxt f = function | Pwith_type (li, ({ptype_params= ls ;_} as td)) -> pp f "type@ %a %a =@ %a" @@ -1508,43 +1487,29 @@ and with_constraint ctxt f = function and module_type1 ctxt f x = - match Jane_syntax.Module_type.of_ast x with - | Some (jmty, attrs) -> module_type_jane_syntax1 ctxt attrs f jmty - | None -> if x.pmty_attributes <> [] then module_type ctxt f x else match x.pmty_desc with | Pmty_ident li -> pp f "%a" longident_loc li; | Pmty_alias li -> pp f "(module %a)" longident_loc li; - | Pmty_signature (s) -> - pp f "@[@[sig@ %a@]@ end@]" (* "@[sig@ %a@ end@]" *) - (list (signature_item ctxt)) s (* FIXME wrong indentation*) + | Pmty_signature {psg_items; psg_modalities} -> + pp f "@[@[sig%a@ %a@]@ end@]" (* "@[sig@ %a@ end@]" *) + optional_space_atat_modalities psg_modalities + (list (signature_item ctxt)) psg_items (* FIXME wrong indentation*) | Pmty_typeof me -> pp f "@[module@ type@ of@ %a@]" (module_expr ctxt) me | Pmty_extension e -> extension ctxt f e | _ -> paren true (module_type ctxt) f x -and module_type_jane_syntax1 ctxt attrs f : Jane_syntax.Module_type.t -> _ = - function - | Jmty_strengthen _ as jmty -> - paren true (module_type_jane_syntax ctxt attrs) f jmty +and signature ctxt f {psg_items; psg_modalities} = + optional_atat_modalities_newline f psg_modalities; + signature_items ctxt f psg_items -and signature ctxt f x = list ~sep:"@\n" (signature_item ctxt) f x - -and sig_layout ctxt f - : Jane_syntax.Layouts.signature_item -> _ = function - | Lsig_kind_abbrev (name, jkind) -> - kind_abbrev ctxt f name jkind - -and signature_item_jane_syntax ctxt f : Jane_syntax.Signature_item.t -> _ = - function - | Jsig_layout sigi -> sig_layout ctxt f sigi +and signature_items ctxt f items = + list ~sep:"@\n" (signature_item ctxt) f items and signature_item ctxt f x : unit = - match Jane_syntax.Signature_item.of_ast x with - | Some jsigi -> signature_item_jane_syntax ctxt f jsigi - | None -> match x.psig_desc with | Psig_type (rf, l) -> type_def_list ctxt f (rf, true, l) @@ -1642,14 +1607,14 @@ and signature_item ctxt f x : unit = | Psig_extension(e, a) -> item_extension ctxt f e; item_attributes ctxt f a + | Psig_kind_abbrev (name, jkind) -> + kind_abbrev ctxt f name jkind and module_expr ctxt f x = if x.pmod_attributes <> [] then pp f "((%a)%a)" (module_expr ctxt) {x with pmod_attributes=[]} (attributes ctxt) x.pmod_attributes - else match Jane_syntax.Module_expr.of_ast x with - | Some ext -> extension_module_expr ctxt f ext - | None -> match x.pmod_desc with + else match x.pmod_desc with | Pmod_structure (s) -> pp f "@[struct@;@[<0>%a@]@;<1 -2>end@]" (list (structure_item ctxt) ~sep:"@\n") s; @@ -1675,6 +1640,8 @@ and module_expr ctxt f x = | Pmod_extension ({ txt; _ }, _) when txt = Ast_helper.hole_txt -> pp f "_" | Pmod_extension e -> extension ctxt f e + | Pmod_instance i -> + pp f "(%a [@jane.non_erasable.instances])"(instance ctxt) i and structure ctxt f x = list ~sep:"@\n" (structure_item ctxt) f x @@ -1692,24 +1659,16 @@ and payload ctxt f = function pp f " when "; expression ctxt f e and pp_print_pexp_newtype ctxt sep f x = - (* We go to some trouble to print nested [Lexp_newtype] as + (* We go to some trouble to print nested [Pexp_newtype] as newtype parameters of the same "fun" (rather than printing several nested "fun (type a) -> ..."). This isn't necessary for round-tripping -- it just makes the pretty-printing a bit prettier. *) - match Jane_syntax.Expression.of_ast x with - | Some (Jexp_layout (Lexp_newtype (str, lay, e)), []) -> - pp f "@[(type@ %a :@ %a)@]@ %a" - ident_of_name str.txt - (jkind_annotation ctxt) lay - (pp_print_pexp_newtype ctxt sep) e - | Some (jst, attrs) -> - pp f "%s@;%a" sep (jane_syntax_expr ctxt attrs ~parens:false) jst - | None -> if x.pexp_attributes <> [] then pp f "%s@;%a" sep (expression ctxt) x else match x.pexp_desc with - | Pexp_newtype (str,e) -> - pp f "(type@ %a)@ %a" ident_of_name str.txt (pp_print_pexp_newtype ctxt sep) e + | Pexp_newtype (str, jkind, e) -> + pp f "(type@ %a)@ %a" name_jkind (str.txt, jkind) + (pp_print_pexp_newtype ctxt sep) e | _ -> pp f "%s@;%a" sep (expression ctxt) x @@ -1756,10 +1715,11 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode | None -> (* CR layouts 1.5: We just need to check for [is_desugared_gadt] because the parser hasn't been upgraded to parse [let x : type a. ... = ...] as - [Pvb_constraint] as it has been upstream. Once we encode that with Jane - Syntax appropriately, we can delete this code. + [Pvb_constraint] as it has been upstream. Once we move to the 5.2 + parsetree encoding of type annotations. *) let tyvars_str tyvars = List.map (fun v -> v.txt) tyvars in + let tyvars_jkind_str tyvars = List.map (fun (v, _jkind) -> v.txt) tyvars in let is_desugared_gadt p e = let gadt_pattern = match p with @@ -1772,7 +1732,7 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode match e with (* no need to handle jkind annotations here; the extracted variables don't get printed -- they're just used to decide how to print *) - | {pexp_desc=Pexp_newtype (tyvar, e); pexp_attributes=[]} -> + | {pexp_desc=Pexp_newtype (tyvar, _jkind, e); pexp_attributes=[]} -> gadt_exp (tyvar :: tyvars) e | {pexp_desc=Pexp_constraint (e, Some ct, _); pexp_attributes=[]} -> Some (List.rev tyvars, e, ct) @@ -1780,7 +1740,7 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode let gadt_exp = gadt_exp [] e in match gadt_pattern, gadt_exp with | Some (p, pt_tyvars, pt_ct), Some (e_tyvars, e, e_ct) - when tyvars_str pt_tyvars = tyvars_str e_tyvars -> + when tyvars_jkind_str pt_tyvars = tyvars_str e_tyvars -> let ety = Ast_helper.Typ.varify_constructors e_tyvars e_ct in if ety = pt_ct then Some (p, pt_tyvars, e_ct, e) else None @@ -1791,7 +1751,7 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode pp f "%a@;: type@;%a.@;%a%a@;=@;%a" (simple_pattern ctxt) p (list pp_print_string ~sep:"@;") - (tyvars_str tyvars) + (tyvars_jkind_str tyvars) (core_type ctxt) ct optional_atat_modes modes (expression ctxt) e @@ -1846,19 +1806,7 @@ and binding_op ctxt f x = pp f "@[<2>%s %a@;=@;%a@]" x.pbop_op.txt (pattern ctxt) pat (expression ctxt) exp -and str_layout ctxt f - : Jane_syntax.Layouts.structure_item -> _ = function - | Lstr_kind_abbrev (name, jkind) -> - kind_abbrev ctxt f name jkind - -and structure_item_jane_syntax ctxt f : Jane_syntax.Structure_item.t -> _ = - function - | Jstr_layout stri -> str_layout ctxt f stri - and structure_item ctxt f x = - match Jane_syntax.Structure_item.of_ast x with - | Some jstri -> structure_item_jane_syntax ctxt f jstri - | None -> match x.pstr_desc with | Pstr_eval (e, attrs) -> pp f "@[;;%a@]%a" @@ -1993,6 +1941,8 @@ and structure_item ctxt f x = | Pstr_extension(e, a) -> item_extension ctxt f e; item_attributes ctxt f a + | Pstr_kind_abbrev (name, jkind) -> + kind_abbrev ctxt f name jkind and type_param ctxt f (ct, (a,b)) = pp f "%s%s%a" (type_variance a) (type_injectivity b) (core_type ctxt) ct @@ -2009,13 +1959,11 @@ and type_def_list ctxt f (rf, exported, l) = else if exported then " =" else " :=" in - let layout_annot, x = - match Jane_syntax.Layouts.of_type_declaration x with - | None -> Format.dprintf "", x - | Some (jkind, remaining_attributes) -> - Format.dprintf " : %a" - (jkind_annotation ctxt) jkind, - { x with ptype_attributes = remaining_attributes } + let layout_annot = + match x.ptype_jkind_annotation with + | None -> Format.dprintf "" + | Some jkind -> + Format.dprintf " : %a" (jkind_annotation ctxt) jkind in pp f "@[<2>%s %a%a%a%t%s%a@]%a" kwd nonrec_flag rf @@ -2040,7 +1988,7 @@ and record_declaration ctxt f lbls = optional_legacy_modalities legacy ident_of_name pld.pld_name.txt (core_type ctxt) pld.pld_type - optional_atat_modalities m + optional_space_atat_modalities m (attributes ctxt) pld.pld_attributes in pp f "{@\n%a}" @@ -2065,13 +2013,9 @@ and type_declaration ctxt f x = in let constructor_declaration f pcd = pp f "|@;"; - let vars_jkinds, attrs = - match Jane_syntax.Layouts.of_constructor_declaration pcd with - | None -> List.map (fun v -> v, None) pcd.pcd_vars, pcd.pcd_attributes - | Some stuff -> stuff - in constructor_declaration ctxt f - (pcd.pcd_name.txt, vars_jkinds, pcd.pcd_args, pcd.pcd_res, attrs) + (pcd.pcd_name.txt, pcd.pcd_vars, pcd.pcd_args, pcd.pcd_res, + pcd.pcd_attributes) in let repr f = let intro f = @@ -2122,7 +2066,7 @@ and constructor_declaration ctxt f (name, vars_jkinds, args, res, attrs) = let pp_vars f vls = match vls with | [] -> () - | _ -> pp f "%a@;.@;" (list (tyvar_jkind_loc ctxt ~print_quote:true) ~sep:"@;") + | _ -> pp f "%a@;.@;" (list tyvar_loc_jkind ~sep:"@;") vls in match res with @@ -2151,24 +2095,15 @@ and constructor_declaration ctxt f (name, vars_jkinds, args, res, attrs) = and extension_constructor ctxt f x = (* Cf: #7200 *) - match Jane_syntax.Extension_constructor.of_ast x with - | Some (jext, attrs) -> - extension_constructor_jst ctxt f x.pext_name attrs jext - | None -> match x.pext_kind with | Pext_decl(v, l, r) -> constructor_declaration ctxt f - (x.pext_name.txt, List.map (fun v -> v, None) v, l, r, x.pext_attributes) + (x.pext_name.txt, v, l, r, x.pext_attributes) | Pext_rebind li -> pp f "%s@;=@;%a%a" x.pext_name.txt longident_loc li (attributes ctxt) x.pext_attributes -and extension_constructor_jst ctxt f name attrs : - Jane_syntax.Extension_constructor.t -> _ = function - | Jext_layout (Lext_decl(vl, l, r)) -> - constructor_declaration ctxt f (name.txt, vl, l, r, attrs) - and case_list ctxt f l : unit = let aux f {pc_lhs; pc_guard; pc_rhs} = pp f "@;| @[<2>%a%a@;->@;%a@]" @@ -2216,24 +2151,11 @@ and directive_argument f x = | Pdir_ident (li) -> pp f "@ %a" longident li | Pdir_bool (b) -> pp f "@ %s" (string_of_bool b) -(* [parens] is whether parens should be inserted around constructs that aren't - already self-delimiting. E.g. immutable arrays are self-delimiting because - they begin and end in a bracket. -*) -and jane_syntax_expr ctxt attrs f (jexp : Jane_syntax.Expression.t) ~parens = - if attrs <> [] then - pp f "((%a)@,%a)" (jane_syntax_expr ctxt [] ~parens:false) jexp - (attributes ctxt) attrs - else match jexp with - | Jexp_comprehension x -> comprehension_expr ctxt f x - | Jexp_immutable_array x -> immutable_array_expr ctxt f x - | Jexp_layout x -> layout_expr ctxt f x ~parens - -and comprehension_expr ctxt f (cexp : Jane_syntax.Comprehensions.expression) = +and comprehension_expr ctxt f cexp = let punct, comp = match cexp with - | Cexp_list_comprehension comp -> + | Pcomp_list_comprehension comp -> "", comp - | Cexp_array_comprehension (amut, comp) -> + | Pcomp_array_comprehension (amut, comp) -> let punct = match amut with | Mutable -> "|" | Immutable -> ":" @@ -2243,37 +2165,40 @@ and comprehension_expr ctxt f (cexp : Jane_syntax.Comprehensions.expression) = comprehension ctxt f ~open_:("[" ^ punct) ~close:(punct ^ "]") comp and comprehension ctxt f ~open_ ~close cexp = - let Jane_syntax.Comprehensions.{ body; clauses } = cexp in + let { pcomp_body = body; pcomp_clauses = clauses } = cexp in pp f "@[@[%s%a@ @[%a@]%s@]@]" open_ (expression ctxt) body (list ~sep:"@ " (comprehension_clause ctxt)) clauses close -and comprehension_clause ctxt f (x : Jane_syntax.Comprehensions.clause) = +and comprehension_clause ctxt f x = match x with - | For bindings -> + | Pcomp_for bindings -> pp f "@[for %a@]" (list ~sep:"@]@ @[and " (comprehension_binding ctxt)) bindings - | When cond -> + | Pcomp_when cond -> pp f "@[when %a@]" (expression ctxt) cond and comprehension_binding ctxt f x = - let Jane_syntax.Comprehensions.{ pattern = pat; iterator; attributes = attrs } = x in + let { pcomp_cb_pattern = pat; + pcomp_cb_iterator = iterator; + pcomp_cb_attributes = attrs } = x in pp f "%a%a %a" (attributes ctxt) attrs (pattern ctxt) pat (comprehension_iterator ctxt) iterator -and comprehension_iterator ctxt f (x : Jane_syntax.Comprehensions.iterator) = +and comprehension_iterator ctxt f x = match x with - | Range { start; stop; direction } -> + | Pcomp_range { start; stop; direction } -> pp f "=@ %a %a%a" (expression ctxt) start direction_flag direction (expression ctxt) stop - | In seq -> + | Pcomp_in seq -> pp f "in %a" (expression ctxt) seq +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 and immutable_array_expr ctxt f (x : Jane_syntax.Immutable_arrays.expression) = match x with | Iaexp_immutable_array elts -> @@ -2303,6 +2228,38 @@ and unboxed_constant _ctxt f (x : Jane_syntax.Layouts.constant) paren (first_is '-' x) (fun f (x, suffix) -> pp f "%s%c" x suffix) f (Misc_stdlib.format_as_unboxed_literal x, suffix) +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +and immutable_array_expr ctxt f (x : Jane_syntax.Immutable_arrays.expression) = + match x with + | Iaexp_immutable_array elts -> + pp f "@[<0>@[<2>[:%a:]@]@]" + (list (simple_expr (under_semi ctxt)) ~sep:";") elts + +(* [parens] is the same as the argument to [jane_syntax_expr]. *) +and layout_expr ctxt f (x : Jane_syntax.Layouts.expression) ~parens = + match x with + (* see similar case in [expression] *) + | Lexp_newtype _ when parens || ctxt.pipe || ctxt.semi -> + paren true (layout_expr reset_ctxt ~parens:false) f x + | Lexp_constant x -> unboxed_constant ctxt f x + | Lexp_newtype (lid, jkind, inner_expr) -> + pp f "@[<2>fun@;(type@;%a :@;%a)@;%a@]" + ident_of_name lid.txt + (jkind_annotation ctxt) jkind + (pp_print_pexp_newtype ctxt "->") inner_expr + +and unboxed_constant _ctxt f (x : Jane_syntax.Layouts.constant) + = + match x with + | Float (x, None) -> + paren (first_is '-' x) (fun f -> pp f "%s") f (Misc.format_as_unboxed_literal x) + | Float (x, Some suffix) + | Integer (x, suffix) -> + paren (first_is '-' x) (fun f (x, suffix) -> pp f "%s%c" x suffix) f + (Misc.format_as_unboxed_literal x, suffix) + +======= +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a and function_param ctxt f { pparam_desc; pparam_loc = _ } = match pparam_desc with | Pparam_val (a, b, c) -> label_exp ctxt f (a, b, c) @@ -2351,18 +2308,10 @@ and labeled_tuple_expr ctxt f ~unboxed x = pp f "@[%s(%a)@]" (if unboxed then "#" else "") (list (tuple_component ctxt) ~sep:",@;") x -and extension_module_expr ctxt f (x : Jane_syntax.Module_expr.t) = - match x with - | Emod_instance i -> instance_module_expr ctxt f i - -and instance_module_expr ctxt f (x : Jane_syntax.Instances.module_expr) = +and instance ctxt f x = match x with - | Imod_instance i -> instance ctxt f i - -and instance ctxt f (x : Jane_syntax.Instances.instance) = - match x with - | { head; args = [] } -> pp f "%s" head - | { head; args } -> + | { pmod_instance_head = head; pmod_instance_args = [] } -> pp f "%s" head + | { pmod_instance_head = head; pmod_instance_args = args } -> pp f "@[<2>%s %a@]" head (list (instance_arg ctxt)) args and instance_arg ctxt f (param, value) = @@ -2505,8 +2454,27 @@ let prepare_error err = "Syntax error: Unboxed integer literals require width suffixes." let () = +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 Location.register_error_of_exn (function | Syntaxerr.Error err -> Some (prepare_error err) | _ -> None ) +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +let class_signature = print_reset_with_maximal_extensions class_signature +let structure_item = print_reset_with_maximal_extensions structure_item +let signature_item = print_reset_with_maximal_extensions signature_item +let binding = print_reset_with_maximal_extensions binding +let payload = print_reset_with_maximal_extensions payload +let type_declaration = print_reset_with_maximal_extensions type_declaration +let jkind = print_reset_with_maximal_extensions jkind +======= +let class_signature = print_reset_with_maximal_extensions class_signature +let structure_item = print_reset_with_maximal_extensions structure_item +let signature_item = print_reset_with_maximal_extensions signature_item +let signature_items = print_reset_with_maximal_extensions signature_items +let binding = print_reset_with_maximal_extensions binding +let payload = print_reset_with_maximal_extensions payload +let type_declaration = print_reset_with_maximal_extensions type_declaration +let jkind_annotation = print_reset_with_maximal_extensions jkind_annotation +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a diff --git a/src/ocaml/parsing/pprintast.mli b/src/ocaml/parsing/pprintast.mli index a1f406e19..ada4a8371 100644 --- a/src/ocaml/parsing/pprintast.mli +++ b/src/ocaml/parsing/pprintast.mli @@ -47,6 +47,7 @@ val class_type: Format.formatter -> Parsetree.class_type -> unit val module_type: Format.formatter -> Parsetree.module_type -> unit val structure_item: Format.formatter -> Parsetree.structure_item -> unit val signature_item: Format.formatter -> Parsetree.signature_item -> unit +val signature_items: Format.formatter -> Parsetree.signature_item list -> unit val binding: Format.formatter -> Parsetree.value_binding -> unit val payload: Format.formatter -> Parsetree.payload -> unit @@ -63,8 +64,14 @@ val tyvar: Format.formatter -> string -> unit special treatment required for the single quote character in second position, or for keywords by escaping them with \#. No-op on "_". *) +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 val jkind : Format.formatter -> Jane_syntax.Jkind.t -> unit +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +val jkind : Format.formatter -> Jane_syntax.Jkind.t -> unit +======= +val jkind_annotation : Format.formatter -> Parsetree.jkind_annotation -> unit +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a val mode : Format.formatter -> Parsetree.mode Location.loc -> unit (* merlin *) diff --git a/src/ocaml/parsing/printast.ml b/src/ocaml/parsing/printast.ml index 688fde1e7..361e7e667 100644 --- a/src/ocaml/parsing/printast.ml +++ b/src/ocaml/parsing/printast.ml @@ -61,13 +61,22 @@ let fmt_char_option f = function let fmt_constant f x = match x with +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 | Pconst_integer (i,m) -> fprintf f "PConst_int (%s,%a)" i fmt_char_option m; +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + | Pconst_integer (i,m) -> fprintf f "PConst_int (%s,%a)" i fmt_char_option m +======= + | Pconst_integer (i,m) -> fprintf f "PConst_int (%s,%a)" i fmt_char_option m + | Pconst_unboxed_integer (i,m) -> fprintf f "PConst_unboxed_int (%s,%c)" i m +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a | Pconst_char (c) -> fprintf f "PConst_char %02x" (Char.code c) | Pconst_string (s, strloc, None) -> fprintf f "PConst_string(%S,%a,None)" s fmt_location strloc | Pconst_string (s, strloc, Some delim) -> fprintf f "PConst_string (%S,%a,Some %S)" s fmt_location strloc delim | Pconst_float (s,m) -> fprintf f "PConst_float (%s,%a)" s fmt_char_option m + | Pconst_unboxed_float (s,m) -> + fprintf f "PConst_unboxed_float (%s,%a)" s fmt_char_option m let fmt_mutable_flag f x = match x with @@ -133,11 +142,6 @@ let arg_label i ppf = function | Labelled s -> line i ppf "Labelled \"%s\"\n" s -let typevars ppf vs = - List.iter (fun x -> fprintf ppf " '%s" x.txt) vs - (* Don't use Pprintast.tyvar, as that causes a dependency cycle with - Jane_syntax, which depends on this module for debugging. *) - let modality i ppf modality = line i ppf "modality %a\n" fmt_string_loc (Location.map (fun (Modality x) -> x) modality) @@ -165,8 +169,12 @@ let rec core_type i ppf x = attributes i ppf x.ptyp_attributes; let i = i+1 in match x.ptyp_desc with - | Ptyp_any -> line i ppf "Ptyp_any\n"; - | Ptyp_var (s) -> line i ppf "Ptyp_var %s\n" s; + | Ptyp_any jkind -> + line i ppf "Ptyp_any\n"; + jkind_annotation_opt (i+1) ppf jkind + | Ptyp_var (s, jkind) -> + line i ppf "Ptyp_var %s\n" s; + jkind_annotation_opt (i+1) ppf jkind | Ptyp_arrow (l, ct1, ct2, m1, m2) -> line i ppf "Ptyp_arrow\n"; arg_label i ppf l; @@ -203,11 +211,17 @@ let rec core_type i ppf x = | Ptyp_class (li, l) -> line i ppf "Ptyp_class %a\n" fmt_longident_loc li; list i core_type ppf l - | Ptyp_alias (ct, s) -> - line i ppf "Ptyp_alias \"%s\"\n" s.txt; + | Ptyp_alias (ct, s, jkind) -> + line i ppf "Ptyp_alias %a\n" + (fun ppf -> function + | None -> fprintf ppf "_" + | Some name -> fprintf ppf "\"%s\"" name.txt) + s; core_type i ppf ct; + jkind_annotation_opt i ppf jkind | Ptyp_poly (sl, ct) -> - line i ppf "Ptyp_poly%a\n" typevars sl; + line i ppf "Ptyp_poly\n"; + list i typevar ppf sl; core_type i ppf ct; | Ptyp_package (s, l) -> line i ppf "Ptyp_package %a\n" fmt_longident_loc s; @@ -219,6 +233,10 @@ let rec core_type i ppf x = line i ppf "Ptyp_extension \"%s\"\n" s.txt; payload i ppf arg +and typevar i ppf (s, jkind) = + line i ppf "var: %s\n" s.txt; + jkind_annotation_opt (i+1) ppf jkind + and package_with i ppf (s, t) = line i ppf "with type %a\n" fmt_longident_loc s; core_type i ppf t @@ -255,8 +273,8 @@ and pattern i ppf x = | Ppat_record (l, c) -> line i ppf "Ppat_record %a\n" fmt_closed_flag c; list i longident_x_pattern ppf l; - | Ppat_array (l) -> - line i ppf "Ppat_array\n"; + | Ppat_array (mut, l) -> + line i ppf "Ppat_array %a\n" fmt_mutable_flag mut; list i pattern ppf l; | Ppat_or (p1, p2) -> line i ppf "Ppat_or\n"; @@ -338,8 +356,8 @@ and expression i ppf x = expression i ppf e1; longident_loc i ppf li; expression i ppf e2; - | Pexp_array (l) -> - line i ppf "Pexp_array\n"; + | Pexp_array (mut, l) -> + line i ppf "Pexp_array %a\n" fmt_mutable_flag mut; list i expression ppf l; | Pexp_ifthenelse (e1, e2, eo) -> line i ppf "Pexp_ifthenelse\n"; @@ -401,8 +419,9 @@ and expression i ppf x = | Pexp_object s -> line i ppf "Pexp_object\n"; class_structure i ppf s - | Pexp_newtype (s, e) -> + | Pexp_newtype (s, jkind, e) -> line i ppf "Pexp_newtype \"%s\"\n" s.txt; + jkind_annotation_opt i ppf jkind; expression i ppf e | Pexp_pack me -> line i ppf "Pexp_pack\n"; @@ -424,12 +443,57 @@ and expression i ppf x = | Pexp_stack e -> line i ppf "Pexp_stack\n"; expression i ppf e + | Pexp_comprehension c -> + line i ppf "Pexp_comprehension\n"; + comprehension_expression i ppf c + +and comprehension_expression i ppf = function + | Pcomp_array_comprehension (m, c) -> + line i ppf "Pcomp_array_comprehension %a\n" fmt_mutable_flag m; + comprehension i ppf c + | Pcomp_list_comprehension c -> + line i ppf "Pcomp_list_comprehension\n"; + comprehension i ppf c + +and comprehension i ppf ({ pcomp_body; pcomp_clauses } : comprehension) = + list i comprehension_clause ppf pcomp_clauses; + expression i ppf pcomp_body + +and comprehension_clause i ppf = function + | Pcomp_for cbs -> + line i ppf "Pcomp_for\n"; + list i comprehension_clause_binding ppf cbs + | Pcomp_when exp -> + line i ppf "Pcomp_when\n"; + expression i ppf exp + +and comprehension_clause_binding i ppf + { pcomp_cb_pattern; pcomp_cb_iterator; pcomp_cb_attributes } + = + pattern i ppf pcomp_cb_pattern; + comprehension_iterator (i+1) ppf pcomp_cb_iterator; + attributes i ppf pcomp_cb_attributes + +and comprehension_iterator i ppf = function + | Pcomp_range { start; stop; direction } -> + line i ppf "Pcomp_range %a\n" fmt_direction_flag direction; + expression i ppf start; + expression i ppf stop; + | Pcomp_in exp -> + line i ppf "Pcomp_in\n"; + expression i ppf exp + +and jkind_annotation_opt i ppf jkind = + match jkind with + | None -> () + | Some jkind -> jkind_annotation (i+1) ppf jkind and jkind_annotation i ppf (jkind : jkind_annotation) = - match jkind with + line i ppf "jkind %a\n" fmt_location jkind.pjkind_loc; + match jkind.pjkind_desc with | Default -> line i ppf "Default\n" | Abbreviation jkind -> - line i ppf "Abbreviation \"%s\"\n" jkind.txt + line i ppf "Abbreviation \"%s\"\n" jkind | Mod (jkind, m) -> line i ppf "Mod\n"; jkind_annotation (i+1) ppf jkind; @@ -454,10 +518,7 @@ and function_param i ppf { pparam_desc = desc; pparam_loc = loc } = pattern (i+1) ppf p | Pparam_newtype (ty, jkind) -> line i ppf "Pparam_newtype \"%s\" %a\n" ty.txt fmt_location loc; - option (i+1) - (fun i ppf jkind -> jkind_annotation i ppf jkind.txt) - ppf - jkind + jkind_annotation_opt (i+1) ppf jkind and function_body i ppf body = match body with @@ -574,7 +635,7 @@ and extension_constructor_kind i ppf x = match x with Pext_decl(v, a, r) -> line i ppf "Pext_decl\n"; - if v <> [] then line (i+1) ppf "vars%a\n" typevars v; + list (i+1) typevar ppf v; constructor_arguments (i+1) ppf a; option (i+1) core_type ppf r; | Pext_rebind li -> @@ -777,8 +838,13 @@ and module_type i ppf x = | Pmty_extension (s, arg) -> line i ppf "Pmod_extension \"%s\"\n" s.txt; payload i ppf arg + | Pmty_strengthen (m, lid) -> + line i ppf "Pmty_strengthen %a\n" fmt_longident lid.txt; + module_type i ppf m -and signature i ppf x = list i signature_item ppf x +and signature i ppf {psg_items; psg_modalities} = + modalities i ppf psg_modalities; + list i signature_item ppf psg_items and signature_item i ppf x = line i ppf "signature_item %a\n" fmt_location x.psig_loc; @@ -841,6 +907,9 @@ and signature_item i ppf x = payload i ppf arg | Psig_attribute a -> attribute i ppf "Psig_attribute" a + | Psig_kind_abbrev (name, jkind) -> + line i ppf "Psig_kind_abbrev \"%s\"\n" name.txt; + jkind_annotation i ppf jkind and modtype_declaration i ppf = function | None -> line i ppf "#abstract" @@ -904,6 +973,17 @@ and module_expr i ppf x = | Pmod_extension (s, arg) -> line i ppf "Pmod_extension \"%s\"\n" s.txt; payload i ppf arg + | Pmod_instance instance -> + line i ppf "Pmod_instance\n"; + module_instance i ppf instance + +and module_instance i ppf { pmod_instance_head; pmod_instance_args } = + line i ppf "head=%s\n" pmod_instance_head; + list i (fun i ppf (name, arg) -> + line i ppf "name=%s\n" name; + module_instance i ppf arg) + ppf + pmod_instance_args and structure i ppf x = list i structure_item ppf x @@ -961,6 +1041,9 @@ and structure_item i ppf x = payload i ppf arg | Pstr_attribute a -> attribute i ppf "Pstr_attribute" a + | Pstr_kind_abbrev (name, jkind) -> + line i ppf "Pstr_kind_abbrev \"%s\"\n" name.txt; + jkind_annotation i ppf jkind and module_declaration i ppf pmd = str_opt_loc i ppf pmd.pmd_name; @@ -981,7 +1064,9 @@ and constructor_decl i ppf {pcd_name; pcd_vars; pcd_args; pcd_res; pcd_loc; pcd_attributes} = line i ppf "%a\n" fmt_location pcd_loc; line (i+1) ppf "%a\n" fmt_string_loc pcd_name; - if pcd_vars <> [] then line (i+1) ppf "pcd_vars =%a\n" typevars pcd_vars; + if pcd_vars <> [] then ( + line (i+1) ppf "pcd_vars\n"; + list (i+1) typevar ppf pcd_vars); attributes i ppf pcd_attributes; constructor_arguments (i+1) ppf pcd_args; option (i+1) core_type ppf pcd_res @@ -1087,7 +1172,9 @@ and directive_argument i ppf x = | Pdir_ident (li) -> line i ppf "Pdir_ident %a\n" fmt_longident li | Pdir_bool (b) -> line i ppf "Pdir_bool %s\n" (string_of_bool b) -let interface ppf x = list 0 signature_item ppf x +let interface ppf {psg_items; psg_modalities} = + modalities 0 ppf psg_modalities; + list 0 signature_item ppf psg_items let implementation ppf x = list 0 structure_item ppf x diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index 862de77fe..9d40773c8 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -387,6 +387,10 @@ module IdTbl = next: ('lock, 'a, 'b) t; (** The table before opening the module. *) + + locks: 'lock list; + (** The locks from the definition of [root] to this [open], in + that order. *) } | Map of { @@ -409,7 +413,7 @@ module IdTbl = let remove id tbl = {tbl with current = Ident.remove id tbl.current} - let add_open slot wrap root components next = + let add_open slot wrap root components locks next = let using = match slot with | None -> None @@ -417,7 +421,7 @@ module IdTbl = in { current = Ident.empty; - layer = Open {using; root; components; next}; + layer = Open {using; root; components; next; locks}; } let remove_last_open rt tbl = @@ -472,10 +476,10 @@ module IdTbl = Ok (Pident id, macc, desc) with Not_found -> begin match tbl.layer with - | Open {using; root; next; components} -> + | Open {using; root; next; components; locks} -> begin try let descr = wrap (NameMap.find name components) in - let res = Pdot (root, name), macc, descr in + let res = Pdot (root, name), (locks @ macc), descr in if mark then begin match using with | None -> () | Some f -> begin match @@ -501,6 +505,18 @@ module IdTbl = let find_name_and_locks wrap ~mark name tbl = find_name_and_locks wrap ~mark name tbl [] + (** Find all the locks in the context. Equivalent to [find_name_and_locks] + on a missing name. *) + let rec get_all_locks tbl macc = + match tbl.layer with + | Open {next; _} + | Map {next; _} -> get_all_locks next macc + | Lock {lock; next} -> get_all_locks next (lock :: macc) + | Nothing -> macc + + let get_all_locks tbl = + get_all_locks tbl [] + (** Find item by name whose accesses are not affected by locks, and thus shouldn't encounter any locks. *) let find_name wrap ~mark name tbl = @@ -682,7 +698,7 @@ and module_components_repr = | Functor_comps of functor_components and module_components_failure = - | No_components_abstract + | No_components_abstract of Path.t | No_components_alias of Path.t and structure_components = { @@ -787,6 +803,14 @@ type unbound_value_hint = | No_hint | Missing_rec of Location.t +type structure_components_reason = + | Project + | Open + +let print_structure_components_reason ppf = function + | Project -> Format.fprintf ppf "have any components" + | Open -> Format.fprintf ppf "be opend" + type lookup_error = | Unbound_value of Longident.t * unbound_value_hint | Unbound_type of Longident.t @@ -802,9 +826,9 @@ type lookup_error = | Masked_self_variable of Longident.t | Masked_ancestor_variable of Longident.t | Structure_used_as_functor of Longident.t - | Abstract_used_as_functor of Longident.t - | Functor_used_as_structure of Longident.t - | Abstract_used_as_structure of Longident.t + | Abstract_used_as_functor of Longident.t * Path.t + | Functor_used_as_structure of Longident.t * structure_components_reason + | Abstract_used_as_structure of Longident.t * Path.t * structure_components_reason | Generative_used_as_applicative of Longident.t | Illegal_reference_to_recursive_module | Cannot_scrape_alias of Longident.t * Path.t @@ -814,6 +838,7 @@ type lookup_error = Mode.Value.Comonadic.error * closure_context | Local_value_used_in_exclave of lock_item * Longident.t | Non_value_used_in_object of Longident.t * type_expr * Jkind.Violation.t + | Error_from_persistent_env of Persistent_env.error type error = | Missing_module of Location.t * Path.t * Path.t @@ -2137,9 +2162,19 @@ let rec components_of_module_maker Named (param, force_modtype (modtype scoping sub ty_arg))); fcomp_res = force_modtype (modtype scoping sub ty_res); fcomp_shape = cm_shape; +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 fcomp_cache = stamped_create 17; fcomp_subst_cache = stamped_create 17 }) | Mty_ident _ | Mty_strengthen _ -> Error No_components_abstract +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + fcomp_cache = Hashtbl.create 17; + fcomp_subst_cache = Hashtbl.create 17 }) + | Mty_ident _ | Mty_strengthen _ -> Error No_components_abstract +======= + fcomp_cache = Hashtbl.create 17; + fcomp_subst_cache = Hashtbl.create 17 }) + | Mty_ident p | Mty_strengthen (_, p, _) -> Error (No_components_abstract p) +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a | Mty_alias p -> Error (No_components_alias p) | Mty_for_hole -> Error No_components_abstract @@ -2642,6 +2677,168 @@ end) = struct | Sig_module(id, presence, md, _, _) -> let map, shape = proj_shape map mod_shape (Shape.Item.module_ id) in map, M.add_module_declaration ~check:false ?shape id presence md env +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + modules = IdTbl.add id (Mod_unbound reason) env.modules; + summary = Env_module_unbound(env.summary, name, reason) } + +(* Open a signature path *) + +let add_components slot root env0 comps = + let add_l w comps env0 = + TycompTbl.add_open slot w root comps env0 + in + let add w comps env0 = IdTbl.add_open slot w root comps env0 in + let constrs = + add_l (fun x -> `Constructor x) comps.comp_constrs env0.constrs + in + let labels = + add_l (fun x -> `Label x) comps.comp_labels env0.labels + in + let values = + add (fun x -> `Value x) comps.comp_values env0.values + in + let types = + add (fun x -> `Type x) comps.comp_types env0.types + in + let modtypes = + add (fun x -> `Module_type x) comps.comp_modtypes env0.modtypes + in + let classes = + add (fun x -> `Class x) comps.comp_classes env0.classes + in + let cltypes = + add (fun x -> `Class_type x) comps.comp_cltypes env0.cltypes + in + let modules = + add (fun x -> `Module x) comps.comp_modules env0.modules + in + { env0 with + summary = Env_open(env0.summary, root); + constrs; + labels; + values; + types; + modtypes; + classes; + cltypes; + modules; + } + +let open_signature slot root env0 : (_,_) result = + match get_components_res (find_module_components root env0) with + | Error _ -> Error `Not_found + | exception Not_found -> Error `Not_found + | Ok (Functor_comps _) -> Error `Functor + | Ok (Structure_comps comps) -> + Ok (add_components slot root env0 comps) + +let remove_last_open root env0 = + let rec filter_summary summary = + match summary with + Env_empty -> raise Exit + | Env_open (s, p) -> + if Path.same p root then s else raise Exit + | Env_value _ + | Env_type _ + | Env_extension _ + | Env_module _ + | Env_modtype _ + | Env_class _ + | Env_cltype _ + | Env_functor_arg _ + | Env_constraints _ + | Env_persistent _ + | Env_copy_types _ + | Env_value_unbound _ + | Env_module_unbound _ -> + map_summary filter_summary summary + in + match filter_summary env0.summary with + | summary -> + let rem_l tbl = TycompTbl.remove_last_open root tbl + and rem tbl = IdTbl.remove_last_open root tbl in + Some { env0 with + summary; + constrs = rem_l env0.constrs; + labels = rem_l env0.labels; + values = rem env0.values; + types = rem env0.types; + modtypes = rem env0.modtypes; + classes = rem env0.classes; + cltypes = rem env0.cltypes; + modules = rem env0.modules; } + | exception Exit -> + None + +(* Open a signature from a file *) + +let open_pers_signature name env = + match open_signature None (Pident(Ident.create_persistent name)) env with + | (Ok _ | Error `Not_found as res) -> res + | Error `Functor -> assert false + (* a compilation unit cannot refer to a functor *) + +let open_signature + ?(used_slot = ref false) + ?(loc = Location.none) ?(toplevel = false) + ovf root env = + let unused = + match ovf with + | Asttypes.Fresh -> Warnings.Unused_open (Path.name root) + | Asttypes.Override -> Warnings.Unused_open_bang (Path.name root) + in + let warn_unused = + Warnings.is_active unused + and warn_shadow_id = + Warnings.is_active (Warnings.Open_shadow_identifier ("", "")) + and warn_shadow_lc = + Warnings.is_active (Warnings.Open_shadow_label_constructor ("","")) + in + if not toplevel && not loc.Location.loc_ghost + && (warn_unused || warn_shadow_id || warn_shadow_lc) + then begin + let used = used_slot in + if warn_unused then + !add_delayed_check_forward + (fun () -> + if not !used then begin + used := true; + Location.prerr_warning loc unused + end + ); + let shadowed = ref [] in + let slot s b = + begin match check_shadowing env b with + | Some kind when + ovf = Asttypes.Fresh && not (List.mem (kind, s) !shadowed) -> + shadowed := (kind, s) :: !shadowed; + let w = + match kind with + | "label" | "constructor" -> + Warnings.Open_shadow_label_constructor (kind, s) + | _ -> Warnings.Open_shadow_identifier (kind, s) + in + Location.prerr_warning loc w + | _ -> () + end; + used := true + in + open_signature (Some slot) root env + end + else open_signature None root env + +(* Read a signature from a file *) +let read_signature modname cmi ~add_binding = + let mty = read_pers_mod modname cmi ~add_binding in +======= + modules = IdTbl.add id (Mod_unbound reason) env.modules; + summary = Env_module_unbound(env.summary, name, reason) } + +(* Read a signature from a file *) +let read_signature modname cmi ~add_binding = + let mty = read_pers_mod modname cmi ~add_binding in +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a | Sig_modtype(id, decl, _) -> let map, shape = proj_shape map mod_shape (Shape.Item.module_type id) in map, M.add_modtype ?shape id decl env @@ -3165,6 +3362,25 @@ type _ load = | Load : module_data load | Don't_load : unit load +let lookup_global_name_module_no_locks + (type a) (load : a load) ~errors ~use ~loc name env = + let path = Pident(Ident.create_global name) in + match load with + | Don't_load -> + check_pers_mod ~allow_hidden:false ~loc name; + path, (() : a) + | Load -> begin + match find_pers_mod ~allow_hidden:false name with + | mda -> + use_module ~use ~loc path mda; + path, (mda : a) + | exception Not_found -> + let s = Global_module.Name.to_string name in + may_lookup_error errors loc env (Unbound_module (Lident s)) + | exception Persistent_env.Error err -> + may_lookup_error errors loc env (Error_from_persistent_env err) + end + let lookup_ident_module (type a) (load : a load) ~errors ~use ~loc s env = let path, locks, data = match find_name_module ~mark:use s env.modules with @@ -3182,20 +3398,13 @@ let lookup_ident_module (type a) (load : a load) ~errors ~use ~loc s env = | Mod_unbound reason -> report_module_unbound ~errors ~loc env reason | Mod_persistent -> begin - (* Currently there are never instance arguments *) + (* This is only used when processing [Longident.t]s, which never have + instance arguments *) let name = Global_module.Name.create_no_args s in - match load with - | Don't_load -> - check_pers_mod ~allow_hidden:false ~loc name; - path, locks, (() : a) - | Load -> begin - match find_pers_mod ~allow_hidden:false name with - | mda -> - use_module ~use ~loc path mda; - path, locks, (mda : a) - | exception Not_found -> - may_lookup_error errors loc env (Unbound_module (Lident s)) - end + let path, a = + lookup_global_name_module_no_locks load ~errors ~use ~loc name env + in + path, locks, a end let escape_mode ~errors ~env ~loc ~item ~lid vmode escaping_context = @@ -3389,16 +3598,16 @@ let rec lookup_module_components ~errors ~use ~loc lid env = !components_of_functor_appl' ~loc ~f_path ~f_comp ~arg env in Papply (f_path, arg), [], comps -and lookup_structure_components ~errors ~use ~loc lid env = +and lookup_structure_components ~errors ~use ~loc ?(reason = Project) lid env = let path, locks, comps = lookup_module_components ~errors ~use ~loc lid env in match get_components_res comps with | Ok (Structure_comps comps) -> path, locks, comps | Ok (Functor_comps _) -> - may_lookup_error errors loc env (Functor_used_as_structure lid) - | Error No_components_abstract -> - may_lookup_error errors loc env (Abstract_used_as_structure lid) + may_lookup_error errors loc env (Functor_used_as_structure (lid, reason)) + | Error (No_components_abstract p) -> + may_lookup_error errors loc env (Abstract_used_as_structure (lid, p, reason)) | Error (No_components_alias p) -> - may_lookup_error errors loc env (Cannot_scrape_alias(lid, p)) + may_lookup_error errors loc env (Cannot_scrape_alias (lid, p)) and get_functor_components ~errors ~loc lid env comps = match get_components_res comps with @@ -3410,10 +3619,10 @@ and get_functor_components ~errors ~loc lid env comps = end | Ok (Structure_comps _) -> may_lookup_error errors loc env (Structure_used_as_functor lid) - | Error No_components_abstract -> - may_lookup_error errors loc env (Abstract_used_as_functor lid) + | Error (No_components_abstract p) -> + may_lookup_error errors loc env (Abstract_used_as_functor (lid, p)) | Error (No_components_alias p) -> - may_lookup_error errors loc env (Cannot_scrape_alias(lid, p)) + may_lookup_error errors loc env (Cannot_scrape_alias (lid, p)) and lookup_all_args ~errors ~use ~loc lid0 env = let rec loop_lid_arg args = function @@ -3582,8 +3791,165 @@ let lookup_all_dot_constructors ~errors ~use ~loc usage l s env = (cda.cda_description, use_fun)) cstrs +(* Open a signature path *) + +let add_components slot root env0 comps locks = + let add_l w comps env0 = + TycompTbl.add_open slot w root comps env0 + in + let add_v w comps env0 = + IdTbl.add_open slot w root comps locks env0 + in + let add w comps env0 = + IdTbl.add_open slot w root comps ([] : empty list) env0 + in + let constrs = + add_l (fun x -> `Constructor x) comps.comp_constrs env0.constrs + in + let labels = + add_l (fun x -> `Label x) comps.comp_labels env0.labels + in + let values = + add_v (fun x -> `Value x) comps.comp_values env0.values + in + let types = + add (fun x -> `Type x) comps.comp_types env0.types + in + let modtypes = + add (fun x -> `Module_type x) comps.comp_modtypes env0.modtypes + in + let classes = + add_v (fun x -> `Class x) comps.comp_classes env0.classes + in + let cltypes = + add (fun x -> `Class_type x) comps.comp_cltypes env0.cltypes + in + let modules = + add_v (fun x -> `Module x) comps.comp_modules env0.modules + in + { env0 with + summary = Env_open(env0.summary, root); + constrs; + labels; + values; + types; + modtypes; + classes; + cltypes; + modules; + } + +let open_signature_by_path path env0 = + let comps = find_structure_components path env0 in + add_components None path env0 comps [] + +let open_signature ~errors ~loc slot lid env0 = + let (root, locks, comps) = + lookup_structure_components ~errors ~use:true ~loc ~reason:Open lid env0 + in + root, add_components slot root env0 comps locks + +let remove_last_open root env0 = + let rec filter_summary summary = + match summary with + Env_empty -> raise Exit + | Env_open (s, p) -> + if Path.same p root then s else raise Exit + | Env_value _ + | Env_type _ + | Env_extension _ + | Env_module _ + | Env_modtype _ + | Env_class _ + | Env_cltype _ + | Env_functor_arg _ + | Env_constraints _ + | Env_persistent _ + | Env_copy_types _ + | Env_value_unbound _ + | Env_module_unbound _ -> + map_summary filter_summary summary + in + match filter_summary env0.summary with + | summary -> + let rem_l tbl = TycompTbl.remove_last_open root tbl + and rem tbl = IdTbl.remove_last_open root tbl in + Some { env0 with + summary; + constrs = rem_l env0.constrs; + labels = rem_l env0.labels; + values = rem env0.values; + types = rem env0.types; + modtypes = rem env0.modtypes; + classes = rem env0.classes; + cltypes = rem env0.cltypes; + modules = rem env0.modules; } + | exception Exit -> + None + +(* Open a signature from a file *) + +let open_pers_signature name env = + open_signature ~errors:false ~loc:Location.none None (Lident name) env + +let open_signature + ~used_slot + ~loc ~toplevel + ovf lid env = + let lid_s = Format.asprintf "%a" Pprintast.longident lid.txt in + let unused = + match ovf with + | Asttypes.Fresh -> Warnings.Unused_open lid_s + | Asttypes.Override -> Warnings.Unused_open_bang lid_s + in + let warn_unused = + Warnings.is_active unused + and warn_shadow_id = + Warnings.is_active (Warnings.Open_shadow_identifier ("", "")) + and warn_shadow_lc = + Warnings.is_active (Warnings.Open_shadow_label_constructor ("","")) + in + if not toplevel && not loc.Location.loc_ghost + && (warn_unused || warn_shadow_id || warn_shadow_lc) + then begin + let used = used_slot in + if warn_unused then + !add_delayed_check_forward + (fun () -> + if not !used then begin + used := true; + Location.prerr_warning loc unused + end + ); + let shadowed = ref [] in + let slot s b = + begin match check_shadowing env b with + | Some kind when + ovf = Asttypes.Fresh && not (List.mem (kind, s) !shadowed) -> + shadowed := (kind, s) :: !shadowed; + let w = + match kind with + | "label" | "constructor" -> + Warnings.Open_shadow_label_constructor (kind, s) + | _ -> Warnings.Open_shadow_identifier (kind, s) + in + Location.prerr_warning loc w + | _ -> () + end; + used := true + in + open_signature ~errors:true ~loc:lid.loc (Some slot) lid.txt env + end + else open_signature ~errors:true ~loc:lid.loc None lid.txt env + (* General forms of the lookup functions *) +let walk_locks_for_module_lookup ~errors ~lock ~loc ~env ~lid locks = + if lock then + walk_locks ~errors ~loc ~env ~item:Module ~lid mda_mode None locks + else + mode_default mda_mode + let lookup_module_path ~errors ~use ~lock ~loc ~load lid env : Path.t * _ = let path, locks = match lid with @@ -3605,11 +3971,32 @@ let lookup_module_path ~errors ~use ~lock ~loc ~load lid env : Path.t * _ = let path_f, _comp_f, path_arg = lookup_apply ~errors ~use ~loc lid env in Papply(path_f, path_arg), [] in - let vmode = - if lock then - walk_locks ~errors ~loc ~env ~item:Module ~lid mda_mode None locks + let vmode = walk_locks_for_module_lookup ~errors ~lock ~loc ~lid ~env locks in + path, vmode + +let lookup_module_instance_path ~errors ~use ~lock ~loc ~load name env = + (* The locks are whatever locks we would find if we went through + [lookup_module_path] on a module not found in the environment *) + let locks = IdTbl.get_all_locks env.modules in + let path = + if !Clflags.transparent_modules && not load then + let path, () = + lookup_global_name_module_no_locks Don't_load ~errors ~use ~loc name env + in + path else - mode_default mda_mode + let path, (_ : module_data) = + lookup_global_name_module_no_locks Load ~errors ~use ~loc name env + in + path + in + let vmode = + let lid : Longident.t = + (* This is only used for error reporting. Probably in the long term we + want [Longident.t] to include instance names *) + Lident (name |> Global_module.Name.to_string) + in + walk_locks_for_module_lookup ~errors ~lock ~loc ~lid ~env locks in path, vmode @@ -3799,6 +4186,12 @@ let lookup_module_path ?(use=true) ?(lock=use) ~loc ~load lid env = in path, vmode.mode +let lookup_module_instance_path ?(use=true) ?(lock=use) ~loc ~load lid env = + let path, vmode = + lookup_module_instance_path ~errors:true ~use ~lock ~loc ~load lid env + in + path, vmode.mode + let lookup_module ?(use=true) ?(lock=use) ~loc lid env = let path, desc, vmode = lookup_module ~errors:true ~use ~lock ~loc lid env in path, desc, vmode.mode @@ -4320,18 +4713,22 @@ let report_lookup_error _loc env ppf = function fprintf ppf "Illegal recursive module reference" | Structure_used_as_functor lid -> fprintf ppf "@[The module %a is a structure, it cannot be applied@]" + (Style.as_inline_code !print_longident) lid + | Abstract_used_as_functor (lid, p) -> + fprintf ppf "@[The module %a is of abstract type %a, it cannot be applied@]" (Style.as_inline_code !print_longident) lid - | Abstract_used_as_functor lid -> - fprintf ppf "@[The module %a is abstract, it cannot be applied@]" - (Style.as_inline_code !print_longident) lid - | Functor_used_as_structure lid -> + (Style.as_inline_code !print_path) p + | Functor_used_as_structure (lid, reason) -> fprintf ppf "@[The module %a is a functor, \ - it cannot have any components@]" + it cannot %a@]" (Style.as_inline_code !print_longident) lid - | Abstract_used_as_structure lid -> - fprintf ppf "@[The module %a is abstract, \ - it cannot have any components@]" + print_structure_components_reason reason + | Abstract_used_as_structure (lid, p, reason) -> + fprintf ppf "@[The module %a is of abstract type %a, \ + it cannot %a@]" (Style.as_inline_code !print_longident) lid + (Style.as_inline_code !print_path) p + print_structure_components_reason reason | Generative_used_as_applicative lid -> fprintf ppf "@[The functor %a is generative,@ it@ cannot@ be@ \ applied@ in@ type@ expressions@]" @@ -4400,6 +4797,8 @@ let report_lookup_error _loc env ppf = function (Style.as_inline_code !print_longident) lid (Jkind.Violation.report_with_offender ~offender:(fun ppf -> !print_type_expr ppf typ)) err + | Error_from_persistent_env err -> + Persistent_env.report_error ppf err let report_error ppf = function | Missing_module(_, path1, path2) -> diff --git a/src/ocaml/typing/persistent_env.ml b/src/ocaml/typing/persistent_env.ml index ce57030ab..a16922a1e 100644 --- a/src/ocaml/typing/persistent_env.ml +++ b/src/ocaml/typing/persistent_env.ml @@ -34,11 +34,39 @@ type error = | Direct_reference_from_wrong_package of CU.t * filepath * CU.Prefix.t | Illegal_import_of_parameter of Global_module.Name.t * filepath - | Not_compiled_as_parameter of Global_module.Name.t * filepath + | Not_compiled_as_parameter of Global_module.Name.t | Imported_module_has_unset_parameter of { imported : Global_module.Name.t; parameter : Global_module.Name.t; } + | Imported_module_has_no_such_parameter of + { imported : CU.Name.t; + valid_parameters : Global_module.Name.t list; + parameter : Global_module.Name.t; + value : Global_module.Name.t; + } + | Not_compiled_as_argument of + { param : Global_module.Name.t; + value : Global_module.Name.t; + filename : filepath; + } + | Argument_type_mismatch of + { value : Global_module.Name.t; + filename : filepath; + expected : Global_module.Name.t; + actual : Global_module.Name.t; + } + | Inconsistent_global_name_resolution of { + name: Global_module.Name.t; + old_global : Global_module.t; + new_global : Global_module.t; + first_mentioned_by : Global_module.Name.t; + now_mentioned_by : Global_module.Name.t; + } + | Unbound_module_as_argument_value of + { instance: Global_module.Name.t; + value: Global_module.Name.t; + } exception Error of error let error err = raise (Error err) @@ -66,13 +94,18 @@ type can_load_cmis = | Can_load_cmis | Cannot_load_cmis of Lazy_backtrack.log -(* Data relating directly to a .cmi *) +type global_name_info = { + gn_global : Global_module.t; + gn_mentioned_by : Global_module.Name.t; (* For error reporting *) +} + +(* Data relating directly to a .cmi - does not depend on arguments *) type import = { imp_is_param : bool; - imp_params : Global_module.Name.t list; + imp_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) imp_arg_for : Global_module.Name.t option; imp_impl : CU.t option; (* None iff import is a parameter *) - imp_sign : Subst.Lazy.signature; + imp_raw_sign : Signature_with_global_bindings.t; imp_filename : string; imp_visibility: Load_path.visibility; imp_crcs : Import_info.Intf.t array; @@ -85,6 +118,20 @@ type import_info = | Missing | Found of import +(* Data relating to a global name (possibly with arguments) but not necessarily + a value in scope. For example, if we've encountered a module only by seeing + it used as the name or value of an argument in a [Global_module.Name.t], we + won't bind it or construct a [pers_struct] for it but it will have a + [pers_name]. *) +type pers_name = { + pn_import : import; + pn_global : Global_module.t; + pn_arg_for : Global_module.Name.t option; + (* Currently always the same as [pn_import.imp_arg_for], since parameters + don't have parameters *) + pn_sign : Subst.Lazy.signature; +} + (* What a global identifier is actually bound to in Lambda code *) type binding = | Runtime_parameter of Ident.t (* Bound to a runtime parameter *) @@ -102,7 +149,9 @@ module Param_set = Global_module.Name.Set (* If you add something here, _do not forget_ to add it to [clear]! *) type 'a t = { + globals : (Global_module.Name.t, global_name_info) Hashtbl.t; imports : (CU.Name.t, import_info) Hashtbl.t; + persistent_names : (Global_module.Name.t, pers_name) Hashtbl.t; persistent_structures : (Global_module.Name.t, 'a pers_struct_info) Hashtbl.t; imported_units: CU.Name.Set.t ref; @@ -114,7 +163,9 @@ type 'a t = { } let empty () = { + globals = Hashtbl.create 17; imports = Hashtbl.create 17; + persistent_names = Hashtbl.create 17; persistent_structures = Hashtbl.create 17; imported_units = ref CU.Name.Set.empty; imported_opaque_units = ref CU.Name.Set.empty; @@ -126,7 +177,9 @@ let empty () = { let clear penv = let { + globals; imports; + persistent_names; persistent_structures; imported_units; imported_opaque_units; @@ -135,7 +188,9 @@ let clear penv = can_load_cmis; short_paths_basis; } = penv in + Hashtbl.clear globals; Hashtbl.clear imports; + Hashtbl.clear persistent_names; Hashtbl.clear persistent_structures; imported_units := CU.Name.Set.empty; imported_opaque_units := CU.Name.Set.empty; @@ -165,6 +220,11 @@ let find_import_info_in_cache {imports; _} import = | Missing -> None | Found imp -> Some imp +let find_name_info_in_cache {persistent_names; _} name = + match Hashtbl.find persistent_names name with + | exception Not_found -> None + | pn -> Some pn + let find_info_in_cache {persistent_structures; _} name = match Hashtbl.find persistent_structures name with | exception Not_found -> None @@ -185,7 +245,7 @@ let register_parameter ({param_imports; _} as penv) modname = () | Some imp -> if not imp.imp_is_param then - raise (Error (Not_compiled_as_parameter(modname, imp.imp_filename))) + raise (Error (Not_compiled_as_parameter modname)) end; param_imports := Param_set.add modname !param_imports @@ -311,10 +371,7 @@ let acknowledge_import penv ~check modname pers_sig = let params = cmi.cmi_params in let crcs = cmi.cmi_crcs in let flags = cmi.cmi_flags in - let sign = - (* Freshen identifiers bound by signature *) - Subst.Lazy.signature Make_local Subst.identity cmi.cmi_sign - in + let sign = Signature_with_global_bindings.read_from_cmi cmi in if not (CU.Name.equal modname found_name) then error (Illegal_renaming(modname, found_name, filename)); List.iter @@ -351,7 +408,7 @@ let acknowledge_import penv ~check modname pers_sig = imp_params = params; imp_arg_for = arg_for; imp_impl = impl; - imp_sign = sign; + imp_raw_sign = sign; imp_filename = filename; imp_visibility = visibility; imp_crcs = crcs; @@ -392,23 +449,297 @@ let find_import ~allow_hidden penv ~check modname = add_import penv modname; acknowledge_import penv ~check modname psig +let remember_global { globals; _ } global ~mentioned_by = + if Global_module.has_arguments global then + let global_name = Global_module.to_name global in + match Hashtbl.find globals global_name with + | exception Not_found -> + Hashtbl.add globals global_name + { gn_global = global; gn_mentioned_by = mentioned_by } + | { gn_global = old_global; gn_mentioned_by = first_mentioned_by } -> + if not (Global_module.equal old_global global) then + error (Inconsistent_global_name_resolution { + name = global_name; + old_global; + new_global = global; + first_mentioned_by; + now_mentioned_by = mentioned_by; + }) + +let current_unit_is_aux name ~allow_args = + match CU.get_current () with + | None -> false + | Some current -> + match CU.to_global_name current with + | Some { head; args } -> + (args = [] || allow_args) + && CU.Name.equal name (head |> CU.Name.of_string) + | None -> false + +let current_unit_is name = + current_unit_is_aux name ~allow_args:false + +let current_unit_is_instance_of name = + current_unit_is_aux name ~allow_args:true + (* Enforce the subset rule: we can only refer to a module if that module's - parameters are also our parameters. *) -let check_for_unset_parameters penv modname import = + parameters are also our parameters. This assumes that all of the arguments in + [global] have already been checked, so we only need to check [global] + itself (in other words, we don't need to recurse). + + Formally, the subset rule for an unelaborated global (that is, a + [Global_module.Name.t]) says that [M[P_1:A_1]...[P_n:A_n]] is accessible if, + for each parameter [P] that [M] takes, either [P] is one of the parameters + [P_i], or the current compilation unit also takes [P]. + + This function takes an _elaborated_ global (that is, a [Global_module.t]), + which "bakes in" crucial information: all of the instantiated module's + parameters are accounted for, so we need only concern ourselves with the + syntax of the global and the current compilation unit's parameters. + Specifically, the subset rule for an elaborated global says that + [M[P_1:A_1]...[P_n:A_n]{Q_1:B_1}...{Q_m:B_m}] is accessible if each hidden + argument value [B_i] is a parameter of the current unit. Operationally, this + makes sense since the hidden argument [{Q:B}] means "as the argument [Q] to + [M], we're passing our own parameter [B] along." (Currently [B] is always + simply [Q] again. This is likely to change with future extensions, but the + requirement will be the same: [B] needs to be something we're taking as a + parameter.) *) +let check_for_unset_parameters penv global = List.iter - (fun param -> - if not (is_registered_parameter_import penv param) then + (fun ({ param = _; value = arg_value } : Global_module.argument) -> + let value_name = Global_module.to_name arg_value in + if not (is_registered_parameter_import penv value_name) then error (Imported_module_has_unset_parameter { - imported = modname; - parameter = param; + imported = Global_module.to_name global; + parameter = value_name; })) - import.imp_params + global.Global_module.hidden_args -let make_binding _penv modname (import : import) : binding = - match import with - | { imp_impl = Some unit; imp_params = [] } -> Constant unit - | { imp_impl = None } | { imp_params = _ :: _ } -> - Runtime_parameter (Ident.create_local_binding_for_global modname) +let rec global_of_global_name penv ~check name = + match Hashtbl.find penv.globals name with + | { gn_global; _ } -> gn_global + | exception Not_found -> + let pn = find_pers_name ~allow_hidden:true penv check name in + pn.pn_global + +and compute_global penv modname ~params check = + let arg_global_by_param_name = + List.map + (fun ({ param = name; value } : Global_module.Name.argument) -> + match global_of_global_name penv ~check value with + | value -> name, value + | exception Not_found -> + error + (Unbound_module_as_argument_value { instance = modname; value })) + modname.Global_module.Name.args + in + let subst : Global_module.subst = Global_module.Name.Map.of_list arg_global_by_param_name in + if check && modname.Global_module.Name.args <> [] then begin + (* A paragraph for the future that I don't want to lose track of: + + Produce the expected type of each argument. This takes into account + substitutions among the parameter types: if the parameters are T and + To_string[T] and the arguments are [Int] and [Int_to_string], we want to + check that [Int] has type [T] and that [Int_to_string] has type + [To_string[T\Int]]. + + For now, our parameters don't take parameters, so we can just assert that + the parameter name has no arguments and keep it as the expected type. *) + let expected_type_by_param_name = + List.map + (fun param -> + assert (not (Global_module.has_arguments param)); + Global_module.to_name param, param) + params + in + let compare_by_param (param1, _) (param2, _) = + Global_module.Name.compare param1 param2 + in + Misc.Stdlib.List.merge_iter + ~cmp:compare_by_param + expected_type_by_param_name + arg_global_by_param_name + ~left_only: + (fun _ -> + (* Parameter with no argument: fine (subset rule will be checked by + [check_for_unset_parameters] later) *) + ()) + ~right_only: + (fun (param, value) -> + (* Argument with no parameter: not fine *) + raise + (Error (Imported_module_has_no_such_parameter { + imported = CU.Name.of_head_of_global_name modname; + valid_parameters = params |> List.map Global_module.to_name; + parameter = param; + value = value |> Global_module.to_name; + }))) + ~both: + (fun (param_name, expected_type_global) (_arg_name, arg_value_global) -> + let arg_value = arg_value_global |> Global_module.to_name in + let pn = find_pers_name ~allow_hidden:true penv check arg_value in + let actual_type = + match pn.pn_arg_for with + | None -> + error (Not_compiled_as_argument + { param = param_name; value = arg_value; + filename = pn.pn_import.imp_filename }) + | Some ty -> ty + in + let actual_type_global = + global_of_global_name penv ~check actual_type + in + if not (Global_module.equal expected_type_global actual_type_global) + then begin + let expected_type = Global_module.to_name expected_type_global in + if Global_module.Name.equal expected_type actual_type then + (* This shouldn't happen, I don't think, but if it does, I'd rather + not output an "X != X" sort of error message *) + Misc.fatal_errorf + "Mismatched argument type (despite same name):@ \ + expected %a,@ got %a" + Global_module.print expected_type_global + Global_module.print actual_type_global + else + raise (Error (Argument_type_mismatch { + value = arg_value; + filename = pn.pn_import.imp_filename; + expected = expected_type; + actual = actual_type; + })) + end) + end; + (* Form the name without any arguments at all, then substitute in all the + arguments. A bit roundabout but should be sound *) + let hidden_args = + List.map + (fun param : Global_module.argument -> + { param = Global_module.to_name param; value = param }) + params + in + let global_without_args = + (* Won't raise an exception, since the hidden args are all different + (since the params are different, or else we have bigger problems) *) + Global_module.create_exn modname.Global_module.Name.head [] ~hidden_args + in + let global, _changed = Global_module.subst global_without_args subst in + global + +and acknowledge_pers_name penv check global_name import = + let params = import.imp_params in + let arg_for = import.imp_arg_for in + let sign = import.imp_raw_sign in + let global = compute_global penv global_name ~params check in + (* This checks only [global] itself without recursing into argument values. + That's fine, however, since those argument values will have come from + recursive calls to [global_of_global_name] and therefore have passed + through here already. *) + check_for_unset_parameters penv global; + let {persistent_names; _} = penv in + let sign = + let bindings = + List.map + (fun ({ param; value } : Global_module.argument) -> param, value) + global.Global_module.visible_args + in + (* Only need to substitute the visible args, since the hidden args only + reflect substitutions already made by visible args *) + Signature_with_global_bindings.subst sign bindings + in + Array.iter + (fun bound_global -> + remember_global penv bound_global ~mentioned_by:global_name) + sign.bound_globals; + let pn = { pn_import = import; + pn_global = global; + pn_arg_for = arg_for; + pn_sign = sign.sign; + } in + if check then check_consistency penv import; + Hashtbl.add persistent_names global_name pn; + remember_global penv global ~mentioned_by:global_name; + pn + +and find_pers_name ~allow_hidden penv check name = + let {persistent_names; _} = penv in + match Hashtbl.find persistent_names name with + | pn -> pn + | exception Not_found -> + let unit_name = CU.Name.of_head_of_global_name name in + let import = find_import ~allow_hidden penv ~check unit_name in + acknowledge_pers_name penv check name import + +let read_pers_name penv check name filename = + let unit_name = CU.Name.of_head_of_global_name name in + let import = read_import penv ~check unit_name filename in + acknowledge_pers_name penv check name import + +let need_local_ident penv (global : Global_module.t) = + (* There are three equivalent ways to phrase the question we're asking here: + + 1. Is this either a parameter or an open import? + 2. Will the generated lambda code need a parameter to take this module's + value? + 3. Is the value not statically bound? + + Crucially, all modules (besides the one being compiled or instantiated) + must be either statically bound or toplevel parameters, since the actual + functor calls that instantiate open modules happen elsewhere (so that they + can happen exactly once). *) + let global_name = global |> Global_module.to_name in + let name = global_name |> CU.Name.of_head_of_global_name in + if is_registered_parameter_import penv global_name + then + (* Already a parameter *) + true + else if current_unit_is name + then + (* Not actually importing it in the sense of needing its value (we're + building its value!) *) + false + else if current_unit_is_instance_of name + then + (* We're instantiating the module, so (here and only here!) we're accessing + its actual functor, which is a compile-time constant *) + (* CR lmaurer: Relying on [current_unit_is_instance_of] here feels hacky + when only a pretty specific call sequence gets here. *) + false + else if Global_module.is_complete global + then + (* It's a compile-time constant *) + false + else + (* Some argument is missing, or some argument's argument is missing, etc., + so it's not a compile-time constant *) + true + +let make_binding penv (global : Global_module.t) (impl : CU.t option) : binding = + let name = Global_module.to_name global in + if need_local_ident penv global + then Runtime_parameter (Ident.create_local_binding_for_global name) + else + let unit_from_cmi = + match impl with + | Some unit -> unit + | None -> + Misc.fatal_errorf + "Can't bind a parameter statically:@ %a" + Global_module.print global + in + let unit = + match global.visible_args with + | [] -> + (* Make sure the names are consistent up to the pack prefix *) + assert (Global_module.Name.equal + (unit_from_cmi |> CU.to_global_name_without_prefix) + name); + unit_from_cmi + | _ -> + (* Make sure the unit isn't supposed to be packed *) + assert (not (CU.is_packed unit_from_cmi)); + CU.of_global_name name + in + Constant unit type address = | Aunit of Compilation_unit.t @@ -427,25 +758,36 @@ type 'a sig_reader = (* Add a persistent structure to the hash table and bind it in the [Env]. Checks that OCaml source is allowed to refer to this module. *) +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 let acknowledge_pers_struct penv short_path_comps modname import val_of_pers_sig = if modname.Global_module.Name.args <> [] then Misc.fatal_errorf "TODO: Unsupported instance name: %a" Global_module.Name.print modname; +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +let acknowledge_pers_struct penv modname import val_of_pers_sig = + if modname.Global_module.Name.args <> [] then + Misc.fatal_errorf "TODO: Unsupported instance name: %a" + Global_module.Name.print modname; +======= +let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a let {persistent_structures; _} = penv in + let import = pers_name.pn_import in + let global = pers_name.pn_global in + let sign = pers_name.pn_sign in let is_param = import.imp_is_param in - let sign = import.imp_sign in + let impl = import.imp_impl in let filename = import.imp_filename in let flags = import.imp_flags in - check_for_unset_parameters penv modname import; begin match is_param, is_registered_parameter_import penv modname with | true, false -> error (Illegal_import_of_parameter(modname, filename)) | false, true -> - error (Not_compiled_as_parameter(modname, filename)) + error (Not_compiled_as_parameter modname) | true, true | false, false -> () end; - let binding = make_binding penv modname import in + let binding = make_binding penv global impl in let address : address = match binding with | Runtime_parameter id -> Alocal id @@ -480,23 +822,47 @@ let acknowledge_pers_struct penv short_path_comps modname import val_of_pers_sig register_pers_for_short_paths penv modname ps (short_path_comps modname pm); ps +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 let read_pers_struct penv val_of_pers_sig short_path_comps check modname cmi ~add_binding = let unit_name = CU.Name.of_head_of_global_name modname in let import = read_import penv ~check unit_name cmi in +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +let read_pers_struct penv val_of_pers_sig check modname cmi ~add_binding = + let unit_name = CU.Name.of_head_of_global_name modname in + let import = read_import penv ~check unit_name cmi in +======= +let read_pers_struct penv val_of_pers_sig check modname cmi ~add_binding = + let pers_name = read_pers_name penv check modname cmi in +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a if add_binding then ignore +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 (acknowledge_pers_struct penv short_path_comps modname import val_of_pers_sig +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + (acknowledge_pers_struct penv modname import val_of_pers_sig +======= + (acknowledge_pers_struct penv modname pers_name val_of_pers_sig +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a : _ pers_struct_info); - import.imp_sign + pers_name.pn_sign let find_pers_struct ~allow_hidden penv val_of_pers_sig short_path_comps check name = let {persistent_structures; _} = penv in match Hashtbl.find persistent_structures name with | ps -> check_visibility ~allow_hidden ps.ps_import; ps | exception Not_found -> +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 let unit_name = CU.Name.of_head_of_global_name name in let import = find_import ~allow_hidden penv ~check unit_name in acknowledge_pers_struct penv short_path_comps name import val_of_pers_sig +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + let unit_name = CU.Name.of_head_of_global_name name in + let import = find_import ~allow_hidden penv ~check unit_name in + acknowledge_pers_struct penv name import val_of_pers_sig +======= + let pers_name = find_pers_name ~allow_hidden penv check name in + acknowledge_pers_struct penv name pers_name val_of_pers_sig +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a let describe_prefix ppf prefix = if CU.Prefix.is_empty prefix then @@ -538,9 +904,16 @@ let check_pers_struct ~allow_hidden penv f1 f2 ~loc name = Format.asprintf "%a is inaccessible from %a" CU.print unit describe_prefix prefix + (* The cmi is necessary, otherwise the functor cannot be + generated. Moreover, aliases of functor arguments are forbidden. *) | Illegal_import_of_parameter _ -> assert false | Not_compiled_as_parameter _ -> assert false | Imported_module_has_unset_parameter _ -> assert false + | Imported_module_has_no_such_parameter _ -> assert false + | Not_compiled_as_argument _ -> assert false + | Argument_type_mismatch _ -> assert false + | Inconsistent_global_name_resolution _ -> assert false + | Unbound_module_as_argument_value _ -> assert false in let warn = Warnings.No_cmi_file(name_as_string, Some msg) in Location.prerr_warning loc warn @@ -602,17 +975,12 @@ let parameters {param_imports; _} = let looked_up {persistent_structures; _} modname = Hashtbl.mem persistent_structures modname -let is_imported {imported_units; _} s = - CU.Name.Set.mem s !imported_units - let is_imported_opaque {imported_opaque_units; _} s = CU.Name.Set.mem s !imported_opaque_units let implemented_parameter penv modname = - match - find_import_info_in_cache penv (CU.Name.of_head_of_global_name modname) - with - | Some { imp_arg_for; _ } -> imp_arg_for + match find_name_info_in_cache penv modname with + | Some { pn_arg_for; _ } -> pn_arg_for | None -> None let make_cmi penv modname kind sign alerts = @@ -626,11 +994,20 @@ let make_cmi penv modname kind sign alerts = let params = (* Needs to be consistent with [Translmod] *) parameters penv + |> List.map (global_of_global_name penv ~check:true) in + (* Need to calculate [params] before these since [global_of_global_name] has + side effects *) let crcs = imports penv in + let globals = + Hashtbl.to_seq_values penv.globals + |> Array.of_seq + |> Array.map (fun ({ gn_global; _ }) -> gn_global) + in { cmi_name = modname; cmi_kind = kind; + cmi_globals = globals; cmi_sign = sign; cmi_params = params; cmi_crcs = Array.of_list crcs; @@ -643,16 +1020,14 @@ let save_cmi penv psig = let { cmi_name = modname; cmi_kind = kind; - cmi_sign = _; - cmi_crcs = _; cmi_flags = flags; } = cmi in let crc = output_to_file_via_temporary (* see MPR#7472, MPR#4991 *) ~mode: [Open_binary] filename (fun temp_filename oc -> output_cmi temp_filename oc cmi) in - (* Enter signature in consistbl so that imports() - will also return its crc *) + (* Enter signature in consistbl so that imports() and crc_of_unit() will + also return its crc *) let data : Import_info.Intf.Nonalias.Kind.t = match kind with | Normal { cmi_impl } -> Normal cmi_impl @@ -662,9 +1037,6 @@ let save_cmi penv psig = ) ~exceptionally:(fun () -> remove_file filename) -(* TODO: These should really have locations in them where possible (adapting - [Typemod]'s [Error] constructor is probably the easiest path) *) - let report_error ppf = let open Format in function @@ -692,19 +1064,6 @@ let report_error ppf = filename (Style.as_inline_code CU.print) unit1 (Style.as_inline_code CU.print) unit2 - | Illegal_import_of_parameter(modname, filename) -> - fprintf ppf - "@[The file %a@ contains the interface of a parameter.@ \ - %a is not declared as a parameter for the current unit (-parameter %a).@]" - (Style.as_inline_code Location.print_filename) filename - (Style.as_inline_code Global_module.Name.print) modname - (Style.as_inline_code Global_module.Name.print) modname - | Not_compiled_as_parameter(modname, filename) -> - fprintf ppf - "@[The module %a@ is specified as a parameter, but %a@ \ - was not compiled with -as-parameter.@]" - (Style.as_inline_code Global_module.Name.print) modname - (Style.as_inline_code Location.print_filename) filename | Direct_reference_from_wrong_package(unit, filename, prefix) -> fprintf ppf "@[Invalid reference to %a (in file %s) from %a.@ %s]" @@ -712,23 +1071,110 @@ let report_error ppf = filename describe_prefix prefix "Can only access members of this library's package or a containing package" + | Illegal_import_of_parameter(modname, filename) -> + fprintf ppf + "@[The file %a@ contains the interface of a parameter.@ \ + %a@ is not declared as a parameter for the current unit.@]@.\ + @[@{Hint@}: \ + @[Compile the current unit with \ + @{-parameter %a@}.@]@]" + (Style.as_inline_code Location.print_filename) filename + (Style.as_inline_code Global_module.Name.print) modname + Global_module.Name.print modname + | Not_compiled_as_parameter modname -> + fprintf ppf + "@[The module %a@ is a parameter but is not declared as such for the \ + current unit.@]@.\ + @[@{Hint@}: \ + @[Compile the current unit with @{-parameter \ + %a@}.@]@]" + (Style.as_inline_code Global_module.Name.print) modname + Global_module.Name.print modname | Imported_module_has_unset_parameter { imported = modname; parameter = param } -> fprintf ppf "@[The module %a@ is not accessible because it takes %a@ \ as a parameter and the current unit does not.@]@.\ @[@{Hint@}: \ - @[Pass `-parameter %a`@ to add %a@ as a parameter@ \ + @[Pass @{-parameter %a@}@ to add %a@ as a parameter@ \ of the current unit.@]@]" (Style.as_inline_code Global_module.Name.print) modname (Style.as_inline_code Global_module.Name.print) param + Global_module.Name.print param (Style.as_inline_code Global_module.Name.print) param + | Imported_module_has_no_such_parameter + { valid_parameters; imported = modname; parameter = param; value = _; } -> + let pp_hint ppf () = + match valid_parameters with + | [] -> + fprintf ppf + "Compile %a@ with @{-parameter %a@}@ to make it a \ + parameter." + (Style.as_inline_code CU.Name.print) modname + Global_module.Name.print param + | _ -> + let print_params = + Format.pp_print_list ~pp_sep:Format.pp_print_space + (Style.as_inline_code Global_module.Name.print) + in + fprintf ppf "Parameters for %a:@ @[%a@]" + (Style.as_inline_code CU.Name.print) modname + print_params valid_parameters + in + fprintf ppf + "@[The module %a@ has no parameter %a.@]@.\ + @[@{Hint@}: @[%a@]@]" + (Style.as_inline_code CU.Name.print) modname (Style.as_inline_code Global_module.Name.print) param + pp_hint () + | Not_compiled_as_argument { param; value; filename } -> + fprintf ppf + "@[The module %a@ cannot be used as an argument for parameter \ + %a.@]@.\ + @[@{Hint@}: \ + @[Compile %a@ with @{-as-argument-for %a@}.@]@]" + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Name.print) param + (Style.as_inline_code Location.print_filename) filename + Global_module.Name.print param + | Argument_type_mismatch { value; filename; expected; actual; } -> + fprintf ppf + "@[The module %a@ is used as an argument for the parameter %a@ \ + but %a@ is an argument for %a.@]@.\ + @[@{Hint@}: \ + @[%a@ was compiled with \ + @{-as-argument-for %a@}.@]@]" + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Name.print) expected + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Name.print) actual + (Style.as_inline_code Location.print_filename) filename + Global_module.Name.print expected + | Inconsistent_global_name_resolution + { name; old_global; new_global; first_mentioned_by; now_mentioned_by } -> + fprintf ppf + "@[The name %a@ was bound to %a@ by %a@ \ + but it is instead bound to %a@ by %a.@]" + (Style.as_inline_code Global_module.Name.print) name + (Style.as_inline_code Global_module.print) old_global + (Style.as_inline_code Global_module.Name.print) first_mentioned_by + (Style.as_inline_code Global_module.print) new_global + (Style.as_inline_code Global_module.Name.print) now_mentioned_by + | Unbound_module_as_argument_value { instance; value } -> + fprintf ppf + "@[Unbound module %a@ in instance %a@]" + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Name.print) instance let () = Location.register_error_of_exn (function | Error err -> + (* Note that this module don't have location info in its errors, since + (unlike [Env]) it doesn't take [Location.t]s as arguments. However, + [Env] is often able to add location info to our errors by + re-raising them with the [Env.Error_from_persistent_env] + constructor. *) Some (Location.error_of_printer_file report_error err) | _ -> None ) diff --git a/src/ocaml/typing/signature_with_global_bindings.ml b/src/ocaml/typing/signature_with_global_bindings.ml new file mode 100644 index 000000000..b596ec139 --- /dev/null +++ b/src/ocaml/typing/signature_with_global_bindings.ml @@ -0,0 +1,79 @@ +[@@@ocaml.warning "+a-9-40-41-42"] + +type t = { + sign : Subst.Lazy.signature; + bound_globals : Global_module.t array; +} + +let read_from_cmi (cmi : Cmi_format.cmi_infos_lazy) = + let sign = + (* Freshen identifiers bound by signature *) + Subst.Lazy.signature Make_local Subst.identity cmi.cmi_sign in + let bound_globals = cmi.cmi_globals in + { sign; bound_globals } + +let array_fold_left_filter_map f init array = + let ans, new_array = Array.fold_left_map f init array in + let new_array = + (* To be replaced with something faster if we need it *) + Array.of_seq (Seq.filter_map (fun a -> a) (Array.to_seq new_array)) + in + ans, new_array + +let subst t (args : (Global_module.Name.t * Global_module.t) list) = + let { sign; bound_globals } = t in + match args with + | [] -> t + | _ -> + (* The global-level substitution *) + let arg_subst = Global_module.Name.Map.of_list args in + (* Take a bound global, substitute arguments into it, then return the + updated global while also adding it to the term-level substitution *) + let add_and_update_binding subst bound_global = + let name = Global_module.to_name bound_global in + if Global_module.Name.Map.mem name arg_subst then + (* This shouldn't happen: only globals with hidden arguments should be + in [bound_globals], and parameters shouldn't have arguments. + Previous code that was meant to handle parameterised parameters + was simply saying [subst, None] here since [add_arg] would handle + adding to [subst] and we can drop the global from [bound_globals] + if we're substituting for it. *) + Misc.fatal_error "Unexpected parameterised parameter" + else + begin + let value, changed = Global_module.subst bound_global arg_subst in + let name_id = Ident.create_global name in + let value_as_name = Global_module.to_name value in + let value_id = Ident.create_global value_as_name in + let subst = + match changed with + | `Changed -> + Subst.add_module name_id (Pident value_id) subst + | `Did_not_change -> + subst + in + let new_bound_global = + if Global_module.is_complete value then + (* No explicit binding for unparameterised or + completely-applied global *) + None + else + Some value + in + subst, new_bound_global + end + in + let subst = Subst.identity in + let subst, bound_globals = + array_fold_left_filter_map add_and_update_binding subst bound_globals + in + (* Add an argument to the substitution. *) + let add_arg subst (name, value) = + let name_id = Ident.create_global name in + let value_as_name = Global_module.to_name value in + let value_id = Ident.create_global value_as_name in + Subst.add_module name_id (Pident value_id) subst + in + let subst = List.fold_left add_arg subst args in + let sign = Subst.Lazy.signature Keep subst sign in + { sign; bound_globals } diff --git a/src/ocaml/typing/signature_with_global_bindings.mli b/src/ocaml/typing/signature_with_global_bindings.mli new file mode 100644 index 000000000..27494c9bd --- /dev/null +++ b/src/ocaml/typing/signature_with_global_bindings.mli @@ -0,0 +1,54 @@ +[@@@ocaml.warning "+a-9-40-41-42"] + +(** The [cmi_sign] and [cmi_globals] fields from a .cmi file, seen as a single + term of the form: + + {v let = in + ... + let = in + sig + ... + end v} + + Note that globals without parameters are understood to be bound but aren't + represented explicitly. *) +type t = private { + sign : Subst.Lazy.signature; + bound_globals : Global_module.t array; +} + +val read_from_cmi : Cmi_format.cmi_infos_lazy -> t + +(** To see how substitution will work on [t], suppose we have something like + {v let X = X in + let Y = Y in + let M = M{X}{Y} in + ... X ... Y ... M ... v} + Now suppose we import this module and pass [A] as the value of [X]. + + 1. We substitute [A] for [X] in the bound global names: + {v let X = A in + let Y = Y in + let M = M[X:A]{Y} in + ... X ... Y ... M ... v} + 2. Now, as usual, to work with the signature, we need to add these bindings + to the environment. However, we can't lift them in this form, as [X] and + [M] may have different bindings in different modules. To achieve + consistency, we alpha-rename to a canonical form: + {v let A = A in + let Y = Y in + let M[X:A] = M[X:A]{Y} + ... A ... Y ... M[X:A] ... v} + + In general, the plan of action is: + + 1. Form a substitution [S] mapping each argument's name to its value + 2. Apply [S] to the RHSes of the global name bindings + 3. For each new binding [L = R'], let [L'] be the [Global_module.to_name] of + [R'], substitute [L'] for [L] in the body, and update the binding to + [L' = R'] + + Note that the argument values themselves won't be returned in the new list + of bound globals, since it's assumed that they are already accounted for in + the environment. *) +val subst : t -> (Global_module.Name.t * Global_module.t) list -> t diff --git a/src/ocaml/typing/typecore.ml b/src/ocaml/typing/typecore.ml index aed2df03c..2d77733d5 100644 --- a/src/ocaml/typing/typecore.ml +++ b/src/ocaml/typing/typecore.ml @@ -264,6 +264,7 @@ type error = | Cannot_stack_allocate of Env.locality_context option | Unsupported_stack_allocation of unsupported_stack_allocation | Not_allocation + | Impossible_function_jkind of type_expr * jkind_lr exception Error of Location.t * Env.t * error exception Error_forward of Location.error @@ -856,6 +857,7 @@ let constant : Parsetree.constant -> (Typedtree.constant, error) result = if Language_extension.is_enabled Small_numbers then Ok (Const_float32 f) else Error (Float32_literal f) | Pconst_float (f,Some c) -> Error (Unknown_literal (f, c)) +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 let constant_or_raise env loc cst = match constant cst with @@ -872,6 +874,34 @@ let unboxed_constant : Jane_syntax.Layouts.constant -> (Typedtree.constant, erro Error (Unknown_literal (Misc_stdlib.format_as_unboxed_literal x, c)) | Integer (i, suffix) -> begin match constant_integer i ~suffix with +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + +let constant_or_raise env loc cst = + match constant cst with + | Ok c -> c + | Error err -> raise (Error (loc, env, err)) + +let unboxed_constant : Jane_syntax.Layouts.constant -> (Typedtree.constant, error) result + = function + | Float (f, None) -> Ok (Const_unboxed_float f) + | Float (f, Some 's') -> + if Language_extension.is_enabled Small_numbers then Ok (Const_unboxed_float32 f) + else Error (Float32_literal (Misc.format_as_unboxed_literal f)) + | Float (x, Some c) -> + Error (Unknown_literal (Misc.format_as_unboxed_literal x, c)) + | Integer (i, suffix) -> + begin match constant_integer i ~suffix with +======= + | Pconst_unboxed_float (f, None) -> + Ok (Const_unboxed_float f) + | Pconst_unboxed_float (f, Some 's') -> + if Language_extension.is_enabled Small_numbers then Ok (Const_unboxed_float32 f) + else Error (Float32_literal (Misc.format_as_unboxed_literal f)) + | Pconst_unboxed_float (x, Some c) -> + Error (Unknown_literal (Misc.format_as_unboxed_literal x, c)) + | Pconst_unboxed_integer (i, suffix) -> + begin match constant_integer i ~suffix with +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a | Ok (Int32 v) -> Ok (Const_unboxed_int32 v) | Ok (Int64 v) -> Ok (Const_unboxed_int64 v) | Ok (Nativeint v) -> Ok (Const_unboxed_nativeint v) @@ -879,13 +909,45 @@ let unboxed_constant : Jane_syntax.Layouts.constant -> (Typedtree.constant, erro | Error Int64_literal_overflow -> Error (Literal_overflow "int64#") | Error Nativeint_literal_overflow -> Error (Literal_overflow "nativeint#") | Error Unknown_constant_literal -> +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 Error (Unknown_literal (Misc_stdlib.format_as_unboxed_literal i, suffix)) end +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + Error (Unknown_literal (Misc.format_as_unboxed_literal i, suffix)) + end +======= + Error (Unknown_literal (Misc.format_as_unboxed_literal i, suffix)) + end +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 let unboxed_constant_or_raise env loc cst = match unboxed_constant cst with | Ok c -> c | Error err -> raise (error (loc, env, err)) +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +let unboxed_constant_or_raise env loc cst = + match unboxed_constant cst with + | Ok c -> c + | Error err -> raise (Error (loc, env, err)) +======= +let constant_or_raise env loc cst = + match constant cst with + | Ok c -> + (match c with + | Const_unboxed_int32 _ + | Const_unboxed_int64 _ + | Const_unboxed_nativeint _ + | Const_unboxed_float _ + | Const_unboxed_float32 _ -> + Language_extension.assert_enabled ~loc Layouts + Language_extension.Stable + | Const_int _ | Const_char _ | Const_string _ | Const_float _ + | Const_float32 _ | Const_int32 _ | Const_int64 _ | Const_nativeint _ -> + ()); + c + | Error err -> raise (Error (loc, env, err)) +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a (* Specific version of type_option, using newty rather than newgenty *) @@ -995,13 +1057,19 @@ let alloc_mode_cross_to_max_min env ty { monadic; comonadic } = (** Mode cross a right mode *) (* This is very similar to Ctype.mode_cross_right. Any bugs here are likely bugs there, too. *) -let expect_mode_cross env ty (expected_mode : expected_mode) = - if not (is_principal ty) then expected_mode else - let jkind = type_jkind_purely env ty in +let expect_mode_cross_jkind jkind (expected_mode : expected_mode) = let upper_bounds = Jkind.get_modal_upper_bounds jkind in let upper_bounds = Const.alloc_as_value upper_bounds in mode_morph (Value.imply upper_bounds) expected_mode +let expect_mode_cross env ty (expected_mode : expected_mode) = + if not (is_principal ty) then expected_mode else + let jkind = type_jkind_purely env ty in + expect_mode_cross_jkind jkind expected_mode + +(** The expected mode for objects *) +let mode_object = expect_mode_cross_jkind Jkind.for_object mode_legacy + let mode_annots_from_pat pat = let modes = match pat.ppat_desc with @@ -1894,7 +1962,7 @@ let build_or_pat env loc lid = let f = rf_either [ty] ~no_arg:false ~matched:true in (l, Some {pat_desc=Tpat_any; pat_loc=Location.none; pat_env=env; pat_type=ty; pat_extra=[]; - pat_attributes=[]}) + pat_attributes=[];pat_unique_barrier=Unique_barrier.not_computed () }) :: pats, (l, f) :: fields | _ -> pats, fields) @@ -1914,7 +1982,8 @@ let build_or_pat env loc lid = (fun (l,p) -> {pat_desc=Tpat_variant(l,p,row'); pat_loc=gloc; pat_env=env; pat_type=ty; - pat_extra=[]; pat_attributes=[]}) + pat_extra=[]; pat_attributes=[]; + pat_unique_barrier=Unique_barrier.not_computed () }) pats in match pats with @@ -1928,7 +1997,7 @@ let build_or_pat env loc lid = (fun pat pat0 -> {pat_desc=Tpat_or(pat0,pat,Some row0); pat_extra=[]; pat_loc=gloc; pat_env=env; pat_type=ty; - pat_attributes=[]}) + pat_attributes=[]; pat_unique_barrier=Unique_barrier.not_computed () }) pat pats in (path, rp { r with pat_loc = loc }) @@ -2477,9 +2546,7 @@ let split_half_typed_cases env zipped_cases = ) zipped_cases ([], []) let rec has_literal_pattern p = - match Jane_syntax.Pattern.of_ast p with - | Some (jpat, _attrs) -> has_literal_pattern_jane_syntax jpat - | None -> match p.ppat_desc with + match p.ppat_desc with | Ppat_constant _ | Ppat_interval _ -> true @@ -2500,7 +2567,7 @@ let rec has_literal_pattern p = | Ppat_open (_, p) -> has_literal_pattern p | Ppat_tuple (ps, _) -> has_literal_pattern_labeled_tuple ps - | Ppat_array ps -> + | Ppat_array (_, ps) -> List.exists has_literal_pattern ps | Ppat_unboxed_tuple (ps, _) -> has_literal_pattern_labeled_tuple ps | Ppat_record (ps, _) -> @@ -2508,11 +2575,6 @@ let rec has_literal_pattern p = | Ppat_or (p, q) -> has_literal_pattern p || has_literal_pattern q -and has_literal_pattern_jane_syntax : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array (Iapat_immutable_array ps) -> - List.exists has_literal_pattern ps - | Jpat_layout (Lpat_constant _) -> true - and has_literal_pattern_labeled_tuple labeled_ps = List.exists (fun (_, p) -> has_literal_pattern p) labeled_ps @@ -2659,7 +2721,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = instance expected_ty; pat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } in let type_tuple_pat spl closed = (* CR layouts v5: consider sharing code with [type_unboxed_tuple_pat] below @@ -2669,8 +2732,7 @@ and type_pat_aux (* If it's a principally-known tuple pattern, try to reorder *) | Ttuple labeled_tl when is_principal expected_ty -> begin match closed with - | Open -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples () + | Open -> Language_extension.assert_enabled ~loc Labeled_tuples () | Closed -> () end; reorder_pat loc penv spl closed labeled_tl expected_ty @@ -2685,8 +2747,9 @@ and type_pat_aux in let pl = List.map (fun (lbl, p, t, alloc_mode) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) lbl; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + lbl; lbl, type_pat tps Value ~alloc_mode p t) spl_ann in @@ -2695,18 +2758,18 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = newty (Ttuple (List.map (fun (lbl, p) -> lbl, p.pat_type) pl)); pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } in let type_unboxed_tuple_pat spl closed = - Jane_syntax_parsing.assert_extension_enabled ~loc Layouts - Language_extension.Beta; + Language_extension.assert_enabled ~loc Layouts + Language_extension.Stable; let args = match get_desc (expand_head !!penv expected_ty) with (* If it's a principally-known tuple pattern, try to reorder *) | Tunboxed_tuple labeled_tl when is_principal expected_ty -> begin match closed with - | Open -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples () + | Open -> Language_extension.assert_enabled ~loc Labeled_tuples () | Closed -> () end; reorder_pat loc penv spl closed labeled_tl expected_ty @@ -2722,8 +2785,9 @@ and type_pat_aux in let pl = List.map (fun (lbl, p, t, alloc_mode, sort) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) lbl; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + lbl; lbl, type_pat tps Value ~alloc_mode p t, sort) spl_ann in @@ -2735,27 +2799,9 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } - in - match Jane_syntax.Pattern.of_ast sp with - | Some (jpat, attrs) -> begin - (* Normally this would go to an auxiliary function, but this function - takes so many parameters, has such a complex type, and uses so many - local definitions, it seems better to just put the pattern matching - here. This shouldn't mess up the diff *too* much. *) - match jpat with - | Jpat_immutable_array (Iapat_immutable_array spl) -> - type_pat_array Immutable spl attrs - | Jpat_layout (Lpat_constant cst) -> - let cst = unboxed_constant_or_raise !!penv loc cst in - rvp @@ solve_expected { - pat_desc = Tpat_constant cst; - pat_loc = loc; pat_extra=[]; - pat_type = type_constant cst; - pat_attributes = attrs; - pat_env = !!penv } - end - | None -> + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } + in match sp.ppat_desc with Ppat_any -> rvp { @@ -2763,7 +2809,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = instance expected_ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_var name -> let ty = instance expected_ty in let alloc_mode = @@ -2777,7 +2824,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_unpack name -> let t = instance expected_ty in begin match name.txt with @@ -2788,7 +2836,8 @@ and type_pat_aux pat_extra=[Tpat_unpack, name.loc, sp.ppat_attributes]; pat_type = t; pat_attributes = []; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Some s -> let v = { name with txt = s } in (* We're able to pass ~is_module:true here without an error because @@ -2802,7 +2851,8 @@ and type_pat_aux pat_extra=[Tpat_unpack, loc, sp.ppat_attributes]; pat_type = t; pat_attributes = []; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } end | Ppat_alias(sq, name) -> let q = type_pat tps Value sq expected_ty in @@ -2816,7 +2866,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = q.pat_type; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_constant cst -> let cst = constant_or_raise !!penv loc cst in rvp @@ solve_expected { @@ -2824,7 +2875,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = type_constant cst; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_interval (Pconst_char c1, Pconst_char c2) -> let open Ast_helper.Pat in let gloc = Location.ghostify loc in @@ -2885,10 +2937,7 @@ and type_pat_aux match sarg' with None -> [] | Some sarg' -> - match Jane_syntax.Pattern.of_ast sarg' with - | Some ((Jpat_immutable_array _, _) - | (Jpat_layout _, _)) -> [sarg'] - | None -> match sarg' with + match sarg' with | {ppat_desc = Ppat_tuple (spl, _)} as sp when constr.cstr_arity > 1 || Builtin_attributes.explicit_arity sp.ppat_attributes @@ -2950,7 +2999,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = instance expected_ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_variant(tag, sarg) -> assert (tag <> Parmatch.some_private_tag); let constant = (sarg = None) in @@ -2967,7 +3017,8 @@ and type_pat_aux pat_loc = loc; pat_extra = []; pat_type = pat_type; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_record(lid_sp_list, closed) -> assert (lid_sp_list <> []); let expected_type, record_ty = @@ -3000,6 +3051,7 @@ and type_pat_aux pat_type = instance record_ty; pat_attributes = sp.ppat_attributes; pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed (); } in let lbl_a_list = @@ -3011,9 +3063,15 @@ and type_pat_aux in let lbl_a_list = List.map type_label_pat lbl_a_list in rvp @@ solve_expected (make_record_pat lbl_a_list) - | Ppat_array spl -> - type_pat_array (Mutable Alloc.Comonadic.Const.legacy) - spl sp.ppat_attributes + | Ppat_array (mut, spl) -> + let mut = + match mut with + | Mutable -> Mutable Alloc.Comonadic.Const.legacy + | Immutable -> + Language_extension.assert_enabled ~loc Immutable_arrays (); + Immutable + in + type_pat_array mut spl sp.ppat_attributes | Ppat_or(sp1, sp2) -> (* Reset pattern forces for just [tps2] because later we append [tps1] and [tps2]'s pattern forces, and we don't want to duplicate [tps]'s pattern @@ -3066,7 +3124,8 @@ and type_pat_aux pat_loc = loc; pat_extra = []; pat_type = instance expected_ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_lazy sp1 -> submode ~loc ~env:!!penv alloc_mode.mode mode_force_lazy; let nv = solve_Ppat_lazy ~refine:false loc penv expected_ty in @@ -3077,7 +3136,8 @@ and type_pat_aux pat_loc = loc; pat_extra=[]; pat_type = instance expected_ty; pat_attributes = sp.ppat_attributes; - pat_env = !!penv } + pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } | Ppat_constraint(sp_constrained, sty, ms) -> (* Pretend separate = true *) begin match sty with @@ -3119,6 +3179,7 @@ and type_pat_aux pat_type = expected_ty; pat_env = !!penv; pat_attributes = sp.ppat_attributes; + pat_unique_barrier = Unique_barrier.not_computed (); } | Ppat_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) @@ -3254,9 +3315,6 @@ let combine_pat_tuple_arity a b = else Not_local_tuple let rec pat_tuple_arity spat = - match Jane_syntax.Pattern.of_ast spat with - | Some (jpat, _attrs) -> pat_tuple_arity_jane_syntax jpat - | None -> match spat.ppat_desc with | Ppat_tuple (args, _) -> Local_tuple (List.length args) | Ppat_unboxed_tuple (args,_c) -> Local_tuple (List.length args) @@ -3269,10 +3327,6 @@ let rec pat_tuple_arity spat = combine_pat_tuple_arity (pat_tuple_arity sp1) (pat_tuple_arity sp2) | Ppat_constraint(p, _, _) | Ppat_open(_, p) | Ppat_alias(p, _) -> pat_tuple_arity p -and pat_tuple_arity_jane_syntax : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array (Iapat_immutable_array _) -> Not_local_tuple - | Jpat_layout (Lpat_constant _) -> Not_local_tuple - let rec cases_tuple_arity cases = match cases with | [] -> Maybe_local_tuple @@ -3454,7 +3508,8 @@ let rec check_counter_example_pat (* "make pattern" and "make pattern then continue" *) let mp ?(pat_type = expected_ty) desc = { pat_desc = desc; pat_loc = loc; pat_extra=[]; - pat_type = instance pat_type; pat_attributes = []; pat_env = !!penv } in + pat_type = instance pat_type; pat_attributes = []; pat_env = !!penv; + pat_unique_barrier = Unique_barrier.not_computed () } in let mkp k ?pat_type desc = k (mp ?pat_type desc) in let must_backtrack_on_gadt = match info.splitting_mode with @@ -3481,11 +3536,7 @@ let rec check_counter_example_pat end | Tpat_alias (p, _, _, _, _) -> check_rec ~info p expected_ty k | Tpat_constant cst -> - let cst = - match Untypeast.constant cst with - | `Parsetree cst -> constant_or_raise !!penv loc cst - | `Jane_syntax cst -> unboxed_constant_or_raise !!penv loc cst - in + let cst = constant_or_raise !!penv loc (Untypeast.constant cst) in k @@ solve_expected (mp (Tpat_constant cst) ~pat_type:(type_constant cst)) | Tpat_tuple tpl -> let tpl_ann = @@ -3841,7 +3892,7 @@ let collect_unknown_apply_args env funct ty_fun mode_fun rev_args sargs ret_tvar try let ty_fun = expand_head env ty_fun in match get_desc ty_fun with - | Tvar _ -> + | Tvar { jkind; _ } -> let ty_arg_mono, sort_arg = new_rep_var ~why:Function_argument () in let ty_arg = newmono ty_arg_mono in let ty_res = @@ -3857,8 +3908,14 @@ let collect_unknown_apply_args env funct ty_fun mode_fun rev_args sargs ret_tvar let mode_arg = Alloc.newvar () in let mode_ret = Alloc.newvar () in let kind = (lbl, mode_arg, mode_ret) in - unify env ty_fun - (newty (Tarrow(kind,ty_arg,ty_res,commu_var ()))); + begin try + unify env ty_fun + (newty (Tarrow(kind,ty_arg,ty_res,commu_var ()))); + with + | Unify _ -> + raise(Error(funct.exp_loc, env, + Impossible_function_jkind (ty_fun, jkind))) + end; (sort_arg, mode_arg, ty_arg_mono, mode_ret, ty_res) | Tarrow ((l, mode_arg, mode_ret), ty_arg, ty_res, _) when labels_match ~param:l ~arg:lbl -> @@ -4122,8 +4179,8 @@ let rec is_nonexpansive exp = lbl.lbl_mut = Immutable && is_nonexpansive exp | Kept _ -> true) fields - && is_nonexpansive_opt extended_expression - | Texp_field(exp, _, _, _) -> is_nonexpansive exp + && is_nonexpansive_opt (Option.map fst extended_expression) + | Texp_field(exp, _, _, _, _) -> is_nonexpansive exp | Texp_ifthenelse(_cond, ifso, ifnot) -> is_nonexpansive ifso && is_nonexpansive_opt ifnot | Texp_sequence (_e1, _jkind, e2) -> is_nonexpansive e2 (* PR#4354 *) @@ -4272,9 +4329,6 @@ let loc_rest_of_function let approx_type_default () = newvar (Jkind.Builtin.any ~why:Dummy_jkind) let rec approx_type env sty = - match Jane_syntax.Core_type.of_ast sty with - | Some (jty, attrs) -> approx_type_jst env attrs jty - | None -> match sty.ptyp_desc with | Ptyp_arrow (p, ({ ptyp_desc = Ptyp_poly _ } as arg_sty), sty, arg_mode, _) -> let p = Typetexp.transl_label p (Some arg_sty) in @@ -4317,19 +4371,7 @@ let rec approx_type env sty = end | _ -> approx_type_default () -and approx_type_jst _env _attrs : Jane_syntax.Core_type.t -> _ = function - | Jtyp_layout (Ltyp_var _) -> approx_type_default () - | Jtyp_layout (Ltyp_poly _) -> approx_type_default () - | Jtyp_layout (Ltyp_alias _) -> approx_type_default () - -let type_pattern_approx_jane_syntax : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array _ - | Jpat_layout (Lpat_constant _) -> () - let type_pattern_approx env spat ty_expected = - match Jane_syntax.Pattern.of_ast spat with - | Some (jpat, _attrs) -> type_pattern_approx_jane_syntax jpat - | None -> match spat.ppat_desc with | Ppat_constraint(_, Some sty, arg_type_mode) -> let inferred_ty = @@ -4404,9 +4446,7 @@ let type_approx_fun_one_param let rec type_approx env sexp ty_expected = let loc = sexp.pexp_loc in - match Jane_syntax.Expression.of_ast sexp with - | Some (jexp, _attrs) -> type_approx_aux_jane_syntax jexp - | None -> match sexp.pexp_desc with + match sexp.pexp_desc with Pexp_let (_, _, e) -> type_approx env e ty_expected | Pexp_function (params, c, body) -> type_approx_function env params c body ty_expected ~loc @@ -4431,15 +4471,6 @@ let rec type_approx env sexp ty_expected = type_approx env e ty_expected | _ -> () -and type_approx_aux_jane_syntax - (jexp : Jane_syntax.Expression.t) - = - match jexp with - | Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout (Lexp_constant _) - | Jexp_layout (Lexp_newtype _) -> () - and type_tuple_approx (env: Env.t) loc ty_expected l = let labeled_tys = List.map (fun (label, _) -> label, newvar (Jkind.Builtin.value_or_null ~why:Tuple_element)) l @@ -4717,20 +4748,13 @@ let contains_variant_either ty = let shallow_iter_ppat_labeled_tuple f lst = List.iter (fun (_,p) -> f p) lst -let shallow_iter_ppat_jane_syntax f : Jane_syntax.Pattern.t -> _ = function - | Jpat_immutable_array (Iapat_immutable_array pats) -> List.iter f pats - | Jpat_layout (Lpat_constant _) -> () - let shallow_iter_ppat f p = - match Jane_syntax.Pattern.of_ast p with - | Some (jpat, _attrs) -> shallow_iter_ppat_jane_syntax f jpat - | None -> match p.ppat_desc with | Ppat_any | Ppat_var _ | Ppat_constant _ | Ppat_interval _ | Ppat_construct (_, None) | Ppat_extension _ | Ppat_type _ | Ppat_unpack _ -> () - | Ppat_array pats -> List.iter f pats + | Ppat_array (_, pats) -> List.iter f pats | Ppat_or (p1,p2) -> f p1; f p2 | Ppat_variant (_, arg) -> Option.iter f arg | Ppat_tuple (lst, _) -> List.iter (fun (_,p) -> f p) lst @@ -4782,9 +4806,7 @@ let may_contain_gadts p = labeled tuple patterns as well. *) let turn_let_into_match p = exists_ppat (fun p -> - match Jane_syntax.Pattern.of_ast p with - | Some ((Jpat_layout _ | Jpat_immutable_array _), _) -> false - | None -> match p.ppat_desc with + match p.ppat_desc with | Ppat_construct _ -> true | Ppat_tuple (_, Open) -> true | Ppat_tuple (ps, _) when components_have_label ps -> true @@ -4881,9 +4903,7 @@ let is_exclave_extension_node = function the "expected type" provided by the context. *) let rec is_inferred sexp = - match Jane_syntax.Expression.of_ast sexp with - | Some (jexp, _attrs) -> is_inferred_jane_syntax jexp - | None -> match sexp.pexp_desc with + match sexp.pexp_desc with | Pexp_apply ({ pexp_desc = Pexp_extension({ txt }, PStr []) }, [Nolabel, sbody]) when is_exclave_extension_node txt -> @@ -4895,11 +4915,6 @@ let rec is_inferred sexp = | Pexp_ifthenelse (_, e1, Some e2) -> is_inferred e1 && is_inferred e2 | _ -> false -and is_inferred_jane_syntax : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout (Lexp_constant _ | Lexp_newtype _) -> false - (* check if the type of %apply or %revapply matches the type expected by the specialized typing rule for those primitives. *) @@ -5220,7 +5235,8 @@ let vb_exp_constraint {pvb_expr=expr; pvb_pat=pat; pvb_constraint=ct; pvb_modes= | Some (Pvc_constraint { locally_abstract_univars;typ}) -> let loc = Location.merge [ loc; pat.ppat_loc ] in let expr = Exp.constraint_ ~loc expr (Some typ) modes in - List.fold_right (Exp.newtype ~loc) locally_abstract_univars expr + let mk_newtype name body = Exp.newtype ~loc name None body in + List.fold_right mk_newtype locally_abstract_univars expr let vb_pat_constraint ({pvb_pat=pat; pvb_expr = exp; pvb_modes = modes; _ } as vb) = @@ -5241,7 +5257,8 @@ let vb_pat_constraint Pat.constraint_ ~loc pat (Some typ) modes | Some (Pvc_constraint {locally_abstract_univars=vars; typ }), _, _ -> let varified = Typ.varify_constructors vars typ in - let t = Typ.poly ~loc:typ.ptyp_loc vars varified in + let vars_jkinds = List.map (fun var -> var, None) vars in + let t = Typ.poly ~loc:typ.ptyp_loc vars_jkinds varified in let loc = Location.merge [ loc; t.ptyp_loc ] in Pat.constraint_ ~loc pat (Some t) modes | None, (Ppat_any | Ppat_constraint _), _ -> maybe_add_modes_constraint pat @@ -5378,18 +5395,7 @@ and type_expect_ unify_exp ~sdesc_for_hint:desc env (re exp) (instance ty_expected)); exp in - match Jane_syntax.Expression.of_ast sexp with - | Some (jexp, attributes) -> - type_expect_jane_syntax - ~loc - ~env - ~expected_mode - ~ty_expected - ~explanation - ~rue - ~attributes - jexp - | None -> match desc with + match desc with | Pexp_ident lid -> let path, (actual_mode : Env.actual_mode), desc, kind = type_ident env ~recarg lid @@ -5642,8 +5648,8 @@ and type_expect_ rt, funct in let type_sfunct_args sfunct extra_args = - match Jane_syntax.Expression.of_ast sfunct, sfunct.pexp_desc with - | None, Pexp_apply (sfunct, args) -> + match sfunct.pexp_desc with + | Pexp_apply (sfunct, args) -> type_sfunct sfunct, args @ extra_args | _ -> type_sfunct sfunct, extra_args @@ -5941,7 +5947,8 @@ and type_expect_ end in let label_definitions = Array.map unify_kept lbl.lbl_all in - Some {exp with exp_type = ty_exp}, label_definitions + let ubr = Unique_barrier.not_computed () in + Some ({exp with exp_type = ty_exp}, ubr), label_definitions in let num_fields = match lbl_exp_list with [] -> assert false @@ -5960,7 +5967,7 @@ and type_expect_ exp_desc = Texp_record { fields; representation; extended_expression = opt_exp; - alloc_mode + alloc_mode; }; exp_loc = loc; exp_extra = []; exp_type = instance ty_expected; @@ -6024,7 +6031,7 @@ and type_expect_ Non_boxing uu in rue { - exp_desc = Texp_field(record, lid, label, boxing); + exp_desc = Texp_field(record, lid, label, boxing, Unique_barrier.not_computed ()); exp_loc = loc; exp_extra = []; exp_type = ty_arg; exp_attributes = sexp.pexp_attributes; @@ -9790,13 +9797,44 @@ and type_comprehension_iterator and type_immutable_array ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue:_ ~attributes : Jane_syntax.Immutable_arrays.expression -> _ = function +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 | Iaexp_immutable_array elts -> +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + exp_type = instance Predef.type_unit; + exp_attributes = sexp.pexp_attributes; + exp_env = env } + | Pexp_array(sargl) -> +======= + exp_type = instance Predef.type_unit; + exp_attributes = sexp.pexp_attributes; + exp_env = env } + | Pexp_array(mut, sargl) -> + let mutability = + match mut with + | Mutable -> Mutable Alloc.Comonadic.Const.legacy + | Immutable -> + Language_extension.assert_enabled ~loc Immutable_arrays (); + Immutable + in +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a type_generic_array ~loc ~env ~expected_mode ~ty_expected ~explanation +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + ~mutability:(Mutable Alloc.Comonadic.Const.legacy) + ~attributes:sexp.pexp_attributes + sargl + | Pexp_ifthenelse(scond, sifso, sifnot) -> +======= + ~mutability + ~attributes:sexp.pexp_attributes + sargl + | Pexp_ifthenelse(scond, sifso, sifnot) -> +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a ~mutability:Immutable ~attributes elts @@ -10924,6 +10962,14 @@ let report_error ~loc env = function print_unsupported_stack_allocation category | Not_allocation -> Location.errorf ~loc "This expression is not an allocation site." + | Impossible_function_jkind (ty, jkind) -> + Location.errorf ~loc + "@[@[This expression is used as a function, but its type@ %a@]@ \ + has kind %a, which cannot be the kind of a function.@ \ + (Functions always have kind %a.)@]" + (Style.as_inline_code Printtyp.type_expr) ty + (Style.as_inline_code Jkind.format) jkind + (Style.as_inline_code Jkind.format) Jkind.for_arrow let report_error ~loc env err = Printtyp.wrap_printing_env_error env diff --git a/src/ocaml/typing/typecore.ml.rej b/src/ocaml/typing/typecore.ml.rej new file mode 100644 index 000000000..0320b1e22 --- /dev/null +++ b/src/ocaml/typing/typecore.ml.rej @@ -0,0 +1,300 @@ +--- typecore.ml ++++ typecore.ml +@@ -6475,9 +6433,9 @@ and type_expect_ + in + re { exp with exp_extra = + (Texp_poly cty, loc, sexp.pexp_attributes) :: exp.exp_extra } +- | Pexp_newtype(name, sbody) -> ++ | Pexp_newtype(name, jkind, sbody) -> + type_newtype_expr ~loc ~env ~expected_mode ~rue ~attributes:sexp.pexp_attributes +- name None sbody ++ name jkind sbody + | Pexp_pack m -> + (* CR zqian: pass [expected_mode] to [type_package] *) + submode ~loc ~env Value.legacy expected_mode; +@@ -6684,7 +6642,11 @@ and type_expect_ + exp_attributes = sexp.pexp_attributes; + exp_env = env } + | Pexp_stack e -> +- let exp = type_expect env expected_mode e ty_expected_explained in ++ let expected_mode' = ++ mode_morph (Value.join_with (Comonadic Areality) Regionality.Const.Local) ++ expected_mode ++ in ++ let exp = type_expect env expected_mode' e ty_expected_explained in + let unsupported category = + raise (Error (exp.exp_loc, env, Unsupported_stack_allocation category)) + in +@@ -6694,11 +6656,11 @@ and type_expect_ + | Texp_variant (_, Some (_, alloc_mode)) + | Texp_record {alloc_mode = Some alloc_mode; _} + | Texp_array (_, _, _, alloc_mode) +- | Texp_field (_, _, _, Boxing (alloc_mode, _)) -> ++ | Texp_field (_, _, _, Boxing (alloc_mode, _), _) -> + begin match Locality.submode Locality.local + (Alloc.proj (Comonadic Areality) alloc_mode.mode) with + | Ok () -> () +- | Error _ -> raise (Error (exp.exp_loc, env, ++ | Error _ -> raise (Error (e.pexp_loc, env, + Cannot_stack_allocate alloc_mode.locality_context)) + end + | Texp_list_comprehension _ -> unsupported List_comprehension +@@ -6711,8 +6673,18 @@ and type_expect_ + | _ -> + raise (Error (exp.exp_loc, env, Not_allocation)) + end; ++ submode ~loc ~env (Value.min_with (Comonadic Areality) Regionality.local) ++ expected_mode; + let exp_extra = (Texp_stack, loc, []) :: exp.exp_extra in + {exp with exp_extra} ++ | Pexp_comprehension comp -> ++ Language_extension.assert_enabled ~loc Comprehensions (); ++ type_comprehension_expr ++ ~loc ++ ~env ++ ~ty_expected ++ ~attributes:sexp.pexp_attributes ++ comp + + and expression_constraint pexp = + { type_without_constraint = (fun env expected_mode -> +@@ -7727,7 +7699,8 @@ and type_argument ?explanation ?recarg env (mode : expected_mode) sarg + pat_type = ty; + pat_extra=[]; + pat_attributes = []; +- pat_loc = Location.none; pat_env = env}, ++ pat_loc = Location.none; pat_env = env; ++ pat_unique_barrier = Unique_barrier.not_computed () }, + {exp_type = ty; exp_loc = Location.none; exp_env = exp_env; + exp_extra = []; exp_attributes = []; + exp_desc = +@@ -8023,8 +7996,9 @@ and type_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected + let expl = + List.map2 + (fun (label, body) ((_, ty), argument_mode) -> +- Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc +- Language_extension.Labeled_tuples ()) label; ++ Option.iter (fun _ -> ++ Language_extension.assert_enabled ~loc Labeled_tuples ()) ++ label; + let argument_mode = mode_default argument_mode in + let argument_mode = expect_mode_cross env ty argument_mode in + (label, type_expect env argument_mode body (mk_expected ty))) +@@ -8040,8 +8014,7 @@ and type_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected + + and type_unboxed_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected + ~explanation ~attributes sexpl = +- Jane_syntax_parsing.assert_extension_enabled ~loc Layouts +- Language_extension.Beta; ++ Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; + let arity = List.length sexpl in + assert (arity >= 2); + let argument_mode = expected_mode.mode in +@@ -8079,8 +8052,9 @@ and type_unboxed_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected + let expl = + List.map2 + (fun (label, body) ((_, ty, sort), argument_mode) -> +- Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc +- Language_extension.Labeled_tuples ()) label; ++ Option.iter (fun _ -> ++ Language_extension.assert_enabled ~loc Labeled_tuples ()) ++ label; + let argument_mode = mode_default argument_mode in + let argument_mode = expect_mode_cross env ty argument_mode in + (label, type_expect env argument_mode body (mk_expected ty), sort)) +@@ -8122,11 +8096,7 @@ and type_construct env (expected_mode : expected_mode) loc lid sarg + match sarg with + | None -> [] + | Some se -> begin +- match Jane_syntax.Expression.of_ast se with +- | Some (( Jexp_comprehension _ +- | Jexp_immutable_array _ +- | Jexp_layout _), _) -> [se] +- | None -> match se.pexp_desc with ++ match se.pexp_desc with + | Pexp_tuple sel when + constr.cstr_arity > 1 || Builtin_attributes.explicit_arity attrs + -> +@@ -8694,18 +8664,11 @@ and type_function_cases_expect + and type_let ?check ?check_strict ?(force_toplevel = false) + existential_context env rec_flag spat_sexp_list allow_modules = + let rec sexp_is_fun sexp = +- match Jane_syntax.Expression.of_ast sexp with +- | Some (jexp, _attrs) -> jexp_is_fun jexp +- | None -> match sexp.pexp_desc with ++ match sexp.pexp_desc with + | Pexp_function _ -> true + | Pexp_constraint (e, _, _) +- | Pexp_newtype (_, e) -> sexp_is_fun e ++ | Pexp_newtype (_, _, e) -> sexp_is_fun e + | _ -> false +- and jexp_is_fun : Jane_syntax.Expression.t -> _ = function +- | Jexp_comprehension _ +- | Jexp_immutable_array _ +- | Jexp_layout (Lexp_constant _) -> false +- | Jexp_layout (Lexp_newtype (_, _, e)) -> sexp_is_fun e + in + let vb_is_fun { pvb_expr = sexp; _ } = sexp_is_fun sexp in + let entirely_functions = List.for_all vb_is_fun spat_sexp_list in +@@ -9151,19 +9114,6 @@ and type_generic_array + exp_attributes = attributes; + exp_env = env } + +-and type_expect_jane_syntax +- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes +- : Jane_syntax.Expression.t -> _ = function +- | Jexp_comprehension x -> +- type_comprehension_expr +- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x +- | Jexp_immutable_array x -> +- type_immutable_array +- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x +- | Jexp_layout x -> +- type_jkind_expr +- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x +- + and type_expect_mode ~loc ~env ~(modes : Alloc.Const.Option.t) expected_mode = + let min = Alloc.Const.Option.value ~default:Alloc.Const.min modes |> Const.alloc_as_value in + let max = Alloc.Const.Option.value ~default:Alloc.Const.max modes |> Const.alloc_as_value in +@@ -9378,10 +9328,7 @@ and type_n_ary_function + we need to provide modes while typechecking comprehensions, we will reference + this comment by its incipit (the initial question, right at the start). *) + +-and type_comprehension_expr +- ~loc ~env ~expected_mode:_ ~ty_expected ~explanation:_ ~rue:_~attributes +- cexpr = +- let open Jane_syntax.Comprehensions in ++and type_comprehension_expr ~loc ~env ~ty_expected ~attributes cexpr = + (* - [comprehension_type]: + For printing nicer error messages. + - [container_type]: +@@ -9393,18 +9340,20 @@ and type_comprehension_expr + - [{body = sbody; clauses}]: + The actual comprehension to be translated. *) + let comprehension_type, container_type, make_texp, +- {body = sbody; clauses}, jkind = ++ {pcomp_body = sbody; pcomp_clauses}, jkind = + match cexpr with +- | Cexp_list_comprehension comp -> ++ | Pcomp_list_comprehension comp -> + (List_comprehension : comprehension_type), + Predef.type_list, + (fun tcomp -> Texp_list_comprehension tcomp), + comp, + Predef.list_argument_jkind +- | Cexp_array_comprehension (amut, comp) -> ++ | Pcomp_array_comprehension (amut, comp) -> + let container_type, mut = match amut with + | Mutable -> Predef.type_array, Mutable Alloc.Comonadic.Const.legacy +- | Immutable -> Predef.type_iarray, Immutable ++ | Immutable -> ++ Language_extension.assert_enabled ~loc Immutable_arrays (); ++ Predef.type_iarray, Immutable + in + (Array_comprehension mut : comprehension_type), + container_type, +@@ -9432,7 +9381,7 @@ and type_comprehension_expr + (* To understand why we don't provide modes here, see "What modes should + comprehensions use?", above *) + type_comprehension_clauses +- ~loc ~env ~comprehension_type ~container_type clauses ++ ~loc ~env ~comprehension_type ~container_type pcomp_clauses + in + let comp_body = + (* To understand why comprehension bodies are checked at [mode_global], see +@@ -9455,8 +9404,8 @@ and type_comprehension_clauses + + (* Calls [reset_pattern] *) + and type_comprehension_clause ~loc ~comprehension_type ~container_type env +- : Jane_syntax.Comprehensions.clause -> _ = function +- | For bindings -> ++ = function ++ | Pcomp_for bindings -> + (* TODO: fix handling of first-class module patterns *) + let tps = create_type_pat_state Modules_rejected in + let tbindings = +@@ -9471,7 +9420,7 @@ and type_comprehension_clause ~loc ~comprehension_type ~container_type env + add_pattern_variables ~check ~check_as:check env pvs + in + env, Texp_comp_for tbindings +- | When cond -> ++ | Pcomp_when cond -> + let tcond = + (* To understand why [when] conditions can be checked at an arbitrary + mode, see "What modes should comprehensions use?" in +@@ -9490,7 +9439,10 @@ and type_comprehension_binding + ~container_type + ~env + tps +- Jane_syntax.Comprehensions.{ pattern; iterator; attributes } = ++ { pcomp_cb_pattern = pattern; ++ pcomp_cb_iterator = iterator; ++ pcomp_cb_attributes = attributes } ++ = + { comp_cb_iterator = + type_comprehension_iterator + ~loc ~env ~comprehension_type ~container_type tps pattern iterator +@@ -9499,9 +9451,8 @@ and type_comprehension_binding + } + + and type_comprehension_iterator +- ~loc ~env ~comprehension_type ~container_type tps pattern +- : Jane_syntax.Comprehensions.iterator -> _ = function +- | Range { start; stop; direction } -> ++ ~loc ~env ~comprehension_type ~container_type tps pattern = function ++ | Pcomp_range { start; stop; direction } -> + let tbound ~explanation bound = + (* To understand why [for ... = ...] iterator range endpoints can be + checked at an arbitrary mode, see "What modes should comprehensions +@@ -9524,7 +9475,7 @@ and type_comprehension_iterator + ~param:pattern + in + Texp_comp_range { ident; pattern; start; stop; direction } +- | In seq -> ++ | Pcomp_in seq -> + let item_ty = newvar (Jkind.Builtin.any ~why:Dummy_jkind) in + let seq_ty = container_type item_ty in + let sequence = +@@ -9559,41 +9510,9 @@ and type_comprehension_iterator + in + Texp_comp_in { pattern; sequence } + +-and type_immutable_array +- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue:_ ~attributes +- : Jane_syntax.Immutable_arrays.expression -> _ = function +- | Iaexp_immutable_array elts -> +- type_generic_array +- ~loc +- ~env +- ~expected_mode +- ~ty_expected +- ~explanation +- ~mutability:Immutable +- ~attributes +- elts +- +-and type_jkind_expr +- ~loc ~env ~expected_mode ~ty_expected:_ ~explanation:_ ~rue ~attributes +- : Jane_syntax.Layouts.expression -> _ = function +- | Lexp_constant x -> type_unboxed_constant ~loc ~env ~rue ~attributes x +- | Lexp_newtype (name, jkind_annot, sbody) -> +- type_newtype_expr ~loc ~env ~expected_mode ~rue ~attributes +- name (Some jkind_annot) sbody +- +-and type_unboxed_constant ~loc ~env ~rue ~attributes cst = +- let cst = unboxed_constant_or_raise env loc cst in +- rue { +- exp_desc = Texp_constant cst; +- exp_loc = loc; +- exp_extra = []; +- exp_type = type_constant cst; +- exp_attributes = attributes; +- exp_env = env } +- + (* Typing of method call *) + and type_send env loc explanation e met = +- let obj = type_exp env mode_legacy e in ++ let obj = type_exp env mode_object e in + let (meth, typ) = + match obj.exp_desc with + | Texp_ident(_, _, {val_kind = Val_self(sign, meths, _, _)}, _, _) -> diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index 8846988e5..0cf9b51f8 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -201,16 +201,8 @@ let extract_sig_functor_open funct_body env loc mty sig_acc = (* Compute the environment after opening a module *) -let type_open_ ?used_slot ?toplevel ovf env loc lid = - let path, _ = - Env.lookup_module_path ~lock:false ~load:true ~loc:lid.loc lid.txt env - in - match Env.open_signature ~loc ?used_slot ?toplevel ovf path env with - | Ok env -> path, env - | Error _ -> - let md = Env.find_module path env in - ignore (extract_sig_open env lid.loc md.md_type); - assert false +let type_open_ ?(used_slot=ref false) ?(toplevel=false) ovf env loc lid = + Env.open_signature ~loc ~used_slot ~toplevel ovf lid env let initial_env ~loc ~initially_opened_module ~open_implicit_modules = @@ -366,7 +358,7 @@ let path_is_strict_prefix = && list_is_strict_prefix l1 ~prefix:l2 let rec instance_name ~loc env syntax = - let ({ head; args } : Jane_syntax.Instances.instance) = syntax in + let { pmod_instance_head = head; pmod_instance_args = args } = syntax in let args = List.map (fun (param, value) : Global_module.Name.argument -> @@ -544,8 +536,9 @@ let () = Env.check_well_formed_module := check_well_formed_module let type_decl_is_alias sdecl = (* assuming no explicit constraint *) let eq_vars x y = - match Jane_syntax.Core_type.of_ast x, Jane_syntax.Core_type.of_ast y with - (* a jkind annotation on either type variable might mean this definition + (* Why not handle jkind annotations? + + a jkind annotation on either type variable might mean this definition is not an alias. Example: {v type ('a : value) t type ('a : immediate) t2 = ('a : immediate) t @@ -555,10 +548,8 @@ let type_decl_is_alias sdecl = (* assuming no explicit constraint *) conservatively say that any jkind annotations block alias detection. *) - | (Some _, _) | (_, Some _) -> false - | None, None -> match x.ptyp_desc, y.ptyp_desc with - | Ptyp_var sx, Ptyp_var sy -> sx = sy + | Ptyp_var (sx, None), Ptyp_var (sy, None) -> sx = sy | _, _ -> false in match sdecl.ptype_manifest with @@ -1044,9 +1035,6 @@ and apply_modalities_module_type env modalities = function making them abstract otherwise. *) let rec approx_modtype env smty = - match Jane_syntax.Module_type.of_ast smty with - | Some (jmty, _attrs) -> approx_modtype_jane_syntax env jmty - | None -> match smty.pmty_desc with Pmty_ident lid -> let path = @@ -1103,18 +1091,16 @@ let rec approx_modtype env smty = mty | Pmty_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) - -and approx_modtype_jane_syntax env = function - | Jane_syntax.Module_type.Jmty_strengthen { mty = smty; mod_id } -> - let mty = approx_modtype env smty in - let path, _ = - (* CR-someday: potentially improve error message for strengthening with - a mutually recursive module. *) - Env.lookup_module_path ~use:false ~load:false - ~loc:mod_id.loc mod_id.txt env - in - let aliasable = (not (Env.is_functor_arg path env)) in - Mty_strengthen (mty, path, Aliasability.aliasable aliasable) + | Pmty_strengthen (smty, mod_id) -> + let mty = approx_modtype env smty in + let path, _ = + (* CR-someday: potentially improve error message for strengthening with + a mutually recursive module. *) + Env.lookup_module_path ~use:false ~load:false + ~loc:mod_id.loc mod_id.txt env + in + let aliasable = (not (Env.is_functor_arg path env)) in + Mty_strengthen (mty, path, Aliasability.aliasable aliasable) and approx_module_declaration env pmd = { @@ -1124,27 +1110,21 @@ and approx_module_declaration env pmd = md_uid = Uid.internal_not_actually_unique; } -and approx_sig_jst' _env (jitem : Jane_syntax.Signature_item.t) _srem = - match jitem with - | Jsig_layout (Lsig_kind_abbrev _) -> - Misc.fatal_error "kind_abbrev not supported!" +and approx_sig env {psg_items; _} = approx_sig_items env psg_items -and approx_sig env ssg = +and approx_sig_items env ssg= match ssg with [] -> [] | item :: srem -> - match Jane_syntax.Signature_item.of_ast item with - | Some jitem -> approx_sig_jst' env jitem srem - | None -> match item.psig_desc with | Psig_type (rec_flag, sdecls) -> let decls = Typedecl.approx_type_decl sdecls in - let rem = approx_sig env srem in + let rem = approx_sig_items env srem in map_rec_type ~rec_flag (fun rs (id, info) -> Sig_type(id, info, rs, Exported)) decls rem - | Psig_typesubst _ -> approx_sig env srem + | Psig_typesubst _ -> approx_sig_items env srem | Psig_module { pmd_name = { txt = None; _ }; _ } -> - approx_sig env srem + approx_sig_items env srem | Psig_module pmd -> let scope = Ctype.create_scope () in let md = approx_module_declaration env pmd in @@ -1157,7 +1137,7 @@ and approx_sig env ssg = Env.enter_module_declaration ~scope (Option.get pmd.pmd_name.txt) pres md env in - Sig_module(id, pres, md, Trec_not, Exported) :: approx_sig newenv srem + Sig_module(id, pres, md, Trec_not, Exported) :: approx_sig_items newenv srem | Psig_modsubst pms -> let scope = Ctype.create_scope () in let _, md, _ = @@ -1172,7 +1152,7 @@ and approx_sig env ssg = let _, newenv = Env.enter_module_declaration ~scope pms.pms_name.txt pres md env in - approx_sig newenv srem + approx_sig_items newenv srem | Psig_recmodule sdecls -> let scope = Ctype.create_scope () in let decls = @@ -1194,29 +1174,29 @@ and approx_sig env ssg = map_rec (fun rs (id, md) -> Sig_module(id, Mp_present, md, rs, Exported)) decls - (approx_sig newenv srem) + (approx_sig_items newenv srem) | Psig_modtype d -> let info = approx_modtype_info env d in let scope = Ctype.create_scope () in let (id, newenv) = Env.enter_modtype ~scope d.pmtd_name.txt info env in - Sig_modtype(id, info, Exported) :: approx_sig newenv srem + Sig_modtype(id, info, Exported) :: approx_sig_items newenv srem | Psig_modtypesubst d -> let info = approx_modtype_info env d in let scope = Ctype.create_scope () in let (_id, newenv) = Env.enter_modtype ~scope d.pmtd_name.txt info env in - approx_sig newenv srem + approx_sig_items newenv srem | Psig_open sod -> let _, env = type_open_descr env sod in - approx_sig env srem + approx_sig_items env srem | Psig_include ({pincl_loc=loc; pincl_mod=mod_; pincl_kind=kind; pincl_attributes=attrs}, moda) -> begin match kind with | Functor -> - Jane_syntax_parsing.assert_extension_enabled ~loc Include_functor (); + Language_extension.assert_enabled ~loc Include_functor (); raise (Error(loc, env, Recursive_include_functor)) | Structure -> let mty = approx_modtype env mod_ in @@ -1235,11 +1215,11 @@ and approx_sig env ssg = apply_modalities_signature ~recursive env modalities sg in let sg, newenv = Env.enter_signature ~scope sg env in - sg @ approx_sig newenv srem + sg @ approx_sig_items newenv srem end | Psig_class sdecls | Psig_class_type sdecls -> let decls, env = Typeclass.approx_class_declarations env sdecls in - let rem = approx_sig env srem in + let rem = approx_sig_items env srem in map_rec (fun rs decl -> let open Typeclass in [ Sig_class_type(decl.clsty_ty_id, decl.clsty_ty_decl, rs, @@ -1248,8 +1228,10 @@ and approx_sig env ssg = ] ) decls [rem] |> List.flatten + | Psig_kind_abbrev _ -> + Misc.fatal_error "kind_abbrev not supported!" | _ -> - approx_sig env srem + approx_sig_items env srem and approx_modtype_info env sinfo = { @@ -1616,9 +1598,6 @@ and transl_modtype_functor_arg env sarg = and transl_modtype_aux env smty = let loc = smty.pmty_loc in - match Jane_syntax.Module_type.of_ast smty with - | Some (jmty, _attrs) -> transl_modtype_jane_syntax_aux ~loc env jmty - | None -> match smty.pmty_desc with Pmty_ident lid -> let path = transl_modtype_longident loc env lid.txt in @@ -1679,9 +1658,9 @@ and transl_modtype_aux env smty = mkmty (Tmty_typeof tmty) mty env loc smty.pmty_attributes | Pmty_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) - -and transl_modtype_jane_syntax_aux ~loc env = function - | Jane_syntax.Module_type.Jmty_strengthen { mty ; mod_id } -> + | Pmty_strengthen (mty, mod_id) -> + Language_extension.assert_enabled ~loc:smty.pmty_loc + Module_strengthening (); let tmty = transl_modtype_aux env mty in let path, md, _ = Env.lookup_module ~use:false ~loc:mod_id.loc mod_id.txt env @@ -1729,11 +1708,34 @@ and transl_with ~loc env remove_aliases (rev_tcstrs,sg) constr = take a ~toplevel argument like its cousin type_structure. But in merlin, a signature can be incrementally checked because of the caching mechanism, so we need this to take the signature of the previously checked portion +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 to support include functor. *) and transl_signature ?(keep_warnings = false) env sig_acc (sg : Parsetree.signature) = +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + let tcstr = Option.get tcstr in + ((path, lid, tcstr) :: rev_tcstrs, sg) + + + +and transl_signature env sg = +======= + let tcstr = Option.get tcstr in + ((path, lid, tcstr) :: rev_tcstrs, sg) + +and transl_signature env {psg_items; psg_modalities; psg_loc} = +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a let names = Signature_names.create () in + let has_sig_modalities = + match psg_modalities with + | [] -> false + | _ :: _ -> true + in + let sig_modalities = + Typemode.transl_modalities ~maturity:Alpha Immutable [] psg_modalities + in + let transl_include ~loc env sig_acc sincl modalities = let smty = sincl.pincl_mod in let tmty = @@ -1745,7 +1747,7 @@ and transl_signature ?(keep_warnings = false) env sig_acc (sg : Parsetree.signat let incl_kind, sg = match sincl.pincl_kind with | Functor -> - Jane_syntax_parsing.assert_extension_enabled ~loc Include_functor (); + Language_extension.assert_enabled ~loc Include_functor (); let sg, incl_kind = extract_sig_functor_open false env smty.pmty_loc mty sig_acc in @@ -1753,18 +1755,21 @@ and transl_signature ?(keep_warnings = false) env sig_acc (sg : Parsetree.signat | Structure -> Tincl_structure, extract_sig env smty.pmty_loc mty in - let sg, modalities = + let has_modalities, modalities = match modalities with - | [] -> sg, Mode.Modality.Value.Const.id + | [] -> has_sig_modalities, sig_modalities | _ -> - let modalities = - Typemode.transl_modalities ~maturity:Alpha Immutable [] modalities - in + true, Typemode.transl_modalities ~maturity:Alpha Immutable [] modalities + in + let sg = + if has_modalities then let recursive = not @@ Builtin_attributes.has_attribute "no_recursive_modalities" sincl.pincl_attributes in - apply_modalities_signature ~recursive env modalities sg, modalities + apply_modalities_signature ~recursive env modalities sg + else + sg in let sg, newenv = Env.enter_signature ~scope sg env in Signature_group.iter @@ -1781,21 +1786,12 @@ and transl_signature ?(keep_warnings = false) env sig_acc (sg : Parsetree.signat mksig (Tsig_include (incl, modalities)) env loc, sg, newenv in - let transl_sig_item_jst ~loc:_ _env _sig_acc : Jane_syntax.Signature_item.t -> _ = - function - | Jsig_layout (Lsig_kind_abbrev _) -> - Misc.fatal_error "kind_abbrev not supported!" - in - let transl_sig_item env sig_acc item = let loc = item.psig_loc in - match Jane_syntax.Signature_item.of_ast item with - | Some jitem -> transl_sig_item_jst ~loc env sig_acc jitem - | None -> match item.psig_desc with | Psig_value sdesc -> let (tdesc, newenv) = - Typedecl.transl_value_decl env item.psig_loc sdesc + Typedecl.transl_value_decl env ~sig_modalities item.psig_loc sdesc in Signature_names.check_value names tdesc.val_loc tdesc.val_id; mksig (Tsig_value tdesc) env loc, @@ -2055,6 +2051,8 @@ and transl_signature ?(keep_warnings = false) env sig_acc (sg : Parsetree.signat mksig (Tsig_attribute attr) env loc, [], env | Psig_extension (ext, _attrs) -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) + | Psig_kind_abbrev _ -> + Misc.fatal_error "kind_abbrev not supported!" in let rec transl_sig env sig_items sig_type sig_type_include_functor = function | [] -> List.rev sig_items, List.rev sig_type, env @@ -2076,9 +2074,30 @@ and transl_signature ?(keep_warnings = false) env sig_acc (sg : Parsetree.signat ~save_part:(fun sg -> Cmt_format.Partial_signature sg) (fun () -> let (trem, rem, final_env) = +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 transl_sig (Env.in_signature true env) [] [] sig_acc sg +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + transl_sig (Env.in_signature true env) [] [] sg +======= + transl_sig (Env.in_signature true env) [] [] psg_items +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a in let rem = Signature_names.simplify final_env names rem in +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + let sg = + { sig_items = trem; sig_type = rem; sig_final_env = final_env } + in + Cmt_format.set_saved_types + ((Cmt_format.Partial_signature sg) :: previous_saved_types); +======= + let sg = + { sig_items = trem; sig_type = rem; sig_final_env = final_env; + sig_modalities; sig_sloc = psg_loc } + in + Cmt_format.set_saved_types + ((Cmt_format.Partial_signature sg) :: previous_saved_types); +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a { sig_items = trem; sig_type = rem; sig_final_env = final_env }) and transl_modtype_decl env pmtd = @@ -2593,48 +2612,13 @@ let rec type_module ?(alias=false) sttn funct_body anchor env smod = Shape.dummy_mod and type_module_aux ~alias sttn funct_body anchor env smod = - match Jane_syntax.Module_expr.of_ast smod with - Some ext -> - type_module_extension_aux ~alias sttn env smod ext - | None -> match smod.pmod_desc with Pmod_ident lid -> let path, mode = Env.lookup_module_path ~load:(not alias) ~loc:smod.pmod_loc lid.txt env in Mode.Value.submode_exn mode Mode.Value.legacy; - let md = { mod_desc = Tmod_ident (path, lid); - mod_type = Mty_alias path; - mod_env = env; - mod_attributes = smod.pmod_attributes; - mod_loc = smod.pmod_loc } in - let aliasable = not (Env.is_functor_arg path env) in - let shape = - Env.shape_of_path ~namespace:Shape.Sig_component_kind.Module env path - in - let shape = if alias && aliasable then Shape.alias shape else shape in - let md = - if alias && aliasable then - (Env.add_required_global path env; md) - else begin - let mty = Mtype.find_type_of_module - ~strengthen:sttn ~aliasable env path - in - match mty with - | Mty_alias p1 when not alias -> - let p1 = Env.normalize_module_path (Some smod.pmod_loc) env p1 in - let mty = Includemod.expand_module_alias - ~strengthen:sttn env p1 in - { md with - mod_desc = - Tmod_constraint (md, mty, Tmodtype_implicit, - Tcoerce_alias (env, path, Tcoerce_none)); - mod_type = mty } - | mty -> - { md with mod_type = mty } - end - in - md, shape + type_module_path_aux ~alias sttn env path lid smod | Pmod_structure sstr -> let (str, sg, names, shape, _finalenv) = type_structure funct_body anchor env [] sstr in @@ -2762,15 +2746,56 @@ and type_module_aux ~alias sttn funct_body anchor env smod = Shape.dummy_mod | Pmod_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) - -and type_module_extension_aux ~alias sttn env smod - : Jane_syntax.Module_expr.t -> _ = - function - | Emod_instance (Imod_instance glob) -> - ignore (alias, sttn); + | Pmod_instance glob -> + Language_extension.assert_enabled ~loc:smod.pmod_loc Instances (); let glob = instance_name ~loc:smod.pmod_loc env glob in - Misc.fatal_errorf "@[Unimplemented: instance identifier@ %a@]" - Global_module.Name.print glob + let path, mode = + Env.lookup_module_instance_path ~load:(not alias) ~loc:smod.pmod_loc + glob env + in + Mode.Value.submode_exn mode Mode.Value.legacy; + let lid = + (* Only used by [untypeast] *) + let name = + Format.asprintf "*instance %a*" Global_module.Name.print glob + in + Lident name |> Location.mknoloc + in + type_module_path_aux ~alias sttn env path lid smod + +and type_module_path_aux ~alias sttn env path lid smod = + let md = { mod_desc = Tmod_ident (path, lid); + mod_type = Mty_alias path; + mod_env = env; + mod_attributes = smod.pmod_attributes; + mod_loc = smod.pmod_loc } in + let aliasable = not (Env.is_functor_arg path env) in + let shape = + Env.shape_of_path ~namespace:Shape.Sig_component_kind.Module env path + in + let shape = if alias && aliasable then Shape.alias shape else shape in + let md = + if alias && aliasable then + (Env.add_required_global path env; md) + else begin + let mty = Mtype.find_type_of_module + ~strengthen:sttn ~aliasable env path + in + match mty with + | Mty_alias p1 when not alias -> + let p1 = Env.normalize_module_path (Some smod.pmod_loc) env p1 in + let mty = Includemod.expand_module_alias + ~strengthen:sttn env p1 in + { md with + mod_desc = + Tmod_constraint (md, mty, Tmodtype_implicit, + Tcoerce_alias (env, path, Tcoerce_none)); + mod_type = mty } + | mty -> + { md with mod_type = mty } + end + in + md, shape and type_application loc strengthen funct_body env smod = let rec extract_application funct_body env sargs smod = @@ -3016,7 +3041,7 @@ and type_structure ?(toplevel = None) ?(keep_warnings = false) funct_body anchor let incl_kind, sg = match sincl.pincl_kind with | Functor -> - Jane_syntax_parsing.assert_extension_enabled ~loc Include_functor (); + Language_extension.assert_enabled ~loc Include_functor (); let sg, incl_kind = extract_sig_functor_open funct_body env smodl.pmod_loc modl.mod_type sig_acc @@ -3043,12 +3068,6 @@ and type_structure ?(toplevel = None) ?(keep_warnings = false) funct_body anchor Tstr_include incl, sg, shape, new_env in - let type_str_item_jst ~loc:_ _env _shape_map jitem _sig_acc = - match (jitem : Jane_syntax.Structure_item.t) with - | Jstr_layout (Lstr_kind_abbrev _) -> - Misc.fatal_error "kind_abbrev not supported!" - in - let force_toplevel = (* A couple special cases are needed for the toplevel: @@ -3062,11 +3081,8 @@ and type_structure ?(toplevel = None) ?(keep_warnings = false) funct_body anchor in let type_str_item - env shape_map ({pstr_loc = loc; pstr_desc = desc} as item) sig_acc = + env shape_map {pstr_loc = loc; pstr_desc = desc} sig_acc = let md_mode = Mode.Value.legacy in - match Jane_syntax.Structure_item.of_ast item with - | Some jitem -> type_str_item_jst ~loc env shape_map jitem sig_acc - | None -> match desc with | Pstr_eval (sexpr, attrs) -> let expr, sort = @@ -3157,7 +3173,7 @@ and type_structure ?(toplevel = None) ?(keep_warnings = false) funct_body anchor shape_map, newenv | Pstr_primitive sdesc -> - let (desc, newenv) = Typedecl.transl_value_decl env loc sdesc in + let (desc, newenv) = Typedecl.transl_value_decl env ~sig_modalities:Mode.Modality.Value.Const.id loc sdesc in Signature_names.check_value names desc.val_loc desc.val_id; Tstr_primitive desc, [Sig_value(desc.val_id, desc.val_val, Exported)], @@ -3443,6 +3459,8 @@ and type_structure ?(toplevel = None) ?(keep_warnings = false) funct_body anchor || not (Warnings.is_active (Misplaced_attribute "")) then Builtin_attributes.mark_alert_used x; Tstr_attribute x, [], shape_map, env + | Pstr_kind_abbrev _ -> + Misc.fatal_error "kind_abbrev not supported!" in let toplevel_sig = (* See comment on [type_structure] above *) @@ -3948,7 +3966,7 @@ let save_signature target modname tsg initial_env cmi = (Cmt_format.Interface tsg) initial_env None let cms_register_toplevel_signature_attributes ~sourcefile ~uid ast = - cms_register_toplevel_attributes ~sourcefile ~uid ast + cms_register_toplevel_attributes ~sourcefile ~uid ast.psg_items ~f:(function | { psig_desc = Psig_attribute attr; _ } -> Some attr | _ -> None) diff --git a/src/ocaml/typing/typeopt.ml b/src/ocaml/typing/typeopt.ml index a60af9d51..50c659f17 100644 --- a/src/ocaml/typing/typeopt.ml +++ b/src/ocaml/typing/typeopt.ml @@ -346,6 +346,9 @@ let value_kind_of_value_jkind jkind = *) exception Missing_cmi_fallback +(* CR vlaviron: replace this with proper nullability info *) +let mk_nn raw_kind = { raw_kind; nullable = Non_nullable } + let fallback_if_missing_cmi ~default f = try f () with Missing_cmi_fallback -> default @@ -401,44 +404,44 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty end; match get_desc scty with | Tconstr(p, _, _) when Path.same p Predef.path_int -> - num_nodes_visited, Pintval + num_nodes_visited, mk_nn Pintval | Tconstr(p, _, _) when Path.same p Predef.path_char -> - num_nodes_visited, Pintval + num_nodes_visited, mk_nn Pintval | Tconstr(p, _, _) when Path.same p Predef.path_float -> - num_nodes_visited, (Pboxedfloatval Pfloat64) + num_nodes_visited, mk_nn (Pboxedfloatval Pfloat64) | Tconstr(p, _, _) when Path.same p Predef.path_float32 -> - num_nodes_visited, (Pboxedfloatval Pfloat32) + num_nodes_visited, mk_nn (Pboxedfloatval Pfloat32) | Tconstr(p, _, _) when Path.same p Predef.path_int32 -> - num_nodes_visited, (Pboxedintval Pint32) + num_nodes_visited, mk_nn (Pboxedintval Pint32) | Tconstr(p, _, _) when Path.same p Predef.path_int64 -> - num_nodes_visited, (Pboxedintval Pint64) + num_nodes_visited, mk_nn (Pboxedintval Pint64) | Tconstr(p, _, _) when Path.same p Predef.path_nativeint -> - num_nodes_visited, (Pboxedintval Pnativeint) + num_nodes_visited, mk_nn (Pboxedintval Pnativeint) | Tconstr(p, _, _) when Path.same p Predef.path_int8x16 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_int16x8 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_int32x4 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_int64x2 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_float32x4 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when Path.same p Predef.path_float64x2 -> - num_nodes_visited, (Pboxedvectorval Pvec128) + num_nodes_visited, mk_nn (Pboxedvectorval Pvec128) | Tconstr(p, _, _) when (Path.same p Predef.path_array || Path.same p Predef.path_floatarray) -> (* CR layouts: [~elt_sort:None] here is bad for performance. To fix it, we need a place to store the sort on a [Tconstr]. *) - num_nodes_visited, Parrayval (array_type_kind ~elt_sort:None env loc ty) + num_nodes_visited, mk_nn (Parrayval (array_type_kind ~elt_sort:None env loc ty)) | Tconstr(p, _, _) -> begin let decl = try Env.find_type p env with Not_found -> raise Missing_cmi_fallback in if cannot_proceed () then num_nodes_visited, - value_kind_of_value_jkind decl.type_jkind + mk_nn (value_kind_of_value_jkind decl.type_jkind) else let visited = Numbers.Int.Set.add (get_id ty) visited in (* Default of [Pgenval] is currently safe for the missing cmi fallback @@ -446,24 +449,24 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty of [value_kind]. *) match decl.type_kind with | Type_variant (cstrs, rep) -> - fallback_if_missing_cmi ~default:(num_nodes_visited, Pgenval) + fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited cstrs rep) | Type_record (labels, rep) -> let depth = depth + 1 in - fallback_if_missing_cmi ~default:(num_nodes_visited, Pgenval) + fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> value_kind_record env ~loc ~visited ~depth ~num_nodes_visited labels rep) | Type_abstract _ -> num_nodes_visited, - value_kind_of_value_jkind decl.type_jkind - | Type_open -> num_nodes_visited, Pgenval + mk_nn (value_kind_of_value_jkind decl.type_jkind) + | Type_open -> num_nodes_visited, mk_nn Pgenval end | Ttuple labeled_fields -> if cannot_proceed () then - num_nodes_visited, Pgenval + num_nodes_visited, mk_nn Pgenval else - fallback_if_missing_cmi ~default:(num_nodes_visited, Pgenval) (fun () -> + fallback_if_missing_cmi ~default:(num_nodes_visited, mk_nn Pgenval) (fun () -> let visited = Numbers.Int.Set.add (get_id ty) visited in let depth = depth + 1 in let num_nodes_visited, fields = @@ -477,12 +480,12 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty num_nodes_visited labeled_fields in num_nodes_visited, - Pvariant { consts = []; non_consts = [0, Constructor_uniform fields] }) + mk_nn (Pvariant { consts = []; non_consts = [0, Constructor_uniform fields] })) | Tvariant row -> num_nodes_visited, - if Ctype.tvariant_not_immediate row then Pgenval else Pintval + if Ctype.tvariant_not_immediate row then mk_nn Pgenval else mk_nn Pintval | _ -> - num_nodes_visited, Pgenval + num_nodes_visited, mk_nn Pgenval and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited (cstrs : Types.constructor_declaration list) rep = @@ -575,6 +578,7 @@ and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited | Cstr_tuple [] -> true | (Cstr_tuple (_::_) | Cstr_record _) -> false in + let num_nodes_visited, raw_kind = if List.for_all is_constant cstrs then (num_nodes_visited, Pintval) else @@ -613,6 +617,8 @@ and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited | _::_ -> (num_nodes_visited, Pvariant { consts; non_consts }) end + in + num_nodes_visited, mk_nn raw_kind and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited (labels : Types.label_declaration list) rep = @@ -633,7 +639,7 @@ and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited labels in if is_mutable then - num_nodes_visited, Pgenval + num_nodes_visited, mk_nn Pgenval else let num_nodes_visited, fields = match rep with @@ -658,7 +664,7 @@ and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited optimization. *) match rep with | Record_float | Record_ufloat -> - num_nodes_visited, Pboxedfloatval Pfloat64 + num_nodes_visited, mk_nn (Pboxedfloatval Pfloat64) | Record_inlined _ | Record_boxed _ -> value_kind env ~loc ~visited ~depth ~num_nodes_visited label.ld_type @@ -706,7 +712,7 @@ and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited [0, fields] | Record_unboxed -> assert false in - (num_nodes_visited, Pvariant { consts = []; non_consts }) + (num_nodes_visited, mk_nn (Pvariant { consts = []; non_consts })) end let value_kind env loc ty = @@ -736,11 +742,12 @@ let[@inline always] rec layout_of_const_sort_generic ~value_kind ~error | Base Vec128 when Language_extension.(is_at_least Layouts Stable) && Language_extension.(is_at_least SIMD Stable) -> Lambda.Punboxed_vector Pvec128 - | Product consts when Language_extension.(is_at_least Layouts Beta) -> + | Product consts when Language_extension.(is_at_least Layouts Stable) -> (* CR layouts v7.1: assess whether it is important for performance to support deep value_kinds here *) Lambda.Punboxed_product - (List.map (layout_of_const_sort_generic ~value_kind:(lazy Pgenval) ~error) + (List.map (layout_of_const_sort_generic + ~value_kind:(lazy Lambda.generic_value) ~error) consts) | (( Base (Void | Float32 | Float64 | Word | Bits32 | Bits64 | Vec128) | Product _) as const) -> @@ -760,20 +767,16 @@ let layout env loc sort ty = | Base Vec128 as const -> raise (Error (loc, Simd_sort_without_extension (Jkind.Sort.of_const const, Some ty))) - | Base (Float64 | Word | Bits32 | Bits64) as const -> + | (Base (Float64 | Word | Bits32 | Bits64) | Product _) as const -> raise (Error (loc, Sort_without_extension (Jkind.Sort.of_const const, Stable, Some ty))) - | Product _ as const -> - raise (Error (loc, Sort_without_extension (Jkind.Sort.of_const const, - Beta, - Some ty))) ) let layout_of_sort loc sort = layout_of_const_sort_generic (Jkind.Sort.default_to_value_and_get sort) - ~value_kind:(lazy Pgenval) + ~value_kind:(lazy Lambda.generic_value) ~error:(function | Base Value -> assert false | Base Void -> @@ -784,18 +787,15 @@ let layout_of_sort loc sort = | Base Vec128 as const -> raise (Error (loc, Simd_sort_without_extension (Jkind.Sort.of_const const, None))) - | Base (Float64 | Word | Bits32 | Bits64) as const -> + | (Base (Float64 | Word | Bits32 | Bits64) | Product _) as const -> raise (Error (loc, Sort_without_extension (Jkind.Sort.of_const const, Stable, None))) - | Product _ as const -> - raise (Error (loc, Sort_without_extension (Jkind.Sort.of_const const, - Beta, - None)))) + ) let layout_of_const_sort c = layout_of_const_sort_generic c - ~value_kind:(lazy Pgenval) + ~value_kind:(lazy Lambda.generic_value) ~error:(fun const -> Misc.fatal_errorf "layout_of_const_sort: %a encountered" Jkind.Sort.Const.format const) @@ -865,6 +865,20 @@ let classify_lazy_argument : Typedtree.expression -> (* let value_kind_union (k1 : Lambda.value_kind) (k2 : Lambda.value_kind) = if Lambda.equal_value_kind k1 k2 then k1 +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 + else Pgenval + +let rec layout_union l1 l2 = + match l1, l2 with +======= + (* CR vlaviron: we could be more precise by comparing nullability and + raw kinds separately *) + else Lambda.generic_value + +let rec layout_union l1 l2 = + match l1, l2 with +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a (Jkind.Violation.report_with_offender ~offender:(fun ppf -> Printtyp.type_expr ppf ty)) err | Unsupported_sort const -> diff --git a/src/ocaml/typing/untypeast.mli b/src/ocaml/typing/untypeast.mli index 7eb13f592..5e4d1df9e 100644 --- a/src/ocaml/typing/untypeast.mli +++ b/src/ocaml/typing/untypeast.mli @@ -82,9 +82,16 @@ val default_mapper : mapper val untype_structure : ?mapper:mapper -> Typedtree.structure -> structure val untype_signature : ?mapper:mapper -> Typedtree.signature -> signature +<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 val constant : Typedtree.constant -> [ `Parsetree of Parsetree.constant | `Jane_syntax of Jane_syntax.Layouts.constant ] (* Merlin *) val untype_pattern : _ Typedtree.general_pattern -> Parsetree.pattern val untype_expression : Typedtree.expression -> Parsetree.expression +||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 +val constant : Typedtree.constant -> + [ `Parsetree of Parsetree.constant | `Jane_syntax of Jane_syntax.Layouts.constant ] +======= +val constant : Typedtree.constant -> Parsetree.constant +>>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a diff --git a/upstream/ocaml_flambda/parsing/language_extension.ml b/upstream/ocaml_flambda/parsing/language_extension.ml new file mode 100644 index 000000000..b0af2e23a --- /dev/null +++ b/upstream/ocaml_flambda/parsing/language_extension.ml @@ -0,0 +1,544 @@ +include Language_extension_kernel + +type 'a language_extension = 'a t + +(* operations we want on every extension level *) +module type Extension_level = sig + type t + + val compare : t -> t -> int + + val max : t -> t -> t + + val max_value : t + + val all : t list + + val to_command_line_suffix : t -> string +end + +module Unit = struct + type t = unit + + let compare = Unit.compare + + let max _ _ = () + + let max_value = () + + let all = [()] + + let to_command_line_suffix () = "" +end + +module Maturity = struct + type t = maturity = + | Stable + | Beta + | Alpha + + let compare t1 t2 = + let rank = function Stable -> 1 | Beta -> 2 | Alpha -> 3 in + compare (rank t1) (rank t2) + + let max t1 t2 = if compare t1 t2 >= 0 then t1 else t2 + + let max_value = Alpha + + let all = [Stable; Beta; Alpha] + + let to_command_line_suffix = function + | Stable -> "" + | Beta -> "_beta" + | Alpha -> "_alpha" +end + +let maturity_to_string = function + | Alpha -> "alpha" + | Beta -> "beta" + | Stable -> "stable" + +let get_level_ops : type a. a t -> (module Extension_level with type t = a) = + function + | Comprehensions -> (module Unit) + | Mode -> (module Maturity) + | Unique -> (module Unit) + | Include_functor -> (module Unit) + | Polymorphic_parameters -> (module Unit) + | Immutable_arrays -> (module Unit) + | Module_strengthening -> (module Unit) + | Layouts -> (module Maturity) + | SIMD -> (module Maturity) + | Labeled_tuples -> (module Unit) + | Small_numbers -> (module Maturity) + | Instances -> (module Unit) + +(* We'll do this in a more principled way later. *) +(* CR layouts: Note that layouts is only "mostly" erasable, because of annoying + interactions with the pre-layouts [@@immediate] attribute like: + + type ('a : immediate) t = 'a [@@immediate] + + But we've decided to punt on this issue in the short term. +*) +let is_erasable : type a. a t -> bool = function + | Mode | Unique | Layouts -> true + | Comprehensions | Include_functor | Polymorphic_parameters | Immutable_arrays + | Module_strengthening | SIMD | Labeled_tuples | Small_numbers | Instances -> + false + +module Exist_pair = struct + type t = Pair : 'a language_extension * 'a -> t + + let maturity : t -> Maturity.t = function + | Pair (Comprehensions, ()) -> Beta + | Pair (Mode, m) -> m + | Pair (Unique, ()) -> Alpha + | Pair (Include_functor, ()) -> Stable + | Pair (Polymorphic_parameters, ()) -> Stable + | Pair (Immutable_arrays, ()) -> Stable + | Pair (Module_strengthening, ()) -> Stable + | Pair (Layouts, m) -> m + | Pair (SIMD, m) -> m + | Pair (Labeled_tuples, ()) -> Stable + | Pair (Small_numbers, m) -> m + | Pair (Instances, ()) -> Stable + + let is_erasable : t -> bool = function Pair (ext, _) -> is_erasable ext + + let to_string = function + | Pair (Layouts, m) -> to_string Layouts ^ "_" ^ maturity_to_string m + | Pair (Mode, m) -> to_string Mode ^ "_" ^ maturity_to_string m + | Pair (Small_numbers, m) -> + to_string Small_numbers ^ "_" ^ maturity_to_string m + | Pair (SIMD, m) -> to_string SIMD ^ "_" ^ maturity_to_string m + | Pair + ( (( Comprehensions | Unique | Include_functor | Polymorphic_parameters + | Immutable_arrays | Module_strengthening | Labeled_tuples + | Instances ) as ext), + _ ) -> + to_string ext + + (* converts full extension names, like "layouts_alpha" to a pair of + an extension and its maturity. For extensions that don't take an + argument, the conversion is just [Language_extension_kernel.of_string]. + *) + let of_string extn_name : t option = + match String.lowercase_ascii extn_name with + | "comprehensions" -> Some (Pair (Comprehensions, ())) + | "mode" -> Some (Pair (Mode, Stable)) + | "mode_beta" -> Some (Pair (Mode, Beta)) + | "mode_alpha" -> Some (Pair (Mode, Alpha)) + | "unique" -> Some (Pair (Unique, ())) + | "include_functor" -> Some (Pair (Include_functor, ())) + | "polymorphic_parameters" -> Some (Pair (Polymorphic_parameters, ())) + | "immutable_arrays" -> Some (Pair (Immutable_arrays, ())) + | "module_strengthening" -> Some (Pair (Module_strengthening, ())) + | "layouts" -> Some (Pair (Layouts, Stable)) + | "layouts_alpha" -> Some (Pair (Layouts, Alpha)) + | "layouts_beta" -> Some (Pair (Layouts, Beta)) + | "simd" -> Some (Pair (SIMD, Stable)) + | "simd_beta" -> Some (Pair (SIMD, Beta)) + | "labeled_tuples" -> Some (Pair (Labeled_tuples, ())) + | "small_numbers" -> Some (Pair (Small_numbers, Stable)) + | "small_numbers_beta" -> Some (Pair (Small_numbers, Beta)) + | "instances" -> Some (Pair (Instances, ())) + | _ -> None +end + +type extn_pair = Exist_pair.t = Pair : 'a t * 'a -> extn_pair + +type exist = Pack : _ t -> exist + +let all_extensions = + [ Pack Comprehensions; + Pack Mode; + Pack Unique; + Pack Include_functor; + Pack Polymorphic_parameters; + Pack Immutable_arrays; + Pack Module_strengthening; + Pack Layouts; + Pack SIMD; + Pack Labeled_tuples; + Pack Small_numbers; + Pack Instances ] + +(**********************************) +(* string conversions *) + +let to_command_line_string : type a. a t -> a -> string = + fun extn level -> + let (module Ops) = get_level_ops extn in + to_string extn ^ Ops.to_command_line_suffix level + +let pair_of_string_exn extn_name = + match Exist_pair.of_string extn_name with + | Some pair -> pair + | None -> + raise (Arg.Bad (Printf.sprintf "Extension %s is not known" extn_name)) + +let of_string extn_name : exist option = + match Exist_pair.of_string extn_name with + | Some (Pair (ext, _)) -> Some (Pack ext) + | None -> None + +(************************************) +(* equality *) + +let equal_t (type a b) (a : a t) (b : b t) : (a, b) Misc.eq option = + match a, b with + | Comprehensions, Comprehensions -> Some Refl + | Mode, Mode -> Some Refl + | Unique, Unique -> Some Refl + | Include_functor, Include_functor -> Some Refl + | Polymorphic_parameters, Polymorphic_parameters -> Some Refl + | Immutable_arrays, Immutable_arrays -> Some Refl + | Module_strengthening, Module_strengthening -> Some Refl + | Layouts, Layouts -> Some Refl + | SIMD, SIMD -> Some Refl + | Labeled_tuples, Labeled_tuples -> Some Refl + | Small_numbers, Small_numbers -> Some Refl + | Instances, Instances -> Some Refl + | ( ( Comprehensions | Mode | Unique | Include_functor + | Polymorphic_parameters | Immutable_arrays | Module_strengthening + | Layouts | SIMD | Labeled_tuples | Small_numbers | Instances ), + _ ) -> + None + +let equal a b = Option.is_some (equal_t a b) + +(*****************************) +(* extension universes *) + +module Universe : sig + type t = + | No_extensions + | Upstream_compatible + | Stable + | Beta + | Alpha + + val all : t list + + val maximal : t + + val to_string : t -> string + + val of_string : string -> t option + + val get : unit -> t + + val set : t -> unit + + val is : t -> bool + + val check : extn_pair -> unit + + (* Allowed extensions, each with the greatest allowed level. *) + val allowed_extensions_in : t -> extn_pair list +end = struct + (** Which extensions can be enabled? *) + type t = + | No_extensions + | Upstream_compatible + | Stable + | Beta + | Alpha + (* If you add a constructor, you should also add it to [all]. *) + + let all = [No_extensions; Upstream_compatible; Stable; Beta; Alpha] + + let maximal = Alpha + + let to_string = function + | No_extensions -> "no_extensions" + | Upstream_compatible -> "upstream_compatible" + | Stable -> "stable" + | Beta -> "beta" + | Alpha -> "alpha" + + let of_string = function + | "no_extensions" -> Some No_extensions + | "upstream_compatible" -> Some Upstream_compatible + | "stable" -> Some Stable + | "beta" -> Some Beta + | "alpha" -> Some Alpha + | _ -> None + + let compare t1 t2 = + let rank = function + | No_extensions -> 0 + | Upstream_compatible -> 1 + | Stable -> 2 + | Beta -> 3 + | Alpha -> 4 + in + compare (rank t1) (rank t2) + + (* For now, the default universe is set to [Alpha] but only a limited set of + extensions is enabled. After the migration to extension universes, the + default will be [No_extensions]. *) + let universe = ref Alpha + + let get () = !universe + + let set new_universe = universe := new_universe + + let is u = compare u !universe = 0 + + let compiler_options = function + | No_extensions -> "flag -extension-universe no_extensions" + | Upstream_compatible -> "flag -extension-universe upstream_compatible" + | Stable -> "flag -extension-universe stable" + | Beta -> "flag -extension-universe beta" + | Alpha -> "flag -extension-universe alpha (default CLI option)" + + let is_allowed_in t extn_pair = + match t with + | No_extensions -> false + | Upstream_compatible -> + Exist_pair.is_erasable extn_pair + && Maturity.compare (Exist_pair.maturity extn_pair) Stable <= 0 + | Stable -> Maturity.compare (Exist_pair.maturity extn_pair) Stable <= 0 + | Beta -> Maturity.compare (Exist_pair.maturity extn_pair) Beta <= 0 + | Alpha -> true + + let is_allowed extn_pair = is_allowed_in !universe extn_pair + + (* The terminating [()] argument helps protect against ignored arguments. See + the documentation for [Base.failwithf]. *) + let fail fmt = Format.ksprintf (fun str () -> raise (Arg.Bad str)) fmt + + let check extn_pair = + if not (is_allowed extn_pair) + then + fail "Cannot enable extension %s: incompatible with %s" + (Exist_pair.to_string extn_pair) + (compiler_options !universe) + () + + let allowed_extensions_in t = + let maximal_in_universe (Pack extn) = + let (module Ops) = get_level_ops extn in + let allowed_levels = + Ops.all |> List.filter (fun lvl -> is_allowed_in t (Pair (extn, lvl))) + in + match allowed_levels with + | [] -> None + | lvl :: lvls -> + let max_allowed_lvl = List.fold_left Ops.max lvl lvls in + Some (Pair (extn, max_allowed_lvl)) + in + List.filter_map maximal_in_universe all_extensions +end + +(*****************************************) +(* enabling / disabling *) + +(* Mutable state. Invariants: + + (1) [!extensions] contains at most one copy of each extension. + + (2) Every member of [!extensions] satisfies [Universe.is_allowed]. (For + instance, [!universe = No_extensions] implies [!extensions = []]). *) + +(* After the migration to extension universes, this will be an empty list. *) +let legacy_default_extensions : extn_pair list = + Universe.allowed_extensions_in Stable + +let extensions : extn_pair list ref = ref legacy_default_extensions + +let set_worker (type a) (extn : a t) = function + | Some value -> + Universe.check (Pair (extn, value)); + let (module Ops) = get_level_ops extn in + let rec update_extensions already_seen : extn_pair list -> extn_pair list = + function + | [] -> Pair (extn, value) :: already_seen + | (Pair (extn', v) as e) :: es -> ( + match equal_t extn extn' with + | None -> update_extensions (e :: already_seen) es + | Some Refl -> + Pair (extn, Ops.max v value) :: List.rev_append already_seen es) + in + extensions := update_extensions [] !extensions + | None -> + extensions + := List.filter + (fun (Pair (extn', _) : extn_pair) -> not (equal extn extn')) + !extensions + +let set extn ~enabled = set_worker extn (if enabled then Some () else None) + +let enable extn value = set_worker extn (Some value) + +let disable extn = set_worker extn None + +(* This is similar to [Misc.protect_refs], but we don't have values to set + [extensions] to. *) +let with_temporary_extensions f = + let current_extensions = !extensions in + Fun.protect ~finally:(fun () -> extensions := current_extensions) f + +(* It might make sense to ban [set], [enable], [disable], + [only_erasable_extensions], and [disallow_extensions] inside [f], but it's + not clear that it's worth the hassle *) +let with_set_worker extn value f = + with_temporary_extensions (fun () -> + set_worker extn value; + f ()) + +let with_set extn ~enabled = + with_set_worker extn (if enabled then Some () else None) + +let with_enabled extn value = with_set_worker extn (Some value) + +let with_disabled extn = with_set_worker extn None + +let enable_of_string_exn extn_name = + match pair_of_string_exn extn_name with + | Pair (extn, setting) -> enable extn setting + +let disable_of_string_exn extn_name = + match pair_of_string_exn extn_name with Pair (extn, _) -> disable extn + +let disable_all () = extensions := [] + +let unconditionally_enable_maximal_without_checks () = + let maximal_pair (Pack extn) = + let (module Ops) = get_level_ops extn in + Pair (extn, Ops.max_value) + in + extensions := List.map maximal_pair all_extensions + +let erasable_extensions_only () = + Universe.is No_extensions || Universe.is Upstream_compatible + +let set_universe_and_enable_all u = + Universe.set u; + extensions := Universe.allowed_extensions_in (Universe.get ()) + +let set_universe_and_enable_all_of_string_exn univ_name = + match Universe.of_string univ_name with + | Some u -> set_universe_and_enable_all u + | None -> + raise (Arg.Bad (Printf.sprintf "Universe %s is not known" univ_name)) + +(********************************************) +(* checking an extension *) + +let is_at_least (type a) (extn : a t) (value : a) = + let rec check : extn_pair list -> bool = function + | [] -> false + | Pair (e, v) :: es -> ( + let (module Ops) = get_level_ops e in + match equal_t e extn with + | Some Refl -> Ops.compare v value >= 0 + | None -> check es) + in + check !extensions + +let is_enabled extn = + let rec check : extn_pair list -> bool = function + | [] -> false + | Pair (e, _) :: _ when equal e extn -> true + | _ :: es -> check es + in + check !extensions + +let get_command_line_string_if_enabled extn = + let rec find = function + | [] -> None + | Pair (e, v) :: _ when equal e extn -> Some (to_command_line_string e v) + | _ :: es -> find es + in + find !extensions + +(********************************************) +(* existentially packed extension *) + +module Exist = struct + type t = exist = Pack : _ language_extension -> t + + let all = all_extensions + + let to_command_line_strings (Pack extn) = + let (module Ops) = get_level_ops extn in + List.map (to_command_line_string extn) Ops.all + + let to_string : t -> string = function Pack extn -> to_string extn + + let is_enabled : t -> bool = function Pack extn -> is_enabled extn + + let is_erasable : t -> bool = function Pack extn -> is_erasable extn +end + +module Error = struct + type error = + | Disabled_extension : + { ext : _ t; + maturity : maturity option + } + -> error + + let report_error ~loc = function + | Disabled_extension { ext; maturity } -> ( + (* CR layouts: The [maturity] special case is a bit ad-hoc, but the + layouts error message would be much worse without it. It also would be + nice to mention the language construct in the error message. *) + match maturity with + | None -> + Location.errorf ~loc + "The extension \"%s\" is disabled and cannot be used" (to_string ext) + | Some maturity -> + Location.errorf ~loc + "This construct requires the %s version of the extension \"%s\", \ + which is disabled and cannot be used" + (maturity_to_string maturity) + (to_string ext)) + + exception Error of Location.t * error + + let () = + Location.register_error_of_exn (function + | Error (loc, err) -> Some (report_error ~loc err) + | _ -> None) +end + +let assert_enabled (type a) ~loc (t : a t) (setting : a) = + if not (is_at_least t setting) + then + let maturity : maturity option = + match t with Layouts -> Some (setting : maturity) | _ -> None + in + raise (Error.Error (loc, Disabled_extension { ext = t; maturity })) + +(********************************************) +(* Special functionality for [Pprintast] *) + +module For_pprintast = struct + type printer_exporter = + { print_with_maximal_extensions : + 'a. (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a -> unit + } + + let can_still_define_printers = ref true + + let make_printer_exporter () = + if !can_still_define_printers + then ( + can_still_define_printers := false; + { print_with_maximal_extensions = + (fun pp fmt item -> + with_temporary_extensions (fun () -> + (* It's safe to call this here without validating that the + extensions are enabled, because the [Pprintast] printers + should always print Jane syntax. *) + unconditionally_enable_maximal_without_checks (); + pp fmt item)) + }) + else + Misc.fatal_error + "Only Pprintast may use [Language_extension.For_pprintast]" +end diff --git a/upstream/ocaml_flambda/parsing/language_extension.mli b/upstream/ocaml_flambda/parsing/language_extension.mli new file mode 100644 index 000000000..d3d0c15cc --- /dev/null +++ b/upstream/ocaml_flambda/parsing/language_extension.mli @@ -0,0 +1,183 @@ +(** Language extensions provided by the Jane Street version of the OCaml + compiler. +*) + +(** A setting for extensions that track multiple maturity levels *) +type maturity = Language_extension_kernel.maturity = + | Stable + | Beta + | Alpha + +module Maturity : sig + (* Maturities are ordered such that the most experimental (Alpha) is + greatest *) + val max : maturity -> maturity -> maturity +end + +(** The type of language extensions. An ['a t] is an extension that can either + be off or be set to have any value in ['a], so a [unit t] can be either on + or off, while a [maturity t] can have different maturity settings. *) +type 'a t = 'a Language_extension_kernel.t = + | Comprehensions : unit t + | Mode : maturity t + | Unique : unit t + | Include_functor : unit t + | Polymorphic_parameters : unit t + | Immutable_arrays : unit t + | Module_strengthening : unit t + | Layouts : maturity t + | SIMD : maturity t + | Labeled_tuples : unit t + | Small_numbers : maturity t + | Instances : unit t + +(** Require that an extension is enabled for at least the provided level, or + else throw an exception at the provided location saying otherwise. *) +val assert_enabled : loc:Location.t -> 'a t -> 'a -> unit + +(** Existentially packed language extension *) +module Exist : sig + type 'a extn = 'a t + (* this is removed from the sig by the [with] below; ocamldoc doesn't like + [:=] in sigs *) + + type t = Pack : 'a extn -> t + + val to_string : t -> string + + val is_enabled : t -> bool + + val is_erasable : t -> bool + + (** Returns a list of all strings, like ["layouts_beta"], that + correspond to this extension. *) + val to_command_line_strings : t -> string list + + val all : t list +end +with type 'a extn := 'a t + +(** Equality on language extensions *) +val equal : 'a t -> 'b t -> bool + +(** The type of language extension universes. Each universe allows a set of + extensions, and every successive universe includes the previous one. + + Each variant corresponds to the [-extension-universe ] CLI flag. + + Each extension universe, except for [No_extensions], should also have + a corresponding library in [otherlibs/]. Those libraries must contain + OCaml code for corresponding extensions that would normally go into Stdlib. +*) +module Universe : sig + type t = + | No_extensions + | Upstream_compatible + (** Upstream compatible extensions, also known as "erasable". *) + | Stable (** Extensions of [Stable] maturity. *) + | Beta (** Extensions of [Beta] maturity. *) + | Alpha + (** All extensions. This is the universe enabled by default + for the time being. *) + + val all : t list + + (** Equal to [Alpha]. *) + val maximal : t + + val to_string : t -> string + + val of_string : string -> t option +end + +(** Disable all extensions *) +val disable_all : unit -> unit + +(** Check if a language extension is "erasable", i.e. whether it can be + harmlessly translated to attributes and compiled with the upstream + compiler. *) +val is_erasable : 'a t -> bool + +(** Print and parse language extensions; parsing is case-insensitive *) +val to_string : 'a t -> string + +val to_command_line_string : 'a t -> 'a -> string + +val of_string : string -> Exist.t option + +val maturity_to_string : maturity -> string + +(** Get the command line string enabling the given extension, if it's + enabled; otherwise None *) +val get_command_line_string_if_enabled : 'a t -> string option + +(** Enable and disable according to command-line strings; these raise + an exception if the input string is invalid. *) +val enable_of_string_exn : string -> unit + +val disable_of_string_exn : string -> unit + +(** Enable and disable language extensions; these operations are idempotent *) +val set : unit t -> enabled:bool -> unit + +val enable : 'a t -> 'a -> unit + +val disable : 'a t -> unit + +(** Check if a language extension is currently enabled (at any maturity level) +*) +val is_enabled : 'a t -> bool + +(** Check if a language extension is enabled at least at the given level *) +val is_at_least : 'a t -> 'a -> bool + +(** Tooling support: Temporarily enable and disable language extensions; these + operations are idempotent. Calls to [set], [enable], [disable] inside the body + of the function argument will also be rolled back when the function finishes, + but this behavior may change; nest multiple [with_*] functions instead. *) +val with_set : unit t -> enabled:bool -> (unit -> unit) -> unit + +val with_enabled : 'a t -> 'a -> (unit -> unit) -> unit + +val with_disabled : 'a t -> (unit -> unit) -> unit + +(** Check if the allowable extensions are restricted to only those that are + "erasable". This is true when the universe is set to [No_extensions] or + [Upstream_compatible]. *) +val erasable_extensions_only : unit -> bool + +(** Set the extension universe and enable all allowed extensions. *) +val set_universe_and_enable_all : Universe.t -> unit + +(** Parse a command-line string and call [set_universe_and_enable_all]. + Raises if the argument is invalid. *) +val set_universe_and_enable_all_of_string_exn : string -> unit + +(**/**) + +(** Special functionality that can only be used in "pprintast.ml" *) +module For_pprintast : sig + (** A function for wrapping a printer from "pprintast.ml" so that it will + unconditionally print Jane Syntax instead of raising an exception when + trying to print syntax from disabled extensions. *) + type printer_exporter = + { print_with_maximal_extensions : + 'a. (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a -> unit + } + + (** Raises if called more than once ever. *) + val make_printer_exporter : unit -> printer_exporter +end + +(** Expose the exception type raised by [assert_extension_enabled] to help + the exception printer. *) +module Error : sig + type error = private + | Disabled_extension : + { ext : _ t; + maturity : maturity option + } + -> error + + type exn += private Error of Location.t * error +end diff --git a/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml b/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml new file mode 100644 index 000000000..b596ec139 --- /dev/null +++ b/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml @@ -0,0 +1,79 @@ +[@@@ocaml.warning "+a-9-40-41-42"] + +type t = { + sign : Subst.Lazy.signature; + bound_globals : Global_module.t array; +} + +let read_from_cmi (cmi : Cmi_format.cmi_infos_lazy) = + let sign = + (* Freshen identifiers bound by signature *) + Subst.Lazy.signature Make_local Subst.identity cmi.cmi_sign in + let bound_globals = cmi.cmi_globals in + { sign; bound_globals } + +let array_fold_left_filter_map f init array = + let ans, new_array = Array.fold_left_map f init array in + let new_array = + (* To be replaced with something faster if we need it *) + Array.of_seq (Seq.filter_map (fun a -> a) (Array.to_seq new_array)) + in + ans, new_array + +let subst t (args : (Global_module.Name.t * Global_module.t) list) = + let { sign; bound_globals } = t in + match args with + | [] -> t + | _ -> + (* The global-level substitution *) + let arg_subst = Global_module.Name.Map.of_list args in + (* Take a bound global, substitute arguments into it, then return the + updated global while also adding it to the term-level substitution *) + let add_and_update_binding subst bound_global = + let name = Global_module.to_name bound_global in + if Global_module.Name.Map.mem name arg_subst then + (* This shouldn't happen: only globals with hidden arguments should be + in [bound_globals], and parameters shouldn't have arguments. + Previous code that was meant to handle parameterised parameters + was simply saying [subst, None] here since [add_arg] would handle + adding to [subst] and we can drop the global from [bound_globals] + if we're substituting for it. *) + Misc.fatal_error "Unexpected parameterised parameter" + else + begin + let value, changed = Global_module.subst bound_global arg_subst in + let name_id = Ident.create_global name in + let value_as_name = Global_module.to_name value in + let value_id = Ident.create_global value_as_name in + let subst = + match changed with + | `Changed -> + Subst.add_module name_id (Pident value_id) subst + | `Did_not_change -> + subst + in + let new_bound_global = + if Global_module.is_complete value then + (* No explicit binding for unparameterised or + completely-applied global *) + None + else + Some value + in + subst, new_bound_global + end + in + let subst = Subst.identity in + let subst, bound_globals = + array_fold_left_filter_map add_and_update_binding subst bound_globals + in + (* Add an argument to the substitution. *) + let add_arg subst (name, value) = + let name_id = Ident.create_global name in + let value_as_name = Global_module.to_name value in + let value_id = Ident.create_global value_as_name in + Subst.add_module name_id (Pident value_id) subst + in + let subst = List.fold_left add_arg subst args in + let sign = Subst.Lazy.signature Keep subst sign in + { sign; bound_globals } diff --git a/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli b/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli new file mode 100644 index 000000000..27494c9bd --- /dev/null +++ b/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli @@ -0,0 +1,54 @@ +[@@@ocaml.warning "+a-9-40-41-42"] + +(** The [cmi_sign] and [cmi_globals] fields from a .cmi file, seen as a single + term of the form: + + {v let = in + ... + let = in + sig + ... + end v} + + Note that globals without parameters are understood to be bound but aren't + represented explicitly. *) +type t = private { + sign : Subst.Lazy.signature; + bound_globals : Global_module.t array; +} + +val read_from_cmi : Cmi_format.cmi_infos_lazy -> t + +(** To see how substitution will work on [t], suppose we have something like + {v let X = X in + let Y = Y in + let M = M{X}{Y} in + ... X ... Y ... M ... v} + Now suppose we import this module and pass [A] as the value of [X]. + + 1. We substitute [A] for [X] in the bound global names: + {v let X = A in + let Y = Y in + let M = M[X:A]{Y} in + ... X ... Y ... M ... v} + 2. Now, as usual, to work with the signature, we need to add these bindings + to the environment. However, we can't lift them in this form, as [X] and + [M] may have different bindings in different modules. To achieve + consistency, we alpha-rename to a canonical form: + {v let A = A in + let Y = Y in + let M[X:A] = M[X:A]{Y} + ... A ... Y ... M[X:A] ... v} + + In general, the plan of action is: + + 1. Form a substitution [S] mapping each argument's name to its value + 2. Apply [S] to the RHSes of the global name bindings + 3. For each new binding [L = R'], let [L'] be the [Global_module.to_name] of + [R'], substitute [L'] for [L] in the body, and update the binding to + [L' = R'] + + Note that the argument values themselves won't be returned in the new list + of bound globals, since it's assumed that they are already accounted for in + the environment. *) +val subst : t -> (Global_module.Name.t * Global_module.t) list -> t From 50305c20ce98149dcdffbb1157c55a856d156000 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Tue, 12 Nov 2024 14:00:59 -0500 Subject: [PATCH 05/15] Remove files that were deleted in flambda --- src/ocaml/parsing/jane_syntax.ml | 1526 ----------------- src/ocaml/parsing/jane_syntax.mli | 478 ------ src/ocaml/parsing/jane_syntax_parsing.ml | 0 src/ocaml/parsing/jane_syntax_parsing.mli | 0 src/ocaml/utils/language_extension.ml | 453 ----- src/ocaml/utils/language_extension.mli | 0 upstream/ocaml_flambda/configure | 0 upstream/ocaml_flambda/parsing/jane_syntax.ml | 0 .../ocaml_flambda/parsing/jane_syntax.mli | 0 .../parsing/jane_syntax_parsing.ml | 0 .../parsing/jane_syntax_parsing.mli | 0 .../ocaml_flambda/typing/typedecl_unboxed.ml | 0 .../ocaml_flambda/typing/typedecl_unboxed.mli | 0 upstream/ocaml_flambda/utils/Makefile | 0 upstream/ocaml_flambda/utils/config.mlp | 0 .../ocaml_flambda/utils/language_extension.ml | 0 .../utils/language_extension.mli | 0 17 files changed, 2457 deletions(-) delete mode 100644 src/ocaml/parsing/jane_syntax.ml delete mode 100644 src/ocaml/parsing/jane_syntax.mli delete mode 100644 src/ocaml/parsing/jane_syntax_parsing.ml delete mode 100644 src/ocaml/parsing/jane_syntax_parsing.mli delete mode 100644 src/ocaml/utils/language_extension.ml delete mode 100644 src/ocaml/utils/language_extension.mli delete mode 100644 upstream/ocaml_flambda/configure delete mode 100644 upstream/ocaml_flambda/parsing/jane_syntax.ml delete mode 100644 upstream/ocaml_flambda/parsing/jane_syntax.mli delete mode 100644 upstream/ocaml_flambda/parsing/jane_syntax_parsing.ml delete mode 100644 upstream/ocaml_flambda/parsing/jane_syntax_parsing.mli delete mode 100644 upstream/ocaml_flambda/typing/typedecl_unboxed.ml delete mode 100644 upstream/ocaml_flambda/typing/typedecl_unboxed.mli delete mode 100644 upstream/ocaml_flambda/utils/Makefile delete mode 100644 upstream/ocaml_flambda/utils/config.mlp delete mode 100644 upstream/ocaml_flambda/utils/language_extension.ml delete mode 100644 upstream/ocaml_flambda/utils/language_extension.mli diff --git a/src/ocaml/parsing/jane_syntax.ml b/src/ocaml/parsing/jane_syntax.ml deleted file mode 100644 index d398292aa..000000000 --- a/src/ocaml/parsing/jane_syntax.ml +++ /dev/null @@ -1,1526 +0,0 @@ -open Asttypes -open Parsetree -open Jane_syntax_parsing - -(** We carefully regulate which bindings we import from [Language_extension] - to ensure that we can import this file into the Jane Street internal - repo with no changes. -*) -module Language_extension = struct - include Language_extension_kernel - - include ( - Language_extension : - Language_extension_kernel.Language_extension_for_jane_syntax) -end - -(* Suppress the unused module warning so it's easy to keep around the - shadowing even if we delete use sites of the module. *) -module _ = Language_extension - -(****************************************) -(* Helpers used just within this module *) - -module type Extension = sig - val feature : Feature.t -end - -module Ast_of (AST : AST) (Ext : Extension) : sig - (* Wrap a bit of AST with a jane-syntax annotation *) - val wrap_jane_syntax : - string list -> - (* these strings describe the bit of new syntax *) - ?payload:payload -> - AST.ast -> - AST.ast -end = struct - let wrap_jane_syntax suffixes ?payload to_be_wrapped = - AST.make_jane_syntax Ext.feature suffixes ?payload to_be_wrapped -end - -module Of_ast (Ext : Extension) : sig - type unwrapped := string list * payload * attributes - - (* Find and remove a jane-syntax attribute marker, throwing an exception - if the attribute name does not have the right format or extension. *) - val unwrap_jane_syntax_attributes_exn : - loc:Location.t -> attributes -> unwrapped -end = struct - let extension_string = Feature.extension_component Ext.feature - - module Desugaring_error = struct - type error = - | Not_this_embedding of Embedded_name.t - | Non_embedding - - let report_error ~loc = function - | Not_this_embedding name -> - Location.errorf ~loc - "Tried to desugar the embedded term %a@ as belonging to the %s \ - extension" - Embedded_name.pp_quoted_name name extension_string - | Non_embedding -> - Location.errorf ~loc - "Tried to desugar a non-embedded expression@ as belonging to the %s \ - extension" - extension_string - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise ~loc err = raise (Error (loc, err)) - end - - let unwrap_jane_syntax_attributes attrs : (_, Desugaring_error.error) result = - match find_and_remove_jane_syntax_attribute attrs with - | Some (ext_name, _loc, payload, attrs) -> ( - match Jane_syntax_parsing.Embedded_name.components ext_name with - | extension_occur :: names - when String.equal extension_occur extension_string -> - Ok (names, payload, attrs) - | _ -> Error (Not_this_embedding ext_name)) - | None -> Error Non_embedding - - let unwrap_jane_syntax_attributes_exn ~loc attrs = - match unwrap_jane_syntax_attributes attrs with - | Ok x -> x - | Error error -> Desugaring_error.raise ~loc error -end - -(******************************************************************************) -(** Individual language extension modules *) - -(* Note [Check for immutable extension in comprehensions code] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - When we spot a comprehension for an immutable array, we need to make sure - that both [comprehensions] and [immutable_arrays] are enabled. But our - general mechanism for checking for enabled extensions (in [of_ast]) won't - work well here: it triggers when converting from - e.g. [[%jane.non_erasable.comprehensions.array] ...] to the - comprehensions-specific AST. But if we spot a - [[%jane.non_erasable.comprehensions.immutable]], there is no expression to - translate. So we just check for the immutable arrays extension when - processing a comprehension expression for an immutable array. - - Note [Wrapping with make_entire_jane_syntax] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - The topmost node in the encoded AST must always look like e.g. - [%jane.non_erasable.comprehensions]. (More generally, - [%jane.ERASABILITY.FEATURE] or [@jane.ERASABILITY.FEATURE].) This allows the - decoding machinery to know what extension is being used and what function to - call to do the decoding. Accordingly, during encoding, after doing the hard - work of converting the extension syntax tree into e.g. Parsetree.expression, - we need to make a final step of wrapping the result in a [%jane.*.xyz] node. - Ideally, this step would be done by part of our general structure, like we - separate [of_ast] and [of_ast_internal] in the decode structure; this design - would make it structurally impossible/hard to forget taking this final step. - - However, the final step is only one line of code (a call to - [make_entire_jane_syntax]), but yet the name of the feature varies, as does - the type of the payload. It would thus take several lines of code to execute - this command otherwise, along with dozens of lines to create the structure in - the first place. And so instead we just manually call - [make_entire_jane_syntax] and refer to this Note as a reminder to authors of - future syntax features to remember to do this wrapping. - - Note [Outer attributes at end] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - The order of attributes matters for several reasons: - - If the user writes attributes on a Jane Street OCaml construct, where - should those appear with respect to the Jane Syntax attribute that - introduces the construct? - - Some Jane Syntax embeddings use attributes, and sometimes an AST node will - have multiple Jane Syntax-related attributes on it. Which attribute should - Jane Syntax interpret first? - - Both of these questions are settled by a convention where attributes - appearing later in an attribute list are considered to be "outer" to - attributes appearing earlier. (ppxlib adopted this convention, and thus we - need to as well for compatibility.) - - - User-written attributes appear later in the attribute list than - a Jane Syntax attribute that introduces a syntactic construct. - - If multiple Jane Syntax attributes appear on an AST node, the ones - appearing later in the attribute list should be interpreted first. -*) - -module type Payload_protocol = sig - type t - - module Encode : sig - val as_payload : t loc -> payload - - val list_as_payload : t loc list -> payload - - val option_list_as_payload : t loc option list -> payload - end - - module Decode : sig - val from_payload : loc:Location.t -> payload -> t loc - - val list_from_payload : loc:Location.t -> payload -> t loc list - - val option_list_from_payload : - loc:Location.t -> payload -> t loc option list - end -end - -module type Structure_item_encodable = sig - type t - - val of_structure_item : structure_item -> t loc option - - val to_structure_item : t loc -> structure_item - - (** For error messages: a name that can be used to identify the - [t] being converted to and from string, and its indefinite - article (either "a" or "an"). - *) - val indefinite_article_and_name : string * string -end - -module type Stringable = sig - type t - - val of_string : string -> t option - - val to_string : t -> string - - (** For error messages: a name that can be used to identify the - [t] being converted to and from string, and its indefinite - article (either "a" or "an"). - *) - val indefinite_article_and_name : string * string -end - -module Make_structure_item_encodable_of_stringable (Stringable : Stringable) : - Structure_item_encodable with type t = Stringable.t = struct - include Stringable - - let to_structure_item t_loc = - let string = Stringable.to_string t_loc.txt in - let expr = - Ast_helper.Exp.ident (Location.mkloc (Longident.Lident string) t_loc.loc) - in - { pstr_desc = Pstr_eval (expr, []); pstr_loc = Location.none } - - let of_structure_item = function - | { pstr_desc = Pstr_eval ({ pexp_desc = Pexp_ident payload_lid; _ }, _) } - -> ( - match Stringable.of_string (Longident.last payload_lid.txt) with - | Some t -> Some (Location.mkloc t payload_lid.loc) - | None -> None) - | _ -> None -end - -module Make_payload_protocol_of_structure_item_encodable - (Encodable : Structure_item_encodable) : - Payload_protocol with type t := Encodable.t = struct - module Encode = struct - let structure_item_of_none = - { pstr_desc = - Pstr_attribute - { attr_name = Location.mknoloc "jane.none"; - attr_payload = PStr []; - attr_loc = Location.none - }; - pstr_loc = Location.none - } - - let as_payload t_loc = PStr [Encodable.to_structure_item t_loc] - - let list_as_payload t_locs = - let items = List.map Encodable.to_structure_item t_locs in - PStr items - - let option_list_as_payload t_locs = - let items = - List.map - (function - | None -> structure_item_of_none - | Some t_loc -> Encodable.to_structure_item t_loc) - t_locs - in - PStr items - end - - module Desugaring_error = struct - type error = Unknown_payload of payload - - let report_error ~loc = function - | Unknown_payload payload -> - let indefinite_article, name = Encodable.indefinite_article_and_name in - Location.errorf ~loc "Attribute payload does not name %s %s:@;%a" - indefinite_article name (Printast.payload 0) payload - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise ~loc err = raise (Error (loc, err)) - end - - module Decode = struct - (* Avoid exporting a definition that raises [Unexpected]. *) - open struct - exception Unexpected - - let is_none_structure_item = function - | { pstr_desc = Pstr_attribute { attr_name = { txt = "jane.none" } } } - -> - true - | _ -> false - - let from_structure_item item = - match Encodable.of_structure_item item with - | Some t_loc -> t_loc - | None -> raise Unexpected - - let from_payload payload = - match payload with - | PStr [item] -> from_structure_item item - | _ -> raise Unexpected - - let list_from_payload payload = - match payload with - | PStr items -> List.map (fun item -> from_structure_item item) items - | _ -> raise Unexpected - - let option_list_from_payload payload = - match payload with - | PStr items -> - List.map - (fun item -> - if is_none_structure_item item - then None - else Some (from_structure_item item)) - items - | _ -> raise Unexpected - end - - let from_payload ~loc payload : _ loc = - try from_payload payload - with Unexpected -> Desugaring_error.raise ~loc (Unknown_payload payload) - - let list_from_payload ~loc payload : _ list = - try list_from_payload payload - with Unexpected -> Desugaring_error.raise ~loc (Unknown_payload payload) - - let option_list_from_payload ~loc payload : _ list = - try option_list_from_payload payload - with Unexpected -> Desugaring_error.raise ~loc (Unknown_payload payload) - end -end - -module Make_payload_protocol_of_stringable (Stringable : Stringable) : - Payload_protocol with type t := Stringable.t = - Make_payload_protocol_of_structure_item_encodable - (Make_structure_item_encodable_of_stringable (Stringable)) - -module Arrow_curry = struct - let curry_attr_name = "extension.curry" - - let curry_attr loc = - Ast_helper.Attr.mk ~loc:Location.none - (Location.mkloc curry_attr_name loc) - (PStr []) -end - -(* only used for [Jkind] below *) -module Mode = struct - module Protocol = Make_payload_protocol_of_stringable (struct - type t = mode - - let indefinite_article_and_name = "a", "mode" - - let to_string (Mode s) = s - - let of_string' s = Mode s - - let of_string s = Some (of_string' s) - end) - - let list_as_payload = Protocol.Encode.list_as_payload - - let list_from_payload = Protocol.Decode.list_from_payload -end - -module Jkind = struct - module Const : sig - type t = Parsetree.jkind_const_annotation - - val mk : string -> Location.t -> t - - val of_structure_item : structure_item -> t option - - val to_structure_item : t -> structure_item - end = struct - type raw = string - - module Protocol = Make_structure_item_encodable_of_stringable (struct - type t = raw - - let indefinite_article_and_name = "a", "primitive kind" - - let to_string t = t - - let of_string t = Some t - end) - - type t = raw loc - - let mk txt loc : t = { txt; loc } - - let of_structure_item = Protocol.of_structure_item - - let to_structure_item = Protocol.to_structure_item - end - - type t = Parsetree.jkind_annotation = - | Default - | Abbreviation of Const.t - | Mod of t * modes - | With of t * core_type - | Kind_of of core_type - | Product of t list - - type annotation = t loc - - let indefinite_article_and_name = "a", "kind" - - let prefix = "jane.erasable.layouts." - - let struct_item_of_attr attr = - { pstr_desc = Pstr_attribute attr; pstr_loc = Location.none } - - let struct_item_to_attr item = - match item with - | { pstr_desc = Pstr_attribute attr; _ } -> Some attr - | _ -> None - - let struct_item_of_type ty = - { pstr_desc = - Pstr_type - (Recursive, [Ast_helper.Type.mk ~manifest:ty (Location.mknoloc "t")]); - pstr_loc = Location.none - } - - let struct_item_to_type item = - match item with - | { pstr_desc = Pstr_type (Recursive, [decl]); _ } -> decl.ptype_manifest - | _ -> None - - let struct_item_of_list name list loc = - struct_item_of_attr - { attr_name = Location.mknoloc (prefix ^ name); - attr_payload = PStr list; - attr_loc = loc - } - - let struct_item_to_list item = - let strip_prefix s = - let prefix_len = String.length prefix in - String.sub s prefix_len (String.length s - prefix_len) - in - match item with - | { pstr_desc = - Pstr_attribute - { attr_name = name; attr_payload = PStr list; attr_loc = loc }; - _ - } - when String.starts_with ~prefix name.txt -> - Some (strip_prefix name.txt, list, loc) - | _ -> None - - let rec to_structure_item t_loc = - let to_structure_item t = to_structure_item (Location.mknoloc t) in - match t_loc.txt with - | Default -> struct_item_of_list "default" [] t_loc.loc - | Abbreviation c -> - struct_item_of_list "abbrev" [Const.to_structure_item c] t_loc.loc - | Mod (t, modes) -> - let mode_list_item = - struct_item_of_attr - { attr_name = Location.mknoloc (prefix ^ "mod"); - attr_payload = Mode.list_as_payload modes; - attr_loc = Location.none - } - in - struct_item_of_list "mod" [to_structure_item t; mode_list_item] t_loc.loc - | With (t, ty) -> - struct_item_of_list "with" - [to_structure_item t; struct_item_of_type ty] - t_loc.loc - | Kind_of ty -> - struct_item_of_list "kind_of" [struct_item_of_type ty] t_loc.loc - | Product ts -> - struct_item_of_list "product" (List.map to_structure_item ts) t_loc.loc - - let rec of_structure_item item = - let bind = Option.bind in - let ret loc v = Some (Location.mkloc v loc) in - match struct_item_to_list item with - | Some ("default", [], loc) -> ret loc Default - | Some ("mod", [item_of_t; item_of_mode_expr], loc) -> - bind (of_structure_item item_of_t) (fun { txt = t } -> - bind (struct_item_to_attr item_of_mode_expr) (fun attr -> - let modes = Mode.list_from_payload ~loc attr.attr_payload in - ret loc (Mod (t, modes)))) - | Some ("with", [item_of_t; item_of_ty], loc) -> - bind (of_structure_item item_of_t) (fun { txt = t } -> - bind (struct_item_to_type item_of_ty) (fun ty -> - ret loc (With (t, ty)))) - | Some ("kind_of", [item_of_ty], loc) -> - bind (struct_item_to_type item_of_ty) (fun ty -> ret loc (Kind_of ty)) - | Some ("abbrev", [item], loc) -> - bind (Const.of_structure_item item) (fun c -> ret loc (Abbreviation c)) - | Some ("product", items, loc) -> - bind (Misc_stdlib.List.map_option of_structure_item items) (fun tls -> - ret loc (Product (List.map (fun tl -> tl.txt) tls))) - | Some _ | None -> None -end - -(** Jkind annotations' encoding as attribute payload, used in both n-ary - functions and jkinds. *) -module Jkind_annotation : sig - include Payload_protocol with type t := Jkind.t - - module Decode : sig - include module type of Decode - - val bound_vars_from_vars_and_payload : - loc:Location.t -> - string Location.loc list -> - payload -> - (string Location.loc * Jkind.annotation option) list - end -end = struct - module Protocol = Make_payload_protocol_of_structure_item_encodable (Jkind) - - (*******************************************************) - (* Conversions with a payload *) - - module Encode = Protocol.Encode - - module Decode = struct - include Protocol.Decode - - module Desugaring_error = struct - type error = - | Wrong_number_of_jkinds of int * Jkind.annotation option list - - let report_error ~loc = function - | Wrong_number_of_jkinds (n, _jkinds) -> - Location.errorf ~loc - "Wrong number of kinds in an kind attribute;@;expecting %i." n - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise ~loc err = raise (Error (loc, err)) - end - - let bound_vars_from_vars_and_payload ~loc var_names payload = - let jkinds = option_list_from_payload ~loc payload in - try List.combine var_names jkinds - with - (* seems silly to check the length in advance when [combine] does *) - | Invalid_argument _ -> - Desugaring_error.raise ~loc - (Wrong_number_of_jkinds (List.length var_names, jkinds)) - end -end - -(** List and array comprehensions *) -module Comprehensions = struct - module Ext = struct - let feature : Feature.t = Language_extension Comprehensions - end - - module Ast_of = Ast_of (Expression) (Ext) - module Of_ast = Of_ast (Ext) - include Ext - - type iterator = - | Range of - { start : expression; - stop : expression; - direction : direction_flag - } - | In of expression - - type clause_binding = - { pattern : pattern; - iterator : iterator; - attributes : attribute list - } - - type clause = - | For of clause_binding list - | When of expression - - type comprehension = - { body : expression; - clauses : clause list - } - - type expression = - | Cexp_list_comprehension of comprehension - | Cexp_array_comprehension of mutable_flag * comprehension - - (* The desugared-to-OCaml version of comprehensions is described by the - following BNF, where [{% '...' | expr %}] refers to the result of - [Expression.make_jane_syntax] (via [comprehension_expr]) as described at - the top of [jane_syntax_parsing.mli]. - - {v - comprehension ::= - | {% 'comprehension.list' | '[' clauses ']' %} - | {% 'comprehension.array' | '[|' clauses '|]' %} - - clauses ::= - | {% 'comprehension.for' | 'let' iterator+ 'in' clauses %} - | {% 'comprehension.when' | expr ';' clauses %} - | {% 'comprehension.body' | expr %} - - iterator ::= - | pattern '=' {% 'comprehension.for.range.upto' | expr ',' expr %} - | pattern '=' {% 'comprehension.for.range.downto' | expr ',' expr %} - | pattern '=' {% 'comprehension.for.in' | expr %} - v} - *) - - (** First, we define how to go from the nice AST to the OCaml AST; this is - the [expr_of_...] family of expressions, culminating in - [expr_of_comprehension_expr]. *) - - let expr_of_iterator = function - | Range { start; stop; direction } -> - Ast_of.wrap_jane_syntax - [ "for"; - "range"; - (match direction with Upto -> "upto" | Downto -> "downto") ] - (Ast_helper.Exp.tuple [None, start; None, stop]) - | In seq -> Ast_of.wrap_jane_syntax ["for"; "in"] seq - - let expr_of_clause_binding { pattern; iterator; attributes } = - Ast_helper.Vb.mk ~attrs:attributes pattern (expr_of_iterator iterator) - - let expr_of_clause clause rest = - match clause with - | For iterators -> - Ast_of.wrap_jane_syntax ["for"] - (Ast_helper.Exp.let_ Nonrecursive - (List.map expr_of_clause_binding iterators) - rest) - | When cond -> - Ast_of.wrap_jane_syntax ["when"] (Ast_helper.Exp.sequence cond rest) - - let expr_of_comprehension ~type_ { body; clauses } = - (* We elect to wrap the body in a new AST node (here, [Pexp_lazy]) - because it makes it so there is no AST node that can carry multiple Jane - Syntax-related attributes in addition to user-written attributes. This - choice simplifies the definition of [comprehension_expr_of_expr], as - part of its contract is threading through the user-written attributes - on the outermost node. - *) - Ast_of.wrap_jane_syntax type_ - (Ast_helper.Exp.lazy_ - (List.fold_right expr_of_clause clauses - (Ast_of.wrap_jane_syntax ["body"] body))) - - let expr_of ~loc cexpr = - (* See Note [Wrapping with make_entire_jane_syntax] *) - Expression.make_entire_jane_syntax ~loc feature (fun () -> - match cexpr with - | Cexp_list_comprehension comp -> - expr_of_comprehension ~type_:["list"] comp - | Cexp_array_comprehension (amut, comp) -> - expr_of_comprehension - ~type_: - [ "array"; - (match amut with - | Mutable -> "mutable" - | Immutable -> "immutable") ] - comp) - - (** Then, we define how to go from the OCaml AST to the nice AST; this is - the [..._of_expr] family of expressions, culminating in - [comprehension_expr_of_expr]. *) - - module Desugaring_error = struct - type error = - | Has_payload of payload - | Bad_comprehension_embedding of string list - | No_clauses - - let report_error ~loc = function - | Has_payload payload -> - Location.errorf ~loc - "Comprehensions attribute has an unexpected payload:@;%a" - (Printast.payload 0) payload - | Bad_comprehension_embedding subparts -> - Location.errorf ~loc - "Unknown, unexpected, or malformed@ comprehension embedded term %a" - Embedded_name.pp_quoted_name - (Embedded_name.of_feature feature subparts) - | No_clauses -> - Location.errorf ~loc "Tried to desugar a comprehension with no clauses" - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise expr err = raise (Error (expr.pexp_loc, err)) - end - - (* Returns the expression node with the outermost Jane Syntax-related - attribute removed. *) - let expand_comprehension_extension_expr expr = - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc:expr.pexp_loc - expr.pexp_attributes - in - match payload with - | PStr [] -> names, { expr with pexp_attributes = attributes } - | _ -> Desugaring_error.raise expr (Has_payload payload) - - let iterator_of_expr expr = - match expand_comprehension_extension_expr expr with - | ( ["for"; "range"; "upto"], - { pexp_desc = Pexp_tuple [(None, start); (None, stop)]; _ } ) -> - Range { start; stop; direction = Upto } - | ( ["for"; "range"; "downto"], - { pexp_desc = Pexp_tuple [(None, start); (None, stop)]; _ } ) -> - Range { start; stop; direction = Downto } - | ["for"; "in"], seq -> In seq - | bad, _ -> Desugaring_error.raise expr (Bad_comprehension_embedding bad) - - let clause_binding_of_vb { pvb_pat; pvb_expr; pvb_attributes; pvb_loc = _ } = - { pattern = pvb_pat; - iterator = iterator_of_expr pvb_expr; - attributes = pvb_attributes - } - - let add_clause clause comp = { comp with clauses = clause :: comp.clauses } - - let comprehension_of_expr = - let rec raw_comprehension_of_expr expr = - match expand_comprehension_extension_expr expr with - | ["for"], { pexp_desc = Pexp_let (Nonrecursive, iterators, rest); _ } -> - add_clause - (For (List.map clause_binding_of_vb iterators)) - (raw_comprehension_of_expr rest) - | ["when"], { pexp_desc = Pexp_sequence (cond, rest); _ } -> - add_clause (When cond) (raw_comprehension_of_expr rest) - | ["body"], body -> { body; clauses = [] } - | bad, _ -> Desugaring_error.raise expr (Bad_comprehension_embedding bad) - in - fun expr -> - match raw_comprehension_of_expr expr with - | { body = _; clauses = [] } -> Desugaring_error.raise expr No_clauses - | comp -> comp - - (* Returns remaining unconsumed attributes on outermost expression *) - let comprehension_expr_of_expr expr = - let name, wrapper = expand_comprehension_extension_expr expr in - let comp = - match name, wrapper.pexp_desc with - | ["list"], Pexp_lazy comp -> - Cexp_list_comprehension (comprehension_of_expr comp) - | ["array"; "mutable"], Pexp_lazy comp -> - Cexp_array_comprehension (Mutable, comprehension_of_expr comp) - | ["array"; "immutable"], Pexp_lazy comp -> - (* assert_extension_enabled: - See Note [Check for immutable extension in comprehensions code] *) - assert_extension_enabled ~loc:expr.pexp_loc Immutable_arrays (); - Cexp_array_comprehension (Immutable, comprehension_of_expr comp) - | bad, _ -> Desugaring_error.raise expr (Bad_comprehension_embedding bad) - in - comp, wrapper.pexp_attributes -end - -(** Immutable arrays *) -module Immutable_arrays = struct - type nonrec expression = Iaexp_immutable_array of expression list - - type nonrec pattern = Iapat_immutable_array of pattern list - - let feature : Feature.t = Language_extension Immutable_arrays - - let expr_of ~loc = function - | Iaexp_immutable_array elts -> - (* See Note [Wrapping with make_entire_jane_syntax] *) - Expression.make_entire_jane_syntax ~loc feature (fun () -> - Ast_helper.Exp.array elts) - - (* Returns remaining unconsumed attributes *) - let of_expr expr = - match expr.pexp_desc with - | Pexp_array elts -> Iaexp_immutable_array elts, expr.pexp_attributes - | _ -> failwith "Malformed immutable array expression" - - let pat_of ~loc = function - | Iapat_immutable_array elts -> - (* See Note [Wrapping with make_entire_jane_syntax] *) - Pattern.make_entire_jane_syntax ~loc feature (fun () -> - Ast_helper.Pat.array elts) - - (* Returns remaining unconsumed attributes *) - let of_pat pat = - match pat.ppat_desc with - | Ppat_array elts -> Iapat_immutable_array elts, pat.ppat_attributes - | _ -> failwith "Malformed immutable array pattern" -end - -(** Module strengthening *) -module Strengthen = struct - type nonrec module_type = - { mty : Parsetree.module_type; - mod_id : Longident.t Location.loc - } - - let feature : Feature.t = Language_extension Module_strengthening - - (* Encoding: [S with M] becomes [functor (_ : S) -> (module M)], where - the [(module M)] is a [Pmty_alias]. This isn't syntax we can write, but - [(module M)] can be the inferred type for [M], so this should be fine. *) - - let mty_of ~loc { mty; mod_id } = - (* See Note [Wrapping with make_entire_jane_syntax] *) - Module_type.make_entire_jane_syntax ~loc feature (fun () -> - Ast_helper.Mty.functor_ - (Named (Location.mknoloc None, mty)) - (Ast_helper.Mty.alias mod_id)) - - (* Returns remaining unconsumed attributes *) - let of_mty mty = - match mty.pmty_desc with - | Pmty_functor (Named (_, mty), { pmty_desc = Pmty_alias mod_id }) -> - { mty; mod_id }, mty.pmty_attributes - | _ -> failwith "Malformed strengthened module type" -end - -(** Layouts *) -module Layouts = struct - module Ext = struct - let feature : Feature.t = Language_extension Layouts - end - - include Ext - module Of_ast = Of_ast (Ext) - - type constant = - | Float of string * char option - | Integer of string * char - - type nonrec expression = - | Lexp_constant of constant - | Lexp_newtype of string loc * Jkind.annotation * expression - - type nonrec pattern = Lpat_constant of constant - - type nonrec core_type = - | Ltyp_var of - { name : string option; - jkind : Jkind.annotation - } - | Ltyp_poly of - { bound_vars : (string loc * Jkind.annotation option) list; - inner_type : core_type - } - | Ltyp_alias of - { aliased_type : core_type; - name : string loc option; - jkind : Jkind.annotation - } - - type nonrec extension_constructor = - | Lext_decl of - (string Location.loc * Jkind.annotation option) list - * constructor_arguments - * Parsetree.core_type option - - type signature_item = - | Lsig_kind_abbrev of string Location.loc * Jkind.annotation - - type structure_item = - | Lstr_kind_abbrev of string Location.loc * Jkind.annotation - - (*******************************************************) - (* Errors *) - - module Desugaring_error = struct - type error = - | Unexpected_wrapped_type of Parsetree.core_type - | Unexpected_wrapped_ext of Parsetree.extension_constructor - | Unexpected_attribute of string list - | No_integer_suffix - | Unexpected_constant of Parsetree.constant - | Unexpected_wrapped_expr of Parsetree.expression - | Unexpected_wrapped_pat of Parsetree.pattern - - (* Most things here are unprintable because we can't reference any - [Printast] functions that aren't exposed by the upstream compiler, as we - want this file to be compatible with the upstream compiler; see Note - [Buildable with upstream] in jane_syntax.mli for details. *) - let report_error ~loc = function - | Unexpected_wrapped_type _typ -> - Location.errorf ~loc "Layout attribute on wrong core type" - | Unexpected_wrapped_ext _ext -> - Location.errorf ~loc "Layout attribute on wrong extension constructor" - | Unexpected_attribute names -> - Location.errorf ~loc - "Layout extension does not understand these attribute names:@;[%a]" - (Format.pp_print_list - ~pp_sep:(fun ppf () -> Format.fprintf ppf ";@ ") - Format.pp_print_text) - names - | No_integer_suffix -> - Location.errorf ~loc - "All unboxed integers require a suffix to determine their size." - | Unexpected_constant _c -> - Location.errorf ~loc "Unexpected unboxed constant" - | Unexpected_wrapped_expr expr -> - Location.errorf ~loc "Layout attribute on wrong expression:@;%a" - (Printast.expression 0) expr - | Unexpected_wrapped_pat _pat -> - Location.errorf ~loc "Layout attribute on wrong pattern" - - exception Error of Location.t * error - - let () = - Location.register_error_of_exn (function - | Error (loc, err) -> Some (report_error ~loc err) - | _ -> None) - - let raise ~loc err = raise (Error (loc, err)) - end - - module Encode = Jkind_annotation.Encode - module Decode = Jkind_annotation.Decode - - (*******************************************************) - (* Constants *) - - let constant_of = function - | Float (x, suffix) -> Pconst_float (x, suffix) - | Integer (x, suffix) -> Pconst_integer (x, Some suffix) - - let of_constant ~loc = function - | Pconst_float (x, suffix) -> Float (x, suffix) - | Pconst_integer (x, Some suffix) -> Integer (x, suffix) - | Pconst_integer (_, None) -> Desugaring_error.raise ~loc No_integer_suffix - | const -> Desugaring_error.raise ~loc (Unexpected_constant const) - - (*******************************************************) - (* Encoding expressions *) - - let expr_of ~loc expr = - let module Ast_of = Ast_of (Expression) (Ext) in - (* See Note [Wrapping with make_entire_jane_syntax] *) - Expression.make_entire_jane_syntax ~loc feature (fun () -> - match expr with - | Lexp_constant c -> - let constant = constant_of c in - Ast_of.wrap_jane_syntax ["unboxed"] - @@ Ast_helper.Exp.constant constant - | Lexp_newtype (name, jkind, inner_expr) -> - let payload = Encode.as_payload jkind in - Ast_of.wrap_jane_syntax ["newtype"] ~payload - @@ Ast_helper.Exp.newtype name inner_expr) - - (*******************************************************) - (* Desugaring expressions *) - - let of_expr expr = - let loc = expr.pexp_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc expr.pexp_attributes - in - let lexpr = - match names with - | ["unboxed"] -> ( - match expr.pexp_desc with - | Pexp_constant const -> Lexp_constant (of_constant ~loc const) - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_expr expr)) - | ["newtype"] -> ( - let jkind = Decode.from_payload ~loc payload in - match expr.pexp_desc with - | Pexp_newtype (name, inner_expr) -> - Lexp_newtype (name, jkind, inner_expr) - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_expr expr)) - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - lexpr, attributes - - (*******************************************************) - (* Encoding patterns *) - - let pat_of ~loc t = - Pattern.make_entire_jane_syntax ~loc feature (fun () -> - match t with - | Lpat_constant c -> - let constant = constant_of c in - Ast_helper.Pat.constant constant) - - (*******************************************************) - (* Desugaring patterns *) - - let of_pat pat = - let loc = pat.ppat_loc in - let lpat = - match pat.ppat_desc with - | Ppat_constant const -> Lpat_constant (of_constant ~loc const) - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_pat pat) - in - lpat, pat.ppat_attributes - - (*******************************************************) - (* Encoding types *) - - module Type_of = Ast_of (Core_type) (Ext) - - let type_of ~loc typ = - let exception No_wrap_necessary of Parsetree.core_type in - try - (* See Note [Wrapping with make_entire_jane_syntax] *) - Core_type.make_entire_jane_syntax ~loc feature (fun () -> - match typ with - | Ltyp_var { name; jkind } -> ( - let payload = Encode.as_payload jkind in - Type_of.wrap_jane_syntax ["var"] ~payload - @@ - match name with - | None -> Ast_helper.Typ.any ~loc () - | Some name -> Ast_helper.Typ.var ~loc name) - | Ltyp_poly { bound_vars; inner_type } -> - let var_names, jkinds = List.split bound_vars in - (* Pass the loc because we don't want a ghost location here *) - let tpoly = Ast_helper.Typ.poly ~loc var_names inner_type in - if List.for_all Option.is_none jkinds - then raise (No_wrap_necessary tpoly) - else - let payload = Encode.option_list_as_payload jkinds in - Type_of.wrap_jane_syntax ["poly"] ~payload tpoly - | Ltyp_alias { aliased_type; name; jkind } -> - let payload = Encode.as_payload jkind in - let has_name, inner_typ = - match name with - | None -> "anon", aliased_type - | Some name -> "named", Ast_helper.Typ.alias aliased_type name - in - Type_of.wrap_jane_syntax ["alias"; has_name] ~payload inner_typ) - with No_wrap_necessary result_type -> result_type - - (*******************************************************) - (* Desugaring types *) - - let of_type typ = - let loc = typ.ptyp_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc typ.ptyp_attributes - in - let lty = - match names with - | ["var"] -> ( - let jkind = Decode.from_payload ~loc payload in - match typ.ptyp_desc with - | Ptyp_any -> Ltyp_var { name = None; jkind } - | Ptyp_var name -> Ltyp_var { name = Some name; jkind } - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_type typ)) - | ["poly"] -> ( - match typ.ptyp_desc with - | Ptyp_poly (var_names, inner_type) -> - let bound_vars = - Decode.bound_vars_from_vars_and_payload ~loc var_names payload - in - Ltyp_poly { bound_vars; inner_type } - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_type typ)) - | ["alias"; "anon"] -> - let jkind = Decode.from_payload ~loc payload in - Ltyp_alias - { aliased_type = { typ with ptyp_attributes = attributes }; - name = None; - jkind - } - | ["alias"; "named"] -> ( - let jkind = Decode.from_payload ~loc payload in - match typ.ptyp_desc with - | Ptyp_alias (inner_typ, name) -> - Ltyp_alias { aliased_type = inner_typ; name = Some name; jkind } - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_type typ)) - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - lty, attributes - - (*******************************************************) - (* Encoding extension constructor *) - - module Ext_ctor_of = Ast_of (Extension_constructor) (Ext) - - let extension_constructor_of ~loc ~name ?info ?docs ext = - (* using optional parameters to hook into existing defaulting - in [Ast_helper.Te.decl], which seems unwise to duplicate *) - let exception No_wrap_necessary of Parsetree.extension_constructor in - try - (* See Note [Wrapping with make_entire_jane_syntax] *) - Extension_constructor.make_entire_jane_syntax ~loc feature (fun () -> - match ext with - | Lext_decl (bound_vars, args, res) -> - let vars, jkinds = List.split bound_vars in - let ext_ctor = - (* Pass ~loc here, because the constructor declaration is - not a ghost *) - Ast_helper.Te.decl ~loc ~vars ~args ?info ?docs ?res name - in - if List.for_all Option.is_none jkinds - then raise (No_wrap_necessary ext_ctor) - else - let payload = Encode.option_list_as_payload jkinds in - Ext_ctor_of.wrap_jane_syntax ["ext"] ~payload ext_ctor) - with No_wrap_necessary ext_ctor -> ext_ctor - - (*******************************************************) - (* Desugaring extension constructor *) - - let of_extension_constructor ext = - let loc = ext.pext_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc ext.pext_attributes - in - let lext = - match names with - | ["ext"] -> ( - match ext.pext_kind with - | Pext_decl (var_names, args, res) -> - let bound_vars = - Decode.bound_vars_from_vars_and_payload ~loc var_names payload - in - Lext_decl (bound_vars, args, res) - | _ -> Desugaring_error.raise ~loc (Unexpected_wrapped_ext ext)) - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - lext, attributes - - (*********************************************************) - (* Constructing a [constructor_declaration] with jkinds *) - - module Ctor_decl_of = Ast_of (Constructor_declaration) (Ext) - - let constructor_declaration_of ~loc ~attrs ~info ~vars_jkinds ~args ~res name - = - let vars, jkinds = List.split vars_jkinds in - let ctor_decl = - Ast_helper.Type.constructor ~loc ~info ~vars ~args ?res name - in - let ctor_decl = - if List.for_all Option.is_none jkinds - then ctor_decl - else - let payload = Encode.option_list_as_payload jkinds in - Constructor_declaration.make_entire_jane_syntax ~loc feature (fun () -> - Ctor_decl_of.wrap_jane_syntax ["vars"] ~payload ctor_decl) - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> ctor_decl - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { ctor_decl with pcd_attributes = ctor_decl.pcd_attributes @ attrs } - - let of_constructor_declaration_internal (feat : Feature.t) ctor_decl = - match feat with - | Language_extension Layouts -> - let loc = ctor_decl.pcd_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc ctor_decl.pcd_attributes - in - let vars_jkinds = - match names with - | ["vars"] -> - Decode.bound_vars_from_vars_and_payload ~loc ctor_decl.pcd_vars - payload - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - Some (vars_jkinds, attributes) - | _ -> None - - let of_constructor_declaration = - Constructor_declaration.make_of_ast - ~of_ast_internal:of_constructor_declaration_internal - - (*********************************************************) - (* Constructing a [type_declaration] with jkinds *) - - module Type_decl_of = Ast_of (Type_declaration) (Ext) - - let type_declaration_of ~loc ~attrs ~docs ~text ~params ~cstrs ~kind ~priv - ~manifest ~jkind name = - let type_decl = - Ast_helper.Type.mk ~loc ~docs ?text ~params ~cstrs ~kind ~priv ?manifest - name - in - let type_decl = - match jkind with - | None -> type_decl - | Some jkind -> - Type_declaration.make_entire_jane_syntax ~loc feature (fun () -> - let payload = Encode.as_payload jkind in - Type_decl_of.wrap_jane_syntax ["annot"] ~payload type_decl) - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> type_decl - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { type_decl with ptype_attributes = type_decl.ptype_attributes @ attrs } - - let of_type_declaration_internal (feat : Feature.t) type_decl = - match feat with - | Language_extension Layouts -> - let loc = type_decl.ptype_loc in - let names, payload, attributes = - Of_ast.unwrap_jane_syntax_attributes_exn ~loc type_decl.ptype_attributes - in - let jkind_annot = - match names with - | ["annot"] -> Decode.from_payload ~loc payload - | _ -> Desugaring_error.raise ~loc (Unexpected_attribute names) - in - Some (jkind_annot, attributes) - | _ -> None - - let of_type_declaration = - Type_declaration.make_of_ast ~of_ast_internal:of_type_declaration_internal - - (*********************************************************) - (* Constructing a [signature_item] for kind_abbrev *) - - let attr_name_of { txt = name; loc } = - let embed = Embedded_name.of_feature feature ["kind_abbrev"; name] in - Location.mkloc (Embedded_name.to_string embed) loc - - let of_attr_name { txt = attr_name; loc } = - let name = - match Embedded_name.of_string attr_name with - | Some (Ok embed) -> ( - match Embedded_name.components embed with - | _ :: ["kind_abbrev"; name] -> name - | _ -> failwith "Malformed [kind_abbrev] attribute") - | None | Some (Error _) -> failwith "Malformed [kind_abbrev] attribute" - in - Location.mkloc name loc - - let sig_item_of ~loc = function - | Lsig_kind_abbrev (name, jkind) -> - (* See Note [Wrapping with make_entire_jane_syntax] *) - Signature_item.make_entire_jane_syntax ~loc feature (fun () -> - let payload = Encode.as_payload jkind in - Ast_helper.Sig.attribute - (Ast_helper.Attr.mk (attr_name_of name) payload)) - - let of_sig_item sigi = - match sigi.psig_desc with - | Psig_attribute { attr_name; attr_payload; _ } -> - Lsig_kind_abbrev - ( of_attr_name attr_name, - Decode.from_payload ~loc:sigi.psig_loc attr_payload ) - | _ -> failwith "Malformed [kind_abbrev] in signature" - - let str_item_of ~loc = function - | Lstr_kind_abbrev (name, jkind) -> - (* See Note [Wrapping with make_entire_jane_syntax] *) - Structure_item.make_entire_jane_syntax ~loc feature (fun () -> - let payload = Encode.as_payload jkind in - Ast_helper.Str.attribute - (Ast_helper.Attr.mk (attr_name_of name) payload)) - - let of_str_item stri = - match stri.pstr_desc with - | Pstr_attribute { attr_name; attr_payload; _ } -> - Lstr_kind_abbrev - ( of_attr_name attr_name, - Decode.from_payload ~loc:stri.pstr_loc attr_payload ) - | _ -> failwith "Malformed [kind_abbrev] in structure" -end - -type jane_constant = - | Value of constant - | Unboxed of Layouts.constant - -module Instances = struct - type instance = - { head : string; - args : (string * instance) list - } - - type module_expr = Imod_instance of instance - - let feature : Feature.t = Language_extension Instances - - let module_expr_of_string ~loc str = - Ast_helper.Mod.ident ~loc { txt = Lident str; loc } - - let rec module_expr_of_instance ~loc { head; args } = - let head = module_expr_of_string ~loc head in - match args with - | [] -> head - | _ -> - let args = - List.concat_map - (fun (param, value) -> - let param = module_expr_of_string ~loc param in - let value = module_expr_of_instance ~loc value in - [param; value]) - args - in - List.fold_left (Ast_helper.Mod.apply ~loc) head args - - let module_expr_of ~loc = function - | Imod_instance instance -> - Module_expr.make_entire_jane_syntax ~loc feature (fun () -> - module_expr_of_instance ~loc instance) - - let head_of_ident (lid : Longident.t Location.loc) = - match lid with - | { txt = Lident s; loc = _ } -> s - | _ -> failwith "Malformed instance identifier" - - let gather_args mexpr = - let rec loop mexpr rev_acc = - match mexpr.pmod_desc with - | Pmod_apply (f, v) -> ( - match f.pmod_desc with - | Pmod_apply (f, n) -> loop f ((n, v) :: rev_acc) - | _ -> failwith "Malformed instance identifier") - | head -> head, List.rev rev_acc - in - loop mexpr [] - - let string_of_module_expr mexpr = - match mexpr.pmod_desc with - | Pmod_ident i -> head_of_ident i - | _ -> failwith "Malformed instance identifier" - - let rec instance_of_module_expr mexpr = - match gather_args mexpr with - | Pmod_ident i, args -> - let head = head_of_ident i in - let args = List.map instances_of_arg_pair args in - { head; args } - | _ -> failwith "Malformed instance identifier" - - and instances_of_arg_pair (n, v) = - string_of_module_expr n, instance_of_module_expr v - - let of_module_expr mexpr = Imod_instance (instance_of_module_expr mexpr) -end - -(******************************************************************************) -(** The interface to our novel syntax, which we export *) - -module type AST = sig - type t - - type ast - - val of_ast : ast -> t option -end - -module Core_type = struct - type t = Jtyp_layout of Layouts.core_type - - let of_ast_internal (feat : Feature.t) typ = - match feat with - | Language_extension Layouts -> - let typ, attrs = Layouts.of_type typ in - Some (Jtyp_layout typ, attrs) - | _ -> None - - let of_ast = Core_type.make_of_ast ~of_ast_internal - - let core_type_of ~loc ~attrs t = - let core_type = match t with Jtyp_layout x -> Layouts.type_of ~loc x in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> core_type - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { core_type with ptyp_attributes = core_type.ptyp_attributes @ attrs } -end - -module Constructor_argument = struct - type t = | - - let of_ast_internal (feat : Feature.t) _carg = match feat with _ -> None - - let of_ast = Constructor_argument.make_of_ast ~of_ast_internal -end - -module Expression = struct - type t = - | Jexp_comprehension of Comprehensions.expression - | Jexp_immutable_array of Immutable_arrays.expression - | Jexp_layout of Layouts.expression - - let of_ast_internal (feat : Feature.t) expr = - match feat with - | Language_extension Comprehensions -> - let expr, attrs = Comprehensions.comprehension_expr_of_expr expr in - Some (Jexp_comprehension expr, attrs) - | Language_extension Immutable_arrays -> - let expr, attrs = Immutable_arrays.of_expr expr in - Some (Jexp_immutable_array expr, attrs) - | Language_extension Layouts -> - let expr, attrs = Layouts.of_expr expr in - Some (Jexp_layout expr, attrs) - | _ -> None - - let of_ast = Expression.make_of_ast ~of_ast_internal - - let expr_of ~loc ~attrs t = - let expr = - match t with - | Jexp_comprehension x -> Comprehensions.expr_of ~loc x - | Jexp_immutable_array x -> Immutable_arrays.expr_of ~loc x - | Jexp_layout x -> Layouts.expr_of ~loc x - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> expr - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { expr with pexp_attributes = expr.pexp_attributes @ attrs } -end - -module Pattern = struct - type t = - | Jpat_immutable_array of Immutable_arrays.pattern - | Jpat_layout of Layouts.pattern - - let of_ast_internal (feat : Feature.t) pat = - match feat with - | Language_extension Immutable_arrays -> - let expr, attrs = Immutable_arrays.of_pat pat in - Some (Jpat_immutable_array expr, attrs) - | Language_extension Layouts -> - let pat, attrs = Layouts.of_pat pat in - Some (Jpat_layout pat, attrs) - | _ -> None - - let of_ast = Pattern.make_of_ast ~of_ast_internal - - let pat_of ~loc ~attrs t = - let pat = - match t with - | Jpat_immutable_array x -> Immutable_arrays.pat_of ~loc x - | Jpat_layout x -> Layouts.pat_of ~loc x - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> pat - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { pat with ppat_attributes = pat.ppat_attributes @ attrs } -end - -module Module_type = struct - type t = Jmty_strengthen of Strengthen.module_type - - let of_ast_internal (feat : Feature.t) mty = - match feat with - | Language_extension Module_strengthening -> - let mty, attrs = Strengthen.of_mty mty in - Some (Jmty_strengthen mty, attrs) - | _ -> None - - let of_ast = Module_type.make_of_ast ~of_ast_internal - - let mty_of ~loc ~attrs t = - let mty = match t with Jmty_strengthen x -> Strengthen.mty_of ~loc x in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> mty - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { mty with pmty_attributes = mty.pmty_attributes @ attrs } -end - -module Module_expr = struct - type t = Emod_instance of Instances.module_expr - - let of_ast_internal (feat : Feature.t) sigi = - match feat with - | Language_extension Instances -> - Some (Emod_instance (Instances.of_module_expr sigi)) - | _ -> None - - let of_ast = Module_expr.make_of_ast ~of_ast_internal -end - -module Signature_item = struct - type t = Jsig_layout of Layouts.signature_item - - let of_ast_internal (feat : Feature.t) sigi = - match feat with - | Language_extension Layouts -> - Some (Jsig_layout (Layouts.of_sig_item sigi)) - | _ -> None - - let of_ast = Signature_item.make_of_ast ~of_ast_internal -end - -module Structure_item = struct - type t = Jstr_layout of Layouts.structure_item - - let of_ast_internal (feat : Feature.t) stri = - match feat with - | Language_extension Layouts -> - Some (Jstr_layout (Layouts.of_str_item stri)) - | _ -> None - - let of_ast = Structure_item.make_of_ast ~of_ast_internal -end - -module Extension_constructor = struct - type t = Jext_layout of Layouts.extension_constructor - - let of_ast_internal (feat : Feature.t) ext = - match feat with - | Language_extension Layouts -> - let ext, attrs = Layouts.of_extension_constructor ext in - Some (Jext_layout ext, attrs) - | _ -> None - - let of_ast = Extension_constructor.make_of_ast ~of_ast_internal - - let extension_constructor_of ~loc ~name ~attrs ?info ?docs t = - let ext_ctor = - match t with - | Jext_layout lext -> - Layouts.extension_constructor_of ~loc ~name ?info ?docs lext - in - (* Performance hack: save an allocation if [attrs] is empty. *) - match attrs with - | [] -> ext_ctor - | _ :: _ as attrs -> - (* See Note [Outer attributes at end] *) - { ext_ctor with pext_attributes = ext_ctor.pext_attributes @ attrs } -end diff --git a/src/ocaml/parsing/jane_syntax.mli b/src/ocaml/parsing/jane_syntax.mli deleted file mode 100644 index cb839de96..000000000 --- a/src/ocaml/parsing/jane_syntax.mli +++ /dev/null @@ -1,478 +0,0 @@ -(** Syntax for Jane Street's novel syntactic features. This module provides - three things: - - 1. First-class ASTs for all syntax introduced by our language extensions, - plus one for built-in features; these are split out into a different - module each ([Comprehensions], etc.). - - 2. A first-class AST for each OCaml AST, unifying all our novel syntactic - features in modules named after the syntactic category - ([Expression.t], etc.). - - 3. A way to interpret these values as terms of the coresponding OCaml ASTs, - and to match on terms of those OCaml ASTs to see if they're terms from - our novel syntax. - - We keep our novel syntax separate so that we can avoid having to modify the - existing AST, as this would break compatibility with every existing ppx and - other such tooling. - - For details on the rationale behind this approach (and for some of the gory - details), see [Jane_syntax_parsing]. *) - -(******************************************************************************) - -(* Note [Buildable with upstream] - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - We want to make sure that the various [Jane_*] modules, along with - [Language_extension_kernel] and a small stub for [Language_extension], are - buildable with the upstream compiler and compiler-libs. This allows us to - import these files into compatibility libraries such as - {{:https://github.com/janestreet/ppxlib_jane}ppxlib_jane}. We have CI tests - which ensure that this property is maintained. - - It is possible that at some point we'll really need to depend on new - functionality we provide elsewhere in the compiler; at that point, we can - look into providing stub implementations of these modules for use with the - upstream compiler instead. For now, though, this is sufficient. -*) - -(*********************************************) -(* Individual features *) - -(** The ASTs for list and array comprehensions *) -module Comprehensions : sig - type iterator = - | Range of - { start : Parsetree.expression; - stop : Parsetree.expression; - direction : Asttypes.direction_flag - } - (** "= START to STOP" (direction = Upto) - "= START downto STOP" (direction = Downto) *) - | In of Parsetree.expression (** "in EXPR" *) - - (* In [Typedtree], the [pattern] moves into the [iterator]. *) - - (** [@...] PAT (in/=) ... *) - type clause_binding = - { pattern : Parsetree.pattern; - iterator : iterator; - attributes : Parsetree.attribute list - } - - type clause = - | For of clause_binding list - (** "for PAT (in/=) ... and PAT (in/=) ... and ..."; must be nonempty *) - | When of Parsetree.expression (** "when EXPR" *) - - type comprehension = - { body : Parsetree.expression; - (** The body/generator of the comprehension *) - clauses : clause list - (** The clauses of the comprehension; must be nonempty *) - } - - type expression = - | Cexp_list_comprehension of comprehension (** [BODY ...CLAUSES...] *) - | Cexp_array_comprehension of Asttypes.mutable_flag * comprehension - (** [|BODY ...CLAUSES...|] (flag = Mutable) - [:BODY ...CLAUSES...:] (flag = Immutable) - (only allowed with [-extension immutable_arrays]) *) - - val expr_of : loc:Location.t -> expression -> Parsetree.expression -end - -(** The ASTs for immutable arrays. When we merge this upstream, we'll merge - these into the existing [P{exp,pat}_array] constructors by adding a - [mutable_flag] argument (just as we did with [T{exp,pat}_array]). *) -module Immutable_arrays : sig - type expression = - | Iaexp_immutable_array of Parsetree.expression list - (** [: E1; ...; En :] *) - - type pattern = - | Iapat_immutable_array of Parsetree.pattern list (** [: P1; ...; Pn :] **) - - val expr_of : loc:Location.t -> expression -> Parsetree.expression - - val pat_of : loc:Location.t -> pattern -> Parsetree.pattern -end - -(** The attribute placed on the inner [Ptyp_arrow] node in [x -> (y -> z)] - (meaning the [y -> z] node) to indicate parenthesization. This is relevant - for locals, as [local_ x -> (y -> z)] is different than - [local_ x -> y -> z]. -*) -module Arrow_curry : sig - val curry_attr_name : string - - val curry_attr : Location.t -> Parsetree.attribute -end - -module Jkind : sig - module Const : sig - (** Constant jkind *) - - (** Represent a user-written kind primitive/abbreviation, - containing a string and its location *) - type t = Parsetree.jkind_const_annotation - - (** Constructs a jkind constant *) - val mk : string -> Location.t -> t - end - - type t = Parsetree.jkind_annotation = - | Default - | Abbreviation of Const.t - | Mod of t * Parsetree.modes - | With of t * Parsetree.core_type - | Kind_of of Parsetree.core_type - | Product of t list - - type annotation = t Location.loc -end - -(** The ASTs for module type strengthening. *) -module Strengthen : sig - type module_type = - { mty : Parsetree.module_type; - mod_id : Longident.t Location.loc - } - - val mty_of : loc:Location.t -> module_type -> Parsetree.module_type -end - -(** The ASTs for jkinds and other unboxed-types features *) -module Layouts : sig - type constant = - | Float of string * char option - | Integer of string * char - - type nonrec expression = - (* examples: [ #2.0 ] or [ #42L ] *) - (* This is represented as an attribute wrapping a [Pexp_constant] node. *) - | Lexp_constant of constant - (* [fun (type a : immediate) -> ...] *) - (* This is represented as an attribute wrapping a [Pexp_newtype] node. *) - | Lexp_newtype of - string Location.loc * Jkind.annotation * Parsetree.expression - - type nonrec pattern = - (* examples: [ #2.0 ] or [ #42L ] *) - (* This is represented as an attribute wrapping a [Ppat_constant] node. *) - | Lpat_constant of constant - - type nonrec core_type = - (* ['a : immediate] or [_ : float64] *) - (* This is represented by an attribute wrapping either a [Ptyp_any] or - a [Ptyp_var] node. *) - | Ltyp_var of - { name : string option; - jkind : Jkind.annotation - } - (* [('a : immediate) 'b 'c ('d : value). 'a -> 'b -> 'c -> 'd] *) - (* This is represented by an attribute wrapping a [Ptyp_poly] node. *) - (* This is used instead of [Ptyp_poly] only where there is at least one - actual jkind annotation. If there is a polytype with no jkind - annotations at all, [Ptyp_poly] is used instead. This saves space in the - parsed representation and guarantees that we don't accidentally try to - require the layouts extension. *) - | Ltyp_poly of - { bound_vars : (string Location.loc * Jkind.annotation option) list; - inner_type : Parsetree.core_type - } - (* [ty as ('a : immediate)] *) - (* This is represented by an attribute wrapping either a [Ptyp_alias] node - or, in the [ty as (_ : jkind)] case, the annotated type itself, with no - intervening [type_desc]. *) - | Ltyp_alias of - { aliased_type : Parsetree.core_type; - name : string Location.loc option; - jkind : Jkind.annotation - } - - type nonrec extension_constructor = - (* [ 'a ('b : immediate) ('c : float64). 'a * 'b * 'c -> exception ] *) - (* This is represented as an attribute on a [Pext_decl] node. *) - (* Like [Ltyp_poly], this is used only when there is at least one jkind - annotation. Otherwise, we will have a [Pext_decl]. *) - | Lext_decl of - (string Location.loc * Jkind.annotation option) list - * Parsetree.constructor_arguments - * Parsetree.core_type option - - type signature_item = - | Lsig_kind_abbrev of string Location.loc * Jkind.annotation - - type structure_item = - | Lstr_kind_abbrev of string Location.loc * Jkind.annotation - - val expr_of : loc:Location.t -> expression -> Parsetree.expression - - val pat_of : loc:Location.t -> pattern -> Parsetree.pattern - - val type_of : loc:Location.t -> core_type -> Parsetree.core_type - - val extension_constructor_of : - loc:Location.t -> - name:string Location.loc -> - ?info:Docstrings.info -> - ?docs:Docstrings.docs -> - extension_constructor -> - Parsetree.extension_constructor - - (** See also [Ast_helper.Type.constructor], which is a direct inspiration for - the interface here. *) - val constructor_declaration_of : - loc:Location.t -> - attrs:Parsetree.attributes -> - info:Docstrings.info -> - vars_jkinds:(string Location.loc * Jkind.annotation option) list -> - args:Parsetree.constructor_arguments -> - res:Parsetree.core_type option -> - string Location.loc -> - Parsetree.constructor_declaration - - (** Extract the jkinds from a [constructor_declaration]; returns leftover - attributes along with the annotated variables. Unlike other pieces - of jane-syntax, users of this function will still have to process - the remaining pieces of the original [constructor_declaration]. *) - val of_constructor_declaration : - Parsetree.constructor_declaration -> - ((string Location.loc * Jkind.annotation option) list - * Parsetree.attributes) - option - - (** See also [Ast_helper.Type.mk], which is a direct inspiration for - the interface here. *) - val type_declaration_of : - loc:Location.t -> - attrs:Parsetree.attributes -> - docs:Docstrings.docs -> - text:Docstrings.text option -> - params: - (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list -> - cstrs:(Parsetree.core_type * Parsetree.core_type * Location.t) list -> - kind:Parsetree.type_kind -> - priv:Asttypes.private_flag -> - manifest:Parsetree.core_type option -> - jkind:Jkind.annotation option -> - string Location.loc -> - Parsetree.type_declaration - - val sig_item_of : loc:Location.t -> signature_item -> Parsetree.signature_item - - val str_item_of : loc:Location.t -> structure_item -> Parsetree.structure_item - - (** Extract the jkind annotation from a [type_declaration]; returns - leftover attributes. Similar to [of_constructor_declaration] in the - sense that users of this function will have to process the remaining - pieces of the original [type_declaration]. - *) - val of_type_declaration : - Parsetree.type_declaration -> - (Jkind.annotation * Parsetree.attributes) option -end - -type jane_constant = - | Value of Parsetree.constant - | Unboxed of Layouts.constant - -module Instances : sig - (** The name of an instance module. Gets converted to [Global.Name.t] in the - flambda-backend compiler. *) - type instance = - { head : string; - args : (string * instance) list - } - - type module_expr = Imod_instance of instance - - val module_expr_of : loc:Location.t -> module_expr -> Parsetree.module_expr -end - -(******************************************) -(* General facility, which we export *) - -(** The module type of our extended ASTs for our novel syntax, instantiated once - for each syntactic category. We tend to call the pattern-matching functions - here with unusual indentation, not indenting the [None] branch further so as - to avoid merge conflicts with upstream. *) -module type AST = sig - (** The AST for all our Jane Street syntax; one constructor per feature that - extends the given syntactic category. Some extensions are handled - separately and thus are not listed here. - - This type will be something like [jane_syntax_ast * Parsetree.attributes] - in cases where the Jane Syntax encoding of the AST uses attributes. In - these cases, the [Parsetree.attributes] are the *rest* of the attributes - after removing Jane Syntax-related attributes. Callers of [of_ast] should - refer to these attributes rather than, for example, [pexp_attributes]. - *) - type t - - (** The corresponding OCaml AST *) - type ast - - (** Given an OCaml AST node, check to see if it corresponds to an embedded - term from our novel syntax. If it does, as long as the feature isn't a - disabled language extension, then return it; if it's not a piece of novel - syntax, return [None]; if it's an embedded term from a disabled language - extension, raise an error. - - AN IMPORTANT NOTE: The design of this function is careful to make merge - conflicts with upstream less likely: we want no edits at all -- not even - indentation -- to surrounding code. This is why we return a [t option], - not some structure that could include the [ast_desc] if there is no - extension. - - Indentation: we *do not change the indentation level* when we match on - this function's result! E.g. from [type_expect_] in [typecore.ml]: - - {[ - match Jane_syntax.Expression.of_ast sexp with - | Some jexp -> - type_expect_jane_syntax - ~loc - ~env - ~expected_mode - ~ty_expected - ~explanation - ~attributes:sexp.pexp_attributes - jexp - | None -> match sexp.pexp_desc with - | Pexp_ident lid -> - let path, mode, desc, kind = type_ident env ~recarg lid in - (* ... *) - | Pexp_constant(Pconst_string (str, _, _) as cst) -> - register_allocation expected_mode; - (* ... *) - | (* ... *) - | Pexp_unreachable -> - re { exp_desc = Texp_unreachable; - exp_loc = loc; exp_extra = []; - exp_type = instance ty_expected; - exp_mode = expected_mode.mode; - exp_attributes = sexp.pexp_attributes; - exp_env = env } - ]} - - Note that we match on the result of this function, forward to - [type_expect_jane_syntax] if we get something, and otherwise do the real - match on [sexp.pexp_desc] *without going up an indentation level*. This - is important to reduce the number of merge conflicts. *) - val of_ast : ast -> t option -end - -(******************************************) -(* Individual syntactic categories *) - -(** Novel syntax in types *) -module Core_type : sig - type t = Jtyp_layout of Layouts.core_type - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.core_type - - val core_type_of : - loc:Location.t -> attrs:Parsetree.attributes -> t -> Parsetree.core_type -end - -(** Novel syntax in constructor arguments; this isn't a core AST type, - but captures where [global_] lives *) -module Constructor_argument : sig - type t = | - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.core_type -end - -(** Novel syntax in expressions *) -module Expression : sig - type t = - | Jexp_comprehension of Comprehensions.expression - | Jexp_immutable_array of Immutable_arrays.expression - | Jexp_layout of Layouts.expression - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.expression - - val expr_of : - loc:Location.t -> attrs:Parsetree.attributes -> t -> Parsetree.expression -end - -(** Novel syntax in patterns *) -module Pattern : sig - type t = - | Jpat_immutable_array of Immutable_arrays.pattern - | Jpat_layout of Layouts.pattern - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.pattern - - val pat_of : - loc:Location.t -> attrs:Parsetree.attributes -> t -> Parsetree.pattern -end - -(** Novel syntax in module types *) -module Module_type : sig - type t = Jmty_strengthen of Strengthen.module_type - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.module_type - - val mty_of : - loc:Location.t -> attrs:Parsetree.attributes -> t -> Parsetree.module_type -end - -(** Novel syntax in signature items *) -module Signature_item : sig - type t = Jsig_layout of Layouts.signature_item - - include AST with type t := t and type ast := Parsetree.signature_item -end - -(** Novel syntax in structure items *) -module Structure_item : sig - type t = Jstr_layout of Layouts.structure_item - - include AST with type t := t and type ast := Parsetree.structure_item -end - -(** Novel syntax in extension constructors *) -module Extension_constructor : sig - type t = Jext_layout of Layouts.extension_constructor - - include - AST - with type t := t * Parsetree.attributes - and type ast := Parsetree.extension_constructor - - val extension_constructor_of : - loc:Location.t -> - name:string Location.loc -> - attrs:Parsetree.attributes -> - ?info:Docstrings.info -> - ?docs:Docstrings.docs -> - t -> - Parsetree.extension_constructor -end - -(** Novel syntax in module expressions *) -module Module_expr : sig - type t = Emod_instance of Instances.module_expr - - include AST with type t := t and type ast := Parsetree.module_expr -end diff --git a/src/ocaml/parsing/jane_syntax_parsing.ml b/src/ocaml/parsing/jane_syntax_parsing.ml deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/ocaml/parsing/jane_syntax_parsing.mli b/src/ocaml/parsing/jane_syntax_parsing.mli deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/ocaml/utils/language_extension.ml b/src/ocaml/utils/language_extension.ml deleted file mode 100644 index bf673ba1d..000000000 --- a/src/ocaml/utils/language_extension.ml +++ /dev/null @@ -1,453 +0,0 @@ -include Language_extension_kernel - -(* operations we want on every extension level *) -module type Extension_level = sig - type t - - val compare : t -> t -> int - - val max : t -> t -> t - - val max_value : t - - val all : t list - - val to_command_line_suffix : t -> string -end - -module Unit = struct - type t = unit - - let compare = Unit.compare - - let max _ _ = () - - let max_value = () - - let all = [()] - - let to_command_line_suffix () = "" -end - -module Maturity = struct - type t = maturity = - | Stable - | Beta - | Alpha - - let compare t1 t2 = - let rank = function Stable -> 1 | Beta -> 2 | Alpha -> 3 in - compare (rank t1) (rank t2) - - let max t1 t2 = if compare t1 t2 >= 0 then t1 else t2 - - let max_value = Alpha - - let all = [Stable; Beta; Alpha] - - let to_command_line_suffix = function - | Stable -> "" - | Beta -> "_beta" - | Alpha -> "_alpha" -end - -let get_level_ops : type a. a t -> (module Extension_level with type t = a) = - function - | Comprehensions -> (module Unit) - | Mode -> (module Maturity) - | Unique -> (module Unit) - | Include_functor -> (module Unit) - | Polymorphic_parameters -> (module Unit) - | Immutable_arrays -> (module Unit) - | Module_strengthening -> (module Unit) - | Layouts -> (module Maturity) - | SIMD -> (module Maturity) - | Labeled_tuples -> (module Unit) - | Small_numbers -> (module Maturity) - | Instances -> (module Unit) - -module Exist_pair = struct - include Exist_pair - - let maturity : t -> Maturity.t = function - | Pair (Comprehensions, ()) -> Beta - | Pair (Mode, m) -> m - | Pair (Unique, ()) -> Alpha - | Pair (Include_functor, ()) -> Stable - | Pair (Polymorphic_parameters, ()) -> Stable - | Pair (Immutable_arrays, ()) -> Stable - | Pair (Module_strengthening, ()) -> Stable - | Pair (Layouts, m) -> m - | Pair (SIMD, m) -> m - | Pair (Labeled_tuples, ()) -> Stable - | Pair (Small_numbers, m) -> m - | Pair (Instances, ()) -> Stable - - let is_erasable : t -> bool = function Pair (ext, _) -> is_erasable ext - - let to_string = function - | Pair (Layouts, m) -> to_string Layouts ^ "_" ^ maturity_to_string m - | Pair (Mode, m) -> to_string Mode ^ "_" ^ maturity_to_string m - | Pair (Small_numbers, m) -> - to_string Small_numbers ^ "_" ^ maturity_to_string m - | Pair (SIMD, m) -> to_string SIMD ^ "_" ^ maturity_to_string m - | Pair - ( (( Comprehensions | Unique | Include_functor | Polymorphic_parameters - | Immutable_arrays | Module_strengthening | Labeled_tuples - | Instances ) as ext), - _ ) -> - to_string ext -end - -type extn_pair = Exist_pair.t = Pair : 'a t * 'a -> extn_pair - -type exist = Exist.t = Pack : _ t -> exist - -(**********************************) -(* string conversions *) - -let to_command_line_string : type a. a t -> a -> string = - fun extn level -> - let (module Ops) = get_level_ops extn in - to_string extn ^ Ops.to_command_line_suffix level - -let pair_of_string_exn extn_name = - match pair_of_string extn_name with - | Some pair -> pair - | None -> - raise (Arg.Bad (Printf.sprintf "Extension %s is not known" extn_name)) - -(************************************) -(* equality *) - -type (_, _) eq = Refl : ('a, 'a) eq - -let equal_t (type a b) (a : a t) (b : b t) : (a, b) eq option = match a, b with - | Comprehensions, Comprehensions -> Some Refl - | Mode, Mode -> Some Refl - | Unique, Unique -> Some Refl - | Include_functor, Include_functor -> Some Refl - | Polymorphic_parameters, Polymorphic_parameters -> Some Refl - | Immutable_arrays, Immutable_arrays -> Some Refl - | Module_strengthening, Module_strengthening -> Some Refl - | Layouts, Layouts -> Some Refl - | SIMD, SIMD -> Some Refl - | Labeled_tuples, Labeled_tuples -> Some Refl - | Small_numbers, Small_numbers -> Some Refl - | Instances, Instances -> Some Refl - | ( ( Comprehensions | Mode | Unique | Include_functor - | Polymorphic_parameters | Immutable_arrays | Module_strengthening - | Layouts | SIMD | Labeled_tuples | Small_numbers | Instances ), - _ ) -> - None - -let equal a b = Option.is_some (equal_t a b) - -(*****************************) -(* extension universes *) - -module Universe : sig - type t = - | No_extensions - | Upstream_compatible - | Stable - | Beta - | Alpha - - val all : t list - - val maximal : t - - val to_string : t -> string - - val of_string : string -> t option - - val get : unit -> t - - val set : t -> unit - - val is : t -> bool - - val check : extn_pair -> unit - - (* Allowed extensions, each with the greatest allowed level. *) - val allowed_extensions_in : t -> extn_pair list -end = struct - (** Which extensions can be enabled? *) - type t = - | No_extensions - | Upstream_compatible - | Stable - | Beta - | Alpha - (* If you add a constructor, you should also add it to [all]. *) - - let all = [No_extensions; Upstream_compatible; Stable; Beta; Alpha] - - let maximal = Alpha - - let to_string = function - | No_extensions -> "no_extensions" - | Upstream_compatible -> "upstream_compatible" - | Stable -> "stable" - | Beta -> "beta" - | Alpha -> "alpha" - - let of_string = function - | "no_extensions" -> Some No_extensions - | "upstream_compatible" -> Some Upstream_compatible - | "stable" -> Some Stable - | "beta" -> Some Beta - | "alpha" -> Some Alpha - | _ -> None - - let compare t1 t2 = - let rank = function - | No_extensions -> 0 - | Upstream_compatible -> 1 - | Stable -> 2 - | Beta -> 3 - | Alpha -> 4 - in - compare (rank t1) (rank t2) - - (* For now, the default universe is set to [Alpha] but only a limited set of - extensions is enabled. After the migration to extension universes, the - default will be [No_extensions]. *) - let universe = ref Alpha - - let get () = !universe - - let set new_universe = universe := new_universe - - let is u = compare u !universe = 0 - - let compiler_options = function - | No_extensions -> "flag -extension-universe no_extensions" - | Upstream_compatible -> "flag -extension-universe upstream_compatible" - | Stable -> "flag -extension-universe stable" - | Beta -> "flag -extension-universe beta" - | Alpha -> "flag -extension-universe alpha (default CLI option)" - - let is_allowed_in t extn_pair = - match t with - | No_extensions -> false - | Upstream_compatible -> - Exist_pair.is_erasable extn_pair - && Maturity.compare (Exist_pair.maturity extn_pair) Stable <= 0 - | Stable -> Maturity.compare (Exist_pair.maturity extn_pair) Stable <= 0 - | Beta -> Maturity.compare (Exist_pair.maturity extn_pair) Beta <= 0 - | Alpha -> true - - let is_allowed extn_pair = is_allowed_in !universe extn_pair - - (* The terminating [()] argument helps protect against ignored arguments. See - the documentation for [Base.failwithf]. *) - let fail fmt = Format.ksprintf (fun str () -> raise (Arg.Bad str)) fmt - - let check extn_pair = - if not (is_allowed extn_pair) - then - fail "Cannot enable extension %s: incompatible with %s" - (Exist_pair.to_string extn_pair) - (compiler_options !universe) - () - - let allowed_extensions_in t = - let maximal_in_universe (Pack extn) = - let (module Ops) = get_level_ops extn in - let allowed_levels = - Ops.all |> List.filter (fun lvl -> is_allowed_in t (Pair (extn, lvl))) - in - match allowed_levels with - | [] -> None - | lvl :: lvls -> - let max_allowed_lvl = List.fold_left Ops.max lvl lvls in - Some (Pair (extn, max_allowed_lvl)) - in - List.filter_map maximal_in_universe Exist.all -end - -(*****************************************) -(* enabling / disabling *) - -(* Mutable state. Invariants: - - (1) [!extensions] contains at most one copy of each extension. - - (2) Every member of [!extensions] satisfies [Universe.is_allowed]. (For - instance, [!universe = No_extensions] implies [!extensions = []]). *) - -(* merlin-jst: ignored - see the end of this file. *) -(* After the migration to extension universes, this will be an empty list. *) -let legacy_default_extensions : extn_pair list = - Universe.allowed_extensions_in Stable - -let extensions : extn_pair list ref = ref legacy_default_extensions - -let set_worker (type a) (extn : a t) = function - | Some value -> - Universe.check (Pair (extn, value)); - let (module Ops) = get_level_ops extn in - let rec update_extensions already_seen : extn_pair list -> extn_pair list = - function - | [] -> Pair (extn, value) :: already_seen - | (Pair (extn', v) as e) :: es -> ( - match equal_t extn extn' with - | None -> update_extensions (e :: already_seen) es - | Some Refl -> - Pair (extn, Ops.max v value) :: List.rev_append already_seen es) - in - extensions := update_extensions [] !extensions - | None -> - extensions - := List.filter - (fun (Pair (extn', _) : extn_pair) -> not (equal extn extn')) - !extensions - -let set extn ~enabled = set_worker extn (if enabled then Some () else None) - -let enable extn value = set_worker extn (Some value) - -let disable extn = set_worker extn None - -(* This is similar to [Misc.protect_refs], but we don't have values to set - [extensions] to. *) -let with_temporary_extensions f = - let current_extensions = !extensions in - Fun.protect ~finally:(fun () -> extensions := current_extensions) f - -(* It might make sense to ban [set], [enable], [disable], - [only_erasable_extensions], and [disallow_extensions] inside [f], but it's - not clear that it's worth the hassle *) -let with_set_worker extn value f = - with_temporary_extensions (fun () -> - set_worker extn value; - f ()) - -let with_set extn ~enabled = - with_set_worker extn (if enabled then Some () else None) - -let with_enabled extn value = with_set_worker extn (Some value) - -let with_disabled extn = with_set_worker extn None - -let enable_of_string_exn extn_name = - match pair_of_string_exn extn_name with - | Pair (extn, setting) -> enable extn setting - -let disable_of_string_exn extn_name = - match pair_of_string_exn extn_name with Pair (extn, _) -> disable extn - -let disable_all () = extensions := [] - -let unconditionally_enable_maximal_without_checks () = - let maximal_pair (Pack extn) = - let (module Ops) = get_level_ops extn in - Pair (extn, Ops.max_value) - in - extensions := List.map maximal_pair Exist.all - -let erasable_extensions_only () = - Universe.is No_extensions || Universe.is Upstream_compatible - -let set_universe_and_enable_all u = - Universe.set u; - extensions := Universe.allowed_extensions_in (Universe.get ()) - -let set_universe_and_enable_all_of_string_exn univ_name = - match Universe.of_string univ_name with - | Some u -> set_universe_and_enable_all u - | None -> - raise (Arg.Bad (Printf.sprintf "Universe %s is not known" univ_name)) - -(********************************************) -(* checking an extension *) - -let is_at_least (type a) (extn : a t) (value : a) = - let rec check : extn_pair list -> bool = function - | [] -> false - | Pair (e, v) :: es -> ( - let (module Ops) = get_level_ops e in - match equal_t e extn with - | Some Refl -> Ops.compare v value >= 0 - | None -> check es) - in - check !extensions - -let is_enabled extn = - let rec check : extn_pair list -> bool = function - | [] -> false - | Pair (e, _) :: _ when equal e extn -> true - | _ :: es -> check es - in - check !extensions - -let get_command_line_string_if_enabled extn = - let rec find = function - | [] -> None - | Pair (e, v) :: _ when equal e extn -> Some (to_command_line_string e v) - | _ :: es -> find es - in - find !extensions - -(********************************************) -(* existentially packed extension *) - -module Exist = struct - include Exist - - let to_command_line_strings (Pack extn) = - let (module Ops) = get_level_ops extn in - List.map (to_command_line_string extn) Ops.all - - let to_string : t -> string = function Pack extn -> to_string extn - - let is_enabled : t -> bool = function Pack extn -> is_enabled extn - - let is_erasable : t -> bool = function Pack extn -> is_erasable extn -end - -(********************************************) -(* Special functionality for [Pprintast] *) - -module For_pprintast = struct - type printer_exporter = - { print_with_maximal_extensions : - 'a. (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a -> unit - } - - let can_still_define_printers = ref true - - let make_printer_exporter () = - if !can_still_define_printers - then ( - can_still_define_printers := false; - { print_with_maximal_extensions = fun pp fmt item -> - with_temporary_extensions (fun () -> - (* It's safe to call this here without validating that the - extensions are enabled, because the [Pprintast] printers should - always print Jane syntax. *) - unconditionally_enable_maximal_without_checks (); - pp fmt item) - }) - else - Misc.fatal_error - "Only Pprintast may use [Language_extension.For_pprintast]" -end - -(* merlin-jst: Enable all the ocaml-jst language extensions. We do it this way - rather than updating [default_extensions] to avoid merge conflicts. *) -let _ = - assert Universe.(is maximal); - (* It's safe to call this here because we've confirmed that we can. *) - unconditionally_enable_maximal_without_checks (); - (* For now, we override the mode and layouts extensions to be in Beta instead of Alpha. - This is to prevent printing unnecessary annotations. *) - let lower_mode_extension = function - | Pair (Mode, Alpha) -> Pair (Mode, Beta) - | Pair (Layouts, Alpha) -> Pair (Layouts, Beta) - | _ as pair -> pair -in - extensions := List.map lower_mode_extension !extensions -;; diff --git a/src/ocaml/utils/language_extension.mli b/src/ocaml/utils/language_extension.mli deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/configure b/upstream/ocaml_flambda/configure deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/parsing/jane_syntax.ml b/upstream/ocaml_flambda/parsing/jane_syntax.ml deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/parsing/jane_syntax.mli b/upstream/ocaml_flambda/parsing/jane_syntax.mli deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/parsing/jane_syntax_parsing.ml b/upstream/ocaml_flambda/parsing/jane_syntax_parsing.ml deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/parsing/jane_syntax_parsing.mli b/upstream/ocaml_flambda/parsing/jane_syntax_parsing.mli deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/typing/typedecl_unboxed.ml b/upstream/ocaml_flambda/typing/typedecl_unboxed.ml deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/typing/typedecl_unboxed.mli b/upstream/ocaml_flambda/typing/typedecl_unboxed.mli deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/utils/Makefile b/upstream/ocaml_flambda/utils/Makefile deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/utils/config.mlp b/upstream/ocaml_flambda/utils/config.mlp deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/utils/language_extension.ml b/upstream/ocaml_flambda/utils/language_extension.ml deleted file mode 100644 index e69de29bb..000000000 diff --git a/upstream/ocaml_flambda/utils/language_extension.mli b/upstream/ocaml_flambda/utils/language_extension.mli deleted file mode 100644 index e69de29bb..000000000 From 49edf67feb67dce014ebe6ee0b61624d45dc9000 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 10:44:35 -0500 Subject: [PATCH 06/15] Apply old diff to language_extension --- src/ocaml/parsing/language_extension.ml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/ocaml/parsing/language_extension.ml b/src/ocaml/parsing/language_extension.ml index b0af2e23a..5a889222c 100644 --- a/src/ocaml/parsing/language_extension.ml +++ b/src/ocaml/parsing/language_extension.ml @@ -542,3 +542,19 @@ module For_pprintast = struct Misc.fatal_error "Only Pprintast may use [Language_extension.For_pprintast]" end + +(* merlin-jst: Enable all the ocaml-jst language extensions. We do it this way + rather than updating [default_extensions] to avoid merge conflicts. *) +let _ = + assert Universe.(is maximal); + (* It's safe to call this here because we've confirmed that we can. *) + unconditionally_enable_maximal_without_checks (); + (* For now, we override the mode and layouts extensions to be in Beta instead of Alpha. + This is to prevent printing unnecessary annotations. *) + let lower_mode_extension = function + | Pair (Mode, Alpha) -> Pair (Mode, Beta) + | Pair (Layouts, Alpha) -> Pair (Layouts, Beta) + | _ as pair -> pair +in + extensions := List.map lower_mode_extension !extensions +;; From dd27d896c6dbe17ce774aff290546ad12b08bc4b Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 16:39:01 -0500 Subject: [PATCH 07/15] Resolve conflicts --- src/ocaml/parsing/ast_helper.ml | 18 +- src/ocaml/parsing/ast_helper.mli | 6 +- src/ocaml/parsing/pprintast.ml | 97 ---------- src/ocaml/parsing/pprintast.mli | 7 - src/ocaml/parsing/printast.ml | 6 - src/ocaml/typing/env.ml | 172 ----------------- src/ocaml/typing/persistent_env.ml | 41 +--- src/ocaml/typing/typecore.ml | 243 ++++++----------------- src/ocaml/typing/typecore.ml.rej | 300 ----------------------------- src/ocaml/typing/typemod.ml | 39 +--- src/ocaml/typing/typeopt.ml | 26 --- src/ocaml/typing/untypeast.mli | 10 +- 12 files changed, 68 insertions(+), 897 deletions(-) delete mode 100644 src/ocaml/typing/typecore.ml.rej diff --git a/src/ocaml/parsing/ast_helper.ml b/src/ocaml/parsing/ast_helper.ml index dfa86568e..dcef78148 100644 --- a/src/ocaml/parsing/ast_helper.ml +++ b/src/ocaml/parsing/ast_helper.ml @@ -88,16 +88,10 @@ module Typ = struct let varify_constructors var_names t = let check_variable vl loc v = if List.mem v vl then -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 raise_error Syntaxerr.(Error(Variable_in_scope(loc,v))) in -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - raise Syntaxerr.(Error(Variable_in_scope(loc,v))) in -======= - raise Syntaxerr.(Error(Variable_in_scope(loc,v))) in let check_variable_opt vl v = Option.iter (fun v -> check_variable vl v.loc v.txt) v in ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a let var_names = List.map Location.get_txt var_names in let rec loop t = let desc = @@ -261,14 +255,10 @@ module Exp = struct let extension ?loc ?attrs a = mk ?loc ?attrs (Pexp_extension a) let unreachable ?loc ?attrs () = mk ?loc ?attrs Pexp_unreachable let stack ?loc ?attrs e = mk ?loc ?attrs (Pexp_stack e) -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 + let comprehension ?loc ?attrs e = mk ?loc ?attrs (Pexp_comprehension e) let hole ?(loc = !default_loc) ?attrs () = let id = Location.mkloc hole_txt loc in mk ~loc ?attrs @@ Pexp_extension (id, PStr []) -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -======= - let comprehension ?loc ?attrs e = mk ?loc ?attrs (Pexp_comprehension e) ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a let case lhs ?guard rhs = { @@ -315,14 +305,10 @@ module Mod = struct let constraint_ ?loc ?attrs m mty = mk ?loc ?attrs (Pmod_constraint (m, mty)) let unpack ?loc ?attrs e = mk ?loc ?attrs (Pmod_unpack e) let extension ?loc ?attrs a = mk ?loc ?attrs (Pmod_extension a) -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 + let instance ?loc ?attrs a = mk ?loc ?attrs (Pmod_instance a) let hole ?(loc = !default_loc) ?attrs () = let id = Location.mkloc hole_txt loc in mk ~loc ?attrs @@ Pmod_extension (id, PStr []) -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -======= - let instance ?loc ?attrs a = mk ?loc ?attrs (Pmod_instance a) ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a end module Sig = struct diff --git a/src/ocaml/parsing/ast_helper.mli b/src/ocaml/parsing/ast_helper.mli index 2b0b59148..7ed1529de 100644 --- a/src/ocaml/parsing/ast_helper.mli +++ b/src/ocaml/parsing/ast_helper.mli @@ -314,12 +314,8 @@ module Mod: module_expr val unpack: ?loc:loc -> ?attrs:attrs -> expression -> module_expr val extension: ?loc:loc -> ?attrs:attrs -> extension -> module_expr -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 - val hole: ?loc:loc -> ?attrs:attrs -> unit -> module_expr -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -======= val instance: ?loc:loc -> ?attrs:attrs -> module_instance -> module_expr ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a + val hole: ?loc:loc -> ?attrs:attrs -> unit -> module_expr end (** Signature items *) diff --git a/src/ocaml/parsing/pprintast.ml b/src/ocaml/parsing/pprintast.ml index 7ce892215..dfd578a28 100644 --- a/src/ocaml/parsing/pprintast.ml +++ b/src/ocaml/parsing/pprintast.ml @@ -458,30 +458,14 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with ) f (t, modes) end | With (t, ty) -> -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 Misc_stdlib.pp_parens_if nested (fun f (t, ty) -> - pp f "%a with %a" (jkind ~nested:true ctxt) t (core_type ctxt) ty -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - Misc.pp_parens_if nested (fun f (t, ty) -> - pp f "%a with %a" (jkind ~nested:true ctxt) t (core_type ctxt) ty -======= - Misc.pp_parens_if nested (fun f (t, ty) -> pp f "%a with %a" (jkind_annotation ~nested:true ctxt) t (core_type ctxt) ty ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a ) f (t, ty) | Kind_of ty -> pp f "kind_of_ %a" (core_type ctxt) ty | Product ts -> -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 Misc_stdlib.pp_parens_if nested (fun f ts -> - pp f "%a" (list (jkind ~nested:true ctxt) ~sep:"@;&@;") ts -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - Misc.pp_parens_if nested (fun f ts -> - pp f "%a" (list (jkind ~nested:true ctxt) ~sep:"@;&@;") ts -======= - Misc.pp_parens_if nested (fun f ts -> pp f "%a" (list (jkind_annotation ~nested:true ctxt) ~sep:"@;&@;") ts ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a ) f ts and tyvar_jkind f (str, jkind) = @@ -2198,68 +2182,6 @@ and comprehension_iterator ctxt f x = | Pcomp_in seq -> pp f "in %a" (expression ctxt) seq -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -and immutable_array_expr ctxt f (x : Jane_syntax.Immutable_arrays.expression) = - match x with - | Iaexp_immutable_array elts -> - pp f "@[<0>@[<2>[:%a:]@]@]" - (list (simple_expr (under_semi ctxt)) ~sep:";") elts - -(* [parens] is the same as the argument to [jane_syntax_expr]. *) -and layout_expr ctxt f (x : Jane_syntax.Layouts.expression) ~parens = - match x with - (* see similar case in [expression] *) - | Lexp_newtype _ when parens || ctxt.pipe || ctxt.semi -> - paren true (layout_expr reset_ctxt ~parens:false) f x - | Lexp_constant x -> unboxed_constant ctxt f x - | Lexp_newtype (lid, jkind, inner_expr) -> - pp f "@[<2>fun@;(type@;%a :@;%a)@;%a@]" - ident_of_name lid.txt - (jkind_annotation ctxt) jkind - (pp_print_pexp_newtype ctxt "->") inner_expr - -and unboxed_constant _ctxt f (x : Jane_syntax.Layouts.constant) - = - match x with - | Float (x, None) -> - paren (first_is '-' x) (fun f -> pp f "%s") f (Misc_stdlib.format_as_unboxed_literal x) - | Float (x, Some suffix) - | Integer (x, suffix) -> - paren (first_is '-' x) (fun f (x, suffix) -> pp f "%s%c" x suffix) f - (Misc_stdlib.format_as_unboxed_literal x, suffix) - -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -and immutable_array_expr ctxt f (x : Jane_syntax.Immutable_arrays.expression) = - match x with - | Iaexp_immutable_array elts -> - pp f "@[<0>@[<2>[:%a:]@]@]" - (list (simple_expr (under_semi ctxt)) ~sep:";") elts - -(* [parens] is the same as the argument to [jane_syntax_expr]. *) -and layout_expr ctxt f (x : Jane_syntax.Layouts.expression) ~parens = - match x with - (* see similar case in [expression] *) - | Lexp_newtype _ when parens || ctxt.pipe || ctxt.semi -> - paren true (layout_expr reset_ctxt ~parens:false) f x - | Lexp_constant x -> unboxed_constant ctxt f x - | Lexp_newtype (lid, jkind, inner_expr) -> - pp f "@[<2>fun@;(type@;%a :@;%a)@;%a@]" - ident_of_name lid.txt - (jkind_annotation ctxt) jkind - (pp_print_pexp_newtype ctxt "->") inner_expr - -and unboxed_constant _ctxt f (x : Jane_syntax.Layouts.constant) - = - match x with - | Float (x, None) -> - paren (first_is '-' x) (fun f -> pp f "%s") f (Misc.format_as_unboxed_literal x) - | Float (x, Some suffix) - | Integer (x, suffix) -> - paren (first_is '-' x) (fun f (x, suffix) -> pp f "%s%c" x suffix) f - (Misc.format_as_unboxed_literal x, suffix) - -======= ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a and function_param ctxt f { pparam_desc; pparam_loc = _ } = match pparam_desc with | Pparam_val (a, b, c) -> label_exp ctxt f (a, b, c) @@ -2454,27 +2376,8 @@ let prepare_error err = "Syntax error: Unboxed integer literals require width suffixes." let () = -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 Location.register_error_of_exn (function | Syntaxerr.Error err -> Some (prepare_error err) | _ -> None ) -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -let class_signature = print_reset_with_maximal_extensions class_signature -let structure_item = print_reset_with_maximal_extensions structure_item -let signature_item = print_reset_with_maximal_extensions signature_item -let binding = print_reset_with_maximal_extensions binding -let payload = print_reset_with_maximal_extensions payload -let type_declaration = print_reset_with_maximal_extensions type_declaration -let jkind = print_reset_with_maximal_extensions jkind -======= -let class_signature = print_reset_with_maximal_extensions class_signature -let structure_item = print_reset_with_maximal_extensions structure_item -let signature_item = print_reset_with_maximal_extensions signature_item -let signature_items = print_reset_with_maximal_extensions signature_items -let binding = print_reset_with_maximal_extensions binding -let payload = print_reset_with_maximal_extensions payload -let type_declaration = print_reset_with_maximal_extensions type_declaration -let jkind_annotation = print_reset_with_maximal_extensions jkind_annotation ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a diff --git a/src/ocaml/parsing/pprintast.mli b/src/ocaml/parsing/pprintast.mli index ada4a8371..b5a172e70 100644 --- a/src/ocaml/parsing/pprintast.mli +++ b/src/ocaml/parsing/pprintast.mli @@ -64,14 +64,7 @@ val tyvar: Format.formatter -> string -> unit special treatment required for the single quote character in second position, or for keywords by escaping them with \#. No-op on "_". *) -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -val jkind : Format.formatter -> Jane_syntax.Jkind.t -> unit - -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -val jkind : Format.formatter -> Jane_syntax.Jkind.t -> unit -======= val jkind_annotation : Format.formatter -> Parsetree.jkind_annotation -> unit ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a val mode : Format.formatter -> Parsetree.mode Location.loc -> unit (* merlin *) diff --git a/src/ocaml/parsing/printast.ml b/src/ocaml/parsing/printast.ml index 361e7e667..d7c64c116 100644 --- a/src/ocaml/parsing/printast.ml +++ b/src/ocaml/parsing/printast.ml @@ -61,14 +61,8 @@ let fmt_char_option f = function let fmt_constant f x = match x with -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 - | Pconst_integer (i,m) -> fprintf f "PConst_int (%s,%a)" i fmt_char_option m; -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - | Pconst_integer (i,m) -> fprintf f "PConst_int (%s,%a)" i fmt_char_option m -======= | Pconst_integer (i,m) -> fprintf f "PConst_int (%s,%a)" i fmt_char_option m | Pconst_unboxed_integer (i,m) -> fprintf f "PConst_unboxed_int (%s,%c)" i m ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a | Pconst_char (c) -> fprintf f "PConst_char %02x" (Char.code c) | Pconst_string (s, strloc, None) -> fprintf f "PConst_string(%S,%a,None)" s fmt_location strloc diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index 9d40773c8..dacfe2c23 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -2162,19 +2162,9 @@ let rec components_of_module_maker Named (param, force_modtype (modtype scoping sub ty_arg))); fcomp_res = force_modtype (modtype scoping sub ty_res); fcomp_shape = cm_shape; -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 fcomp_cache = stamped_create 17; fcomp_subst_cache = stamped_create 17 }) - | Mty_ident _ | Mty_strengthen _ -> Error No_components_abstract -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - fcomp_cache = Hashtbl.create 17; - fcomp_subst_cache = Hashtbl.create 17 }) - | Mty_ident _ | Mty_strengthen _ -> Error No_components_abstract -======= - fcomp_cache = Hashtbl.create 17; - fcomp_subst_cache = Hashtbl.create 17 }) | Mty_ident p | Mty_strengthen (_, p, _) -> Error (No_components_abstract p) ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a | Mty_alias p -> Error (No_components_alias p) | Mty_for_hole -> Error No_components_abstract @@ -2677,168 +2667,6 @@ end) = struct | Sig_module(id, presence, md, _, _) -> let map, shape = proj_shape map mod_shape (Shape.Item.module_ id) in map, M.add_module_declaration ~check:false ?shape id presence md env -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - modules = IdTbl.add id (Mod_unbound reason) env.modules; - summary = Env_module_unbound(env.summary, name, reason) } - -(* Open a signature path *) - -let add_components slot root env0 comps = - let add_l w comps env0 = - TycompTbl.add_open slot w root comps env0 - in - let add w comps env0 = IdTbl.add_open slot w root comps env0 in - let constrs = - add_l (fun x -> `Constructor x) comps.comp_constrs env0.constrs - in - let labels = - add_l (fun x -> `Label x) comps.comp_labels env0.labels - in - let values = - add (fun x -> `Value x) comps.comp_values env0.values - in - let types = - add (fun x -> `Type x) comps.comp_types env0.types - in - let modtypes = - add (fun x -> `Module_type x) comps.comp_modtypes env0.modtypes - in - let classes = - add (fun x -> `Class x) comps.comp_classes env0.classes - in - let cltypes = - add (fun x -> `Class_type x) comps.comp_cltypes env0.cltypes - in - let modules = - add (fun x -> `Module x) comps.comp_modules env0.modules - in - { env0 with - summary = Env_open(env0.summary, root); - constrs; - labels; - values; - types; - modtypes; - classes; - cltypes; - modules; - } - -let open_signature slot root env0 : (_,_) result = - match get_components_res (find_module_components root env0) with - | Error _ -> Error `Not_found - | exception Not_found -> Error `Not_found - | Ok (Functor_comps _) -> Error `Functor - | Ok (Structure_comps comps) -> - Ok (add_components slot root env0 comps) - -let remove_last_open root env0 = - let rec filter_summary summary = - match summary with - Env_empty -> raise Exit - | Env_open (s, p) -> - if Path.same p root then s else raise Exit - | Env_value _ - | Env_type _ - | Env_extension _ - | Env_module _ - | Env_modtype _ - | Env_class _ - | Env_cltype _ - | Env_functor_arg _ - | Env_constraints _ - | Env_persistent _ - | Env_copy_types _ - | Env_value_unbound _ - | Env_module_unbound _ -> - map_summary filter_summary summary - in - match filter_summary env0.summary with - | summary -> - let rem_l tbl = TycompTbl.remove_last_open root tbl - and rem tbl = IdTbl.remove_last_open root tbl in - Some { env0 with - summary; - constrs = rem_l env0.constrs; - labels = rem_l env0.labels; - values = rem env0.values; - types = rem env0.types; - modtypes = rem env0.modtypes; - classes = rem env0.classes; - cltypes = rem env0.cltypes; - modules = rem env0.modules; } - | exception Exit -> - None - -(* Open a signature from a file *) - -let open_pers_signature name env = - match open_signature None (Pident(Ident.create_persistent name)) env with - | (Ok _ | Error `Not_found as res) -> res - | Error `Functor -> assert false - (* a compilation unit cannot refer to a functor *) - -let open_signature - ?(used_slot = ref false) - ?(loc = Location.none) ?(toplevel = false) - ovf root env = - let unused = - match ovf with - | Asttypes.Fresh -> Warnings.Unused_open (Path.name root) - | Asttypes.Override -> Warnings.Unused_open_bang (Path.name root) - in - let warn_unused = - Warnings.is_active unused - and warn_shadow_id = - Warnings.is_active (Warnings.Open_shadow_identifier ("", "")) - and warn_shadow_lc = - Warnings.is_active (Warnings.Open_shadow_label_constructor ("","")) - in - if not toplevel && not loc.Location.loc_ghost - && (warn_unused || warn_shadow_id || warn_shadow_lc) - then begin - let used = used_slot in - if warn_unused then - !add_delayed_check_forward - (fun () -> - if not !used then begin - used := true; - Location.prerr_warning loc unused - end - ); - let shadowed = ref [] in - let slot s b = - begin match check_shadowing env b with - | Some kind when - ovf = Asttypes.Fresh && not (List.mem (kind, s) !shadowed) -> - shadowed := (kind, s) :: !shadowed; - let w = - match kind with - | "label" | "constructor" -> - Warnings.Open_shadow_label_constructor (kind, s) - | _ -> Warnings.Open_shadow_identifier (kind, s) - in - Location.prerr_warning loc w - | _ -> () - end; - used := true - in - open_signature (Some slot) root env - end - else open_signature None root env - -(* Read a signature from a file *) -let read_signature modname cmi ~add_binding = - let mty = read_pers_mod modname cmi ~add_binding in -======= - modules = IdTbl.add id (Mod_unbound reason) env.modules; - summary = Env_module_unbound(env.summary, name, reason) } - -(* Read a signature from a file *) -let read_signature modname cmi ~add_binding = - let mty = read_pers_mod modname cmi ~add_binding in ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a | Sig_modtype(id, decl, _) -> let map, shape = proj_shape map mod_shape (Shape.Item.module_type id) in map, M.add_modtype ?shape id decl env diff --git a/src/ocaml/typing/persistent_env.ml b/src/ocaml/typing/persistent_env.ml index a16922a1e..b5de414dd 100644 --- a/src/ocaml/typing/persistent_env.ml +++ b/src/ocaml/typing/persistent_env.ml @@ -758,19 +758,10 @@ type 'a sig_reader = (* Add a persistent structure to the hash table and bind it in the [Env]. Checks that OCaml source is allowed to refer to this module. *) -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -let acknowledge_pers_struct penv short_path_comps modname import val_of_pers_sig = +let acknowledge_pers_struct penv short_path_comps modname pers_name val_of_pers_sig = if modname.Global_module.Name.args <> [] then Misc.fatal_errorf "TODO: Unsupported instance name: %a" Global_module.Name.print modname; -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -let acknowledge_pers_struct penv modname import val_of_pers_sig = - if modname.Global_module.Name.args <> [] then - Misc.fatal_errorf "TODO: Unsupported instance name: %a" - Global_module.Name.print modname; -======= -let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a let {persistent_structures; _} = penv in let import = pers_name.pn_import in let global = pers_name.pn_global in @@ -822,27 +813,11 @@ let acknowledge_pers_struct penv modname pers_name val_of_pers_sig = register_pers_for_short_paths penv modname ps (short_path_comps modname pm); ps -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 let read_pers_struct penv val_of_pers_sig short_path_comps check modname cmi ~add_binding = - let unit_name = CU.Name.of_head_of_global_name modname in - let import = read_import penv ~check unit_name cmi in -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -let read_pers_struct penv val_of_pers_sig check modname cmi ~add_binding = - let unit_name = CU.Name.of_head_of_global_name modname in - let import = read_import penv ~check unit_name cmi in -======= -let read_pers_struct penv val_of_pers_sig check modname cmi ~add_binding = let pers_name = read_pers_name penv check modname cmi in ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a if add_binding then ignore -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 - (acknowledge_pers_struct penv short_path_comps modname import val_of_pers_sig -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - (acknowledge_pers_struct penv modname import val_of_pers_sig -======= - (acknowledge_pers_struct penv modname pers_name val_of_pers_sig ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a + (acknowledge_pers_struct penv short_path_comps modname pers_name val_of_pers_sig : _ pers_struct_info); pers_name.pn_sign @@ -851,18 +826,8 @@ let find_pers_struct ~allow_hidden penv val_of_pers_sig short_path_comps check n match Hashtbl.find persistent_structures name with | ps -> check_visibility ~allow_hidden ps.ps_import; ps | exception Not_found -> -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 - let unit_name = CU.Name.of_head_of_global_name name in - let import = find_import ~allow_hidden penv ~check unit_name in - acknowledge_pers_struct penv short_path_comps name import val_of_pers_sig -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - let unit_name = CU.Name.of_head_of_global_name name in - let import = find_import ~allow_hidden penv ~check unit_name in - acknowledge_pers_struct penv name import val_of_pers_sig -======= let pers_name = find_pers_name ~allow_hidden penv check name in - acknowledge_pers_struct penv name pers_name val_of_pers_sig ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a + acknowledge_pers_struct penv short_path_comps name pers_name val_of_pers_sig let describe_prefix ppf prefix = if CU.Prefix.is_empty prefix then diff --git a/src/ocaml/typing/typecore.ml b/src/ocaml/typing/typecore.ml index 2d77733d5..02d893bf0 100644 --- a/src/ocaml/typing/typecore.ml +++ b/src/ocaml/typing/typecore.ml @@ -857,51 +857,15 @@ let constant : Parsetree.constant -> (Typedtree.constant, error) result = if Language_extension.is_enabled Small_numbers then Ok (Const_float32 f) else Error (Float32_literal f) | Pconst_float (f,Some c) -> Error (Unknown_literal (f, c)) -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 - -let constant_or_raise env loc cst = - match constant cst with - | Ok c -> c - | Error err -> raise (error (loc, env, err)) - -let unboxed_constant : Jane_syntax.Layouts.constant -> (Typedtree.constant, error) result - = function - | Float (f, None) -> Ok (Const_unboxed_float f) - | Float (f, Some 's') -> - if Language_extension.is_enabled Small_numbers then Ok (Const_unboxed_float32 f) - else Error (Float32_literal (Misc_stdlib.format_as_unboxed_literal f)) - | Float (x, Some c) -> - Error (Unknown_literal (Misc_stdlib.format_as_unboxed_literal x, c)) - | Integer (i, suffix) -> - begin match constant_integer i ~suffix with -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - -let constant_or_raise env loc cst = - match constant cst with - | Ok c -> c - | Error err -> raise (Error (loc, env, err)) - -let unboxed_constant : Jane_syntax.Layouts.constant -> (Typedtree.constant, error) result - = function - | Float (f, None) -> Ok (Const_unboxed_float f) - | Float (f, Some 's') -> - if Language_extension.is_enabled Small_numbers then Ok (Const_unboxed_float32 f) - else Error (Float32_literal (Misc.format_as_unboxed_literal f)) - | Float (x, Some c) -> - Error (Unknown_literal (Misc.format_as_unboxed_literal x, c)) - | Integer (i, suffix) -> - begin match constant_integer i ~suffix with -======= | Pconst_unboxed_float (f, None) -> Ok (Const_unboxed_float f) | Pconst_unboxed_float (f, Some 's') -> if Language_extension.is_enabled Small_numbers then Ok (Const_unboxed_float32 f) - else Error (Float32_literal (Misc.format_as_unboxed_literal f)) + else Error (Float32_literal (Misc_stdlib.format_as_unboxed_literal f)) | Pconst_unboxed_float (x, Some c) -> - Error (Unknown_literal (Misc.format_as_unboxed_literal x, c)) + Error (Unknown_literal (Misc_stdlib.format_as_unboxed_literal x, c)) | Pconst_unboxed_integer (i, suffix) -> begin match constant_integer i ~suffix with ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a | Ok (Int32 v) -> Ok (Const_unboxed_int32 v) | Ok (Int64 v) -> Ok (Const_unboxed_int64 v) | Ok (Nativeint v) -> Ok (Const_unboxed_nativeint v) @@ -909,28 +873,9 @@ let unboxed_constant : Jane_syntax.Layouts.constant -> (Typedtree.constant, erro | Error Int64_literal_overflow -> Error (Literal_overflow "int64#") | Error Nativeint_literal_overflow -> Error (Literal_overflow "nativeint#") | Error Unknown_constant_literal -> -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 - Error (Unknown_literal (Misc_stdlib.format_as_unboxed_literal i, suffix)) - end -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - Error (Unknown_literal (Misc.format_as_unboxed_literal i, suffix)) - end -======= - Error (Unknown_literal (Misc.format_as_unboxed_literal i, suffix)) + Error (Unknown_literal (Misc_stdlib.format_as_unboxed_literal i, suffix)) end ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -let unboxed_constant_or_raise env loc cst = - match unboxed_constant cst with - | Ok c -> c - | Error err -> raise (error (loc, env, err)) -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -let unboxed_constant_or_raise env loc cst = - match unboxed_constant cst with - | Ok c -> c - | Error err -> raise (Error (loc, env, err)) -======= let constant_or_raise env loc cst = match constant cst with | Ok c -> @@ -946,8 +891,7 @@ let constant_or_raise env loc cst = | Const_float32 _ | Const_int32 _ | Const_int64 _ | Const_nativeint _ -> ()); c - | Error err -> raise (Error (loc, env, err)) ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a + | Error err -> raise (error (loc, env, err)) (* Specific version of type_option, using newty rather than newgenty *) @@ -2776,7 +2720,7 @@ and type_pat_aux (* If not, it's not allowed to be open (partial) *) | _ -> match closed with - | Open -> raise (Error (loc, !!penv, Partial_tuple_pattern_bad_type)) + | Open -> raise (error (loc, !!penv, Partial_tuple_pattern_bad_type)) | Closed -> spl in let spl_ann = @@ -6064,14 +6008,14 @@ and type_expect_ exp_type = instance Predef.type_unit; exp_attributes = sexp.pexp_attributes; exp_env = env } - | Pexp_array(sargl) -> + | Pexp_array(mut, sargl) -> type_generic_array ~loc ~env ~expected_mode ~ty_expected ~explanation - ~mutability:(Mutable Alloc.Comonadic.Const.legacy) + ~mutability ~attributes:sexp.pexp_attributes sargl | Pexp_ifthenelse(scond, sifso, sifnot) -> @@ -6524,9 +6468,9 @@ and type_expect_ in re { exp with exp_extra = (Texp_poly cty, loc, sexp.pexp_attributes) :: exp.exp_extra } - | Pexp_newtype(name, sbody) -> + | Pexp_newtype(name, jkind, sbody) -> type_newtype_expr ~loc ~env ~expected_mode ~rue ~attributes:sexp.pexp_attributes - name None sbody + name jkind sbody | Pexp_pack m -> (* CR zqian: pass [expected_mode] to [type_package] *) submode ~loc ~env Value.legacy expected_mode; @@ -6752,8 +6696,13 @@ and type_expect_ exp_env = env } | Pexp_stack e -> let exp = type_expect env expected_mode e ty_expected_explained in + let expected_mode' = + mode_morph (Value.join_with (Comonadic Areality) Regionality.Const.Local) + expected_mode + in + let exp = type_expect env expected_mode' e ty_expected_explained in let unsupported category = - raise (Error (exp.exp_loc, env, Unsupported_stack_allocation category)) + raise (error (exp.exp_loc, env, Unsupported_stack_allocation category)) in begin match exp.exp_desc with | Texp_function { alloc_mode; _} | Texp_tuple (_, alloc_mode) @@ -6761,11 +6710,11 @@ and type_expect_ | Texp_variant (_, Some (_, alloc_mode)) | Texp_record {alloc_mode = Some alloc_mode; _} | Texp_array (_, _, _, alloc_mode) - | Texp_field (_, _, _, Boxing (alloc_mode, _)) -> + | Texp_field (_, _, _, Boxing (alloc_mode, _), _) -> begin match Locality.submode Locality.local (Alloc.proj (Comonadic Areality) alloc_mode.mode) with | Ok () -> () - | Error _ -> raise (Error (exp.exp_loc, env, + | Error _ -> raise (error (e.exp_loc, env, Cannot_stack_allocate alloc_mode.locality_context)) end | Texp_list_comprehension _ -> unsupported List_comprehension @@ -6776,10 +6725,20 @@ and type_expect_ | Texp_object _ -> unsupported Object | Texp_pack _ -> unsupported Module | _ -> - raise (Error (exp.exp_loc, env, Not_allocation)) + raise (error (exp.exp_loc, env, Not_allocation)) end; + submode ~loc ~env (Value.min_with (Comonadic Areality) Regionality.local) + expected_mode; let exp_extra = (Texp_stack, loc, []) :: exp.exp_extra in {exp with exp_extra} + | Pexp_comprehension comp -> + Language_extension.assert_enabled ~loc Comprehensions (); + type_comprehension_expr + ~loc + ~env + ~ty_expected + ~attributes:sexp.pexp_attributes + comp and expression_constraint pexp = { type_without_constraint = (fun env expected_mode -> @@ -7915,7 +7874,8 @@ and type_argument ?explanation ?recarg env (mode : expected_mode) sarg pat_type = ty; pat_extra=[]; pat_attributes = []; - pat_loc = Location.none; pat_env = env}, + pat_loc = Location.none; pat_env = env; + pat_unique_barrier = Unique_barrier.not_computed () }, {exp_type = ty; exp_loc = Location.none; exp_env = exp_env; exp_extra = []; exp_attributes = []; exp_desc = @@ -8230,8 +8190,9 @@ and type_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected let expl = List.map2 (fun (label, body) ((_, ty), argument_mode) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) label; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + label; let argument_mode = mode_default argument_mode in let argument_mode = expect_mode_cross env ty argument_mode in (label, type_expect env argument_mode body (mk_expected ty))) @@ -8247,8 +8208,7 @@ and type_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected and type_unboxed_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected ~explanation ~attributes sexpl = - Jane_syntax_parsing.assert_extension_enabled ~loc Layouts - Language_extension.Beta; + Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; let arity = List.length sexpl in assert (arity >= 2); let argument_mode = expected_mode.mode in @@ -8286,8 +8246,9 @@ and type_unboxed_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected let expl = List.map2 (fun (label, body) ((_, ty, sort), argument_mode) -> - Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc - Language_extension.Labeled_tuples ()) label; + Option.iter (fun _ -> + Language_extension.assert_enabled ~loc Labeled_tuples ()) + label; let argument_mode = mode_default argument_mode in let argument_mode = expect_mode_cross env ty argument_mode in (label, type_expect env argument_mode body (mk_expected ty), sort)) @@ -8329,11 +8290,7 @@ and type_construct env (expected_mode : expected_mode) loc lid sarg match sarg with | None -> [] | Some se -> begin - match Jane_syntax.Expression.of_ast se with - | Some (( Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout _), _) -> [se] - | None -> match se.pexp_desc with + match se.pexp_desc with | Pexp_tuple sel when constr.cstr_arity > 1 || Builtin_attributes.explicit_arity attrs -> @@ -8929,18 +8886,11 @@ and type_function_cases_expect and type_let ?check ?check_strict ?(force_toplevel = false) existential_context env rec_flag spat_sexp_list allow_modules = let rec sexp_is_fun sexp = - match Jane_syntax.Expression.of_ast sexp with - | Some (jexp, _attrs) -> jexp_is_fun jexp - | None -> match sexp.pexp_desc with + match sexp.pexp_desc with | Pexp_function _ -> true | Pexp_constraint (e, _, _) - | Pexp_newtype (_, e) -> sexp_is_fun e + | Pexp_newtype (_, _, e) -> sexp_is_fun e | _ -> false - and jexp_is_fun : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension _ - | Jexp_immutable_array _ - | Jexp_layout (Lexp_constant _) -> false - | Jexp_layout (Lexp_newtype (_, _, e)) -> sexp_is_fun e in let vb_is_fun { pvb_expr = sexp; _ } = sexp_is_fun sexp in let entirely_functions = List.for_all vb_is_fun spat_sexp_list in @@ -9386,19 +9336,6 @@ and type_generic_array exp_attributes = attributes; exp_env = env } -and type_expect_jane_syntax - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes - : Jane_syntax.Expression.t -> _ = function - | Jexp_comprehension x -> - type_comprehension_expr - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x - | Jexp_immutable_array x -> - type_immutable_array - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x - | Jexp_layout x -> - type_jkind_expr - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x - and type_expect_mode ~loc ~env ~(modes : Alloc.Const.Option.t) expected_mode = let min = Alloc.Const.Option.value ~default:Alloc.Const.min modes |> Const.alloc_as_value in let max = Alloc.Const.Option.value ~default:Alloc.Const.max modes |> Const.alloc_as_value in @@ -9613,10 +9550,7 @@ and type_n_ary_function we need to provide modes while typechecking comprehensions, we will reference this comment by its incipit (the initial question, right at the start). *) -and type_comprehension_expr - ~loc ~env ~expected_mode:_ ~ty_expected ~explanation:_ ~rue:_~attributes - cexpr = - let open Jane_syntax.Comprehensions in +and type_comprehension_expr ~loc ~env ~ty_expected ~attributes cexpr = (* - [comprehension_type]: For printing nicer error messages. - [container_type]: @@ -9628,18 +9562,20 @@ and type_comprehension_expr - [{body = sbody; clauses}]: The actual comprehension to be translated. *) let comprehension_type, container_type, make_texp, - {body = sbody; clauses}, jkind = + {pcomp_body = sbody; pcomp_clauses}, jkind = match cexpr with - | Cexp_list_comprehension comp -> + | Pcomp_list_comprehension comp -> (List_comprehension : comprehension_type), Predef.type_list, (fun tcomp -> Texp_list_comprehension tcomp), comp, Predef.list_argument_jkind - | Cexp_array_comprehension (amut, comp) -> + | Pcomp_array_comprehension (amut, comp) -> let container_type, mut = match amut with | Mutable -> Predef.type_array, Mutable Alloc.Comonadic.Const.legacy - | Immutable -> Predef.type_iarray, Immutable + | Immutable -> + Language_extension.assert_enabled ~loc Immutable_arrays (); + Predef.type_iarray, Immutable in (Array_comprehension mut : comprehension_type), container_type, @@ -9667,7 +9603,7 @@ and type_comprehension_expr (* To understand why we don't provide modes here, see "What modes should comprehensions use?", above *) type_comprehension_clauses - ~loc ~env ~comprehension_type ~container_type clauses + ~loc ~env ~comprehension_type ~container_type pcomp_clauses in let comp_body = (* To understand why comprehension bodies are checked at [mode_global], see @@ -9690,8 +9626,8 @@ and type_comprehension_clauses (* Calls [reset_pattern] *) and type_comprehension_clause ~loc ~comprehension_type ~container_type env - : Jane_syntax.Comprehensions.clause -> _ = function - | For bindings -> + = function + | Pcomp_for bindings -> (* TODO: fix handling of first-class module patterns *) let tps = create_type_pat_state Modules_rejected in let tbindings = @@ -9706,7 +9642,7 @@ and type_comprehension_clause ~loc ~comprehension_type ~container_type env add_pattern_variables ~check ~check_as:check env pvs in env, Texp_comp_for tbindings - | When cond -> + | Pcomp_when cond -> let tcond = (* To understand why [when] conditions can be checked at an arbitrary mode, see "What modes should comprehensions use?" in @@ -9725,7 +9661,10 @@ and type_comprehension_binding ~container_type ~env tps - Jane_syntax.Comprehensions.{ pattern; iterator; attributes } = + { pcomp_cb_pattern = pattern; + pcomp_cb_iterator = iterator; + pcomp_cb_attributes = attributes } + = { comp_cb_iterator = type_comprehension_iterator ~loc ~env ~comprehension_type ~container_type tps pattern iterator @@ -9734,9 +9673,8 @@ and type_comprehension_binding } and type_comprehension_iterator - ~loc ~env ~comprehension_type ~container_type tps pattern - : Jane_syntax.Comprehensions.iterator -> _ = function - | Range { start; stop; direction } -> + ~loc ~env ~comprehension_type ~container_type tps pattern = function + | Pcomp_range { start; stop; direction } -> let tbound ~explanation bound = (* To understand why [for ... = ...] iterator range endpoints can be checked at an arbitrary mode, see "What modes should comprehensions @@ -9759,7 +9697,7 @@ and type_comprehension_iterator ~param:pattern in Texp_comp_range { ident; pattern; start; stop; direction } - | In seq -> + | Pcomp_in seq -> let item_ty = newvar (Jkind.Builtin.any ~why:Dummy_jkind) in let seq_ty = container_type item_ty in let sequence = @@ -9794,72 +9732,9 @@ and type_comprehension_iterator in Texp_comp_in { pattern; sequence } -and type_immutable_array - ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue:_ ~attributes - : Jane_syntax.Immutable_arrays.expression -> _ = function -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 - | Iaexp_immutable_array elts -> -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - exp_type = instance Predef.type_unit; - exp_attributes = sexp.pexp_attributes; - exp_env = env } - | Pexp_array(sargl) -> -======= - exp_type = instance Predef.type_unit; - exp_attributes = sexp.pexp_attributes; - exp_env = env } - | Pexp_array(mut, sargl) -> - let mutability = - match mut with - | Mutable -> Mutable Alloc.Comonadic.Const.legacy - | Immutable -> - Language_extension.assert_enabled ~loc Immutable_arrays (); - Immutable - in ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a - type_generic_array - ~loc - ~env - ~expected_mode - ~ty_expected - ~explanation -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - ~mutability:(Mutable Alloc.Comonadic.Const.legacy) - ~attributes:sexp.pexp_attributes - sargl - | Pexp_ifthenelse(scond, sifso, sifnot) -> -======= - ~mutability - ~attributes:sexp.pexp_attributes - sargl - | Pexp_ifthenelse(scond, sifso, sifnot) -> ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a - ~mutability:Immutable - ~attributes - elts - -and type_jkind_expr - ~loc ~env ~expected_mode ~ty_expected:_ ~explanation:_ ~rue ~attributes - : Jane_syntax.Layouts.expression -> _ = function - | Lexp_constant x -> type_unboxed_constant ~loc ~env ~rue ~attributes x - | Lexp_newtype (name, jkind_annot, sbody) -> - type_newtype_expr ~loc ~env ~expected_mode ~rue ~attributes - name (Some jkind_annot) sbody - -and type_unboxed_constant ~loc ~env ~rue ~attributes cst = - let cst = unboxed_constant_or_raise env loc cst in - rue { - exp_desc = Texp_constant cst; - exp_loc = loc; - exp_extra = []; - exp_type = type_constant cst; - exp_attributes = attributes; - exp_env = env } - (* Typing of method call *) and type_send env loc explanation e met = - let obj = type_exp env mode_legacy e in + let obj = type_exp env mode_object e in let (meth, typ) = match obj.exp_desc with | Texp_ident(_, _, {val_kind = Val_self(sign, meths, _, _)}, _, _) -> diff --git a/src/ocaml/typing/typecore.ml.rej b/src/ocaml/typing/typecore.ml.rej deleted file mode 100644 index 0320b1e22..000000000 --- a/src/ocaml/typing/typecore.ml.rej +++ /dev/null @@ -1,300 +0,0 @@ ---- typecore.ml -+++ typecore.ml -@@ -6475,9 +6433,9 @@ and type_expect_ - in - re { exp with exp_extra = - (Texp_poly cty, loc, sexp.pexp_attributes) :: exp.exp_extra } -- | Pexp_newtype(name, sbody) -> -+ | Pexp_newtype(name, jkind, sbody) -> - type_newtype_expr ~loc ~env ~expected_mode ~rue ~attributes:sexp.pexp_attributes -- name None sbody -+ name jkind sbody - | Pexp_pack m -> - (* CR zqian: pass [expected_mode] to [type_package] *) - submode ~loc ~env Value.legacy expected_mode; -@@ -6684,7 +6642,11 @@ and type_expect_ - exp_attributes = sexp.pexp_attributes; - exp_env = env } - | Pexp_stack e -> -- let exp = type_expect env expected_mode e ty_expected_explained in -+ let expected_mode' = -+ mode_morph (Value.join_with (Comonadic Areality) Regionality.Const.Local) -+ expected_mode -+ in -+ let exp = type_expect env expected_mode' e ty_expected_explained in - let unsupported category = - raise (Error (exp.exp_loc, env, Unsupported_stack_allocation category)) - in -@@ -6694,11 +6656,11 @@ and type_expect_ - | Texp_variant (_, Some (_, alloc_mode)) - | Texp_record {alloc_mode = Some alloc_mode; _} - | Texp_array (_, _, _, alloc_mode) -- | Texp_field (_, _, _, Boxing (alloc_mode, _)) -> -+ | Texp_field (_, _, _, Boxing (alloc_mode, _), _) -> - begin match Locality.submode Locality.local - (Alloc.proj (Comonadic Areality) alloc_mode.mode) with - | Ok () -> () -- | Error _ -> raise (Error (exp.exp_loc, env, -+ | Error _ -> raise (Error (e.pexp_loc, env, - Cannot_stack_allocate alloc_mode.locality_context)) - end - | Texp_list_comprehension _ -> unsupported List_comprehension -@@ -6711,8 +6673,18 @@ and type_expect_ - | _ -> - raise (Error (exp.exp_loc, env, Not_allocation)) - end; -+ submode ~loc ~env (Value.min_with (Comonadic Areality) Regionality.local) -+ expected_mode; - let exp_extra = (Texp_stack, loc, []) :: exp.exp_extra in - {exp with exp_extra} -+ | Pexp_comprehension comp -> -+ Language_extension.assert_enabled ~loc Comprehensions (); -+ type_comprehension_expr -+ ~loc -+ ~env -+ ~ty_expected -+ ~attributes:sexp.pexp_attributes -+ comp - - and expression_constraint pexp = - { type_without_constraint = (fun env expected_mode -> -@@ -7727,7 +7699,8 @@ and type_argument ?explanation ?recarg env (mode : expected_mode) sarg - pat_type = ty; - pat_extra=[]; - pat_attributes = []; -- pat_loc = Location.none; pat_env = env}, -+ pat_loc = Location.none; pat_env = env; -+ pat_unique_barrier = Unique_barrier.not_computed () }, - {exp_type = ty; exp_loc = Location.none; exp_env = exp_env; - exp_extra = []; exp_attributes = []; - exp_desc = -@@ -8023,8 +7996,9 @@ and type_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected - let expl = - List.map2 - (fun (label, body) ((_, ty), argument_mode) -> -- Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc -- Language_extension.Labeled_tuples ()) label; -+ Option.iter (fun _ -> -+ Language_extension.assert_enabled ~loc Labeled_tuples ()) -+ label; - let argument_mode = mode_default argument_mode in - let argument_mode = expect_mode_cross env ty argument_mode in - (label, type_expect env argument_mode body (mk_expected ty))) -@@ -8040,8 +8014,7 @@ and type_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected - - and type_unboxed_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected - ~explanation ~attributes sexpl = -- Jane_syntax_parsing.assert_extension_enabled ~loc Layouts -- Language_extension.Beta; -+ Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; - let arity = List.length sexpl in - assert (arity >= 2); - let argument_mode = expected_mode.mode in -@@ -8079,8 +8052,9 @@ and type_unboxed_tuple ~loc ~env ~(expected_mode : expected_mode) ~ty_expected - let expl = - List.map2 - (fun (label, body) ((_, ty, sort), argument_mode) -> -- Option.iter (fun _ -> Jane_syntax_parsing.assert_extension_enabled ~loc -- Language_extension.Labeled_tuples ()) label; -+ Option.iter (fun _ -> -+ Language_extension.assert_enabled ~loc Labeled_tuples ()) -+ label; - let argument_mode = mode_default argument_mode in - let argument_mode = expect_mode_cross env ty argument_mode in - (label, type_expect env argument_mode body (mk_expected ty), sort)) -@@ -8122,11 +8096,7 @@ and type_construct env (expected_mode : expected_mode) loc lid sarg - match sarg with - | None -> [] - | Some se -> begin -- match Jane_syntax.Expression.of_ast se with -- | Some (( Jexp_comprehension _ -- | Jexp_immutable_array _ -- | Jexp_layout _), _) -> [se] -- | None -> match se.pexp_desc with -+ match se.pexp_desc with - | Pexp_tuple sel when - constr.cstr_arity > 1 || Builtin_attributes.explicit_arity attrs - -> -@@ -8694,18 +8664,11 @@ and type_function_cases_expect - and type_let ?check ?check_strict ?(force_toplevel = false) - existential_context env rec_flag spat_sexp_list allow_modules = - let rec sexp_is_fun sexp = -- match Jane_syntax.Expression.of_ast sexp with -- | Some (jexp, _attrs) -> jexp_is_fun jexp -- | None -> match sexp.pexp_desc with -+ match sexp.pexp_desc with - | Pexp_function _ -> true - | Pexp_constraint (e, _, _) -- | Pexp_newtype (_, e) -> sexp_is_fun e -+ | Pexp_newtype (_, _, e) -> sexp_is_fun e - | _ -> false -- and jexp_is_fun : Jane_syntax.Expression.t -> _ = function -- | Jexp_comprehension _ -- | Jexp_immutable_array _ -- | Jexp_layout (Lexp_constant _) -> false -- | Jexp_layout (Lexp_newtype (_, _, e)) -> sexp_is_fun e - in - let vb_is_fun { pvb_expr = sexp; _ } = sexp_is_fun sexp in - let entirely_functions = List.for_all vb_is_fun spat_sexp_list in -@@ -9151,19 +9114,6 @@ and type_generic_array - exp_attributes = attributes; - exp_env = env } - --and type_expect_jane_syntax -- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes -- : Jane_syntax.Expression.t -> _ = function -- | Jexp_comprehension x -> -- type_comprehension_expr -- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x -- | Jexp_immutable_array x -> -- type_immutable_array -- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x -- | Jexp_layout x -> -- type_jkind_expr -- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue ~attributes x -- - and type_expect_mode ~loc ~env ~(modes : Alloc.Const.Option.t) expected_mode = - let min = Alloc.Const.Option.value ~default:Alloc.Const.min modes |> Const.alloc_as_value in - let max = Alloc.Const.Option.value ~default:Alloc.Const.max modes |> Const.alloc_as_value in -@@ -9378,10 +9328,7 @@ and type_n_ary_function - we need to provide modes while typechecking comprehensions, we will reference - this comment by its incipit (the initial question, right at the start). *) - --and type_comprehension_expr -- ~loc ~env ~expected_mode:_ ~ty_expected ~explanation:_ ~rue:_~attributes -- cexpr = -- let open Jane_syntax.Comprehensions in -+and type_comprehension_expr ~loc ~env ~ty_expected ~attributes cexpr = - (* - [comprehension_type]: - For printing nicer error messages. - - [container_type]: -@@ -9393,18 +9340,20 @@ and type_comprehension_expr - - [{body = sbody; clauses}]: - The actual comprehension to be translated. *) - let comprehension_type, container_type, make_texp, -- {body = sbody; clauses}, jkind = -+ {pcomp_body = sbody; pcomp_clauses}, jkind = - match cexpr with -- | Cexp_list_comprehension comp -> -+ | Pcomp_list_comprehension comp -> - (List_comprehension : comprehension_type), - Predef.type_list, - (fun tcomp -> Texp_list_comprehension tcomp), - comp, - Predef.list_argument_jkind -- | Cexp_array_comprehension (amut, comp) -> -+ | Pcomp_array_comprehension (amut, comp) -> - let container_type, mut = match amut with - | Mutable -> Predef.type_array, Mutable Alloc.Comonadic.Const.legacy -- | Immutable -> Predef.type_iarray, Immutable -+ | Immutable -> -+ Language_extension.assert_enabled ~loc Immutable_arrays (); -+ Predef.type_iarray, Immutable - in - (Array_comprehension mut : comprehension_type), - container_type, -@@ -9432,7 +9381,7 @@ and type_comprehension_expr - (* To understand why we don't provide modes here, see "What modes should - comprehensions use?", above *) - type_comprehension_clauses -- ~loc ~env ~comprehension_type ~container_type clauses -+ ~loc ~env ~comprehension_type ~container_type pcomp_clauses - in - let comp_body = - (* To understand why comprehension bodies are checked at [mode_global], see -@@ -9455,8 +9404,8 @@ and type_comprehension_clauses - - (* Calls [reset_pattern] *) - and type_comprehension_clause ~loc ~comprehension_type ~container_type env -- : Jane_syntax.Comprehensions.clause -> _ = function -- | For bindings -> -+ = function -+ | Pcomp_for bindings -> - (* TODO: fix handling of first-class module patterns *) - let tps = create_type_pat_state Modules_rejected in - let tbindings = -@@ -9471,7 +9420,7 @@ and type_comprehension_clause ~loc ~comprehension_type ~container_type env - add_pattern_variables ~check ~check_as:check env pvs - in - env, Texp_comp_for tbindings -- | When cond -> -+ | Pcomp_when cond -> - let tcond = - (* To understand why [when] conditions can be checked at an arbitrary - mode, see "What modes should comprehensions use?" in -@@ -9490,7 +9439,10 @@ and type_comprehension_binding - ~container_type - ~env - tps -- Jane_syntax.Comprehensions.{ pattern; iterator; attributes } = -+ { pcomp_cb_pattern = pattern; -+ pcomp_cb_iterator = iterator; -+ pcomp_cb_attributes = attributes } -+ = - { comp_cb_iterator = - type_comprehension_iterator - ~loc ~env ~comprehension_type ~container_type tps pattern iterator -@@ -9499,9 +9451,8 @@ and type_comprehension_binding - } - - and type_comprehension_iterator -- ~loc ~env ~comprehension_type ~container_type tps pattern -- : Jane_syntax.Comprehensions.iterator -> _ = function -- | Range { start; stop; direction } -> -+ ~loc ~env ~comprehension_type ~container_type tps pattern = function -+ | Pcomp_range { start; stop; direction } -> - let tbound ~explanation bound = - (* To understand why [for ... = ...] iterator range endpoints can be - checked at an arbitrary mode, see "What modes should comprehensions -@@ -9524,7 +9475,7 @@ and type_comprehension_iterator - ~param:pattern - in - Texp_comp_range { ident; pattern; start; stop; direction } -- | In seq -> -+ | Pcomp_in seq -> - let item_ty = newvar (Jkind.Builtin.any ~why:Dummy_jkind) in - let seq_ty = container_type item_ty in - let sequence = -@@ -9559,41 +9510,9 @@ and type_comprehension_iterator - in - Texp_comp_in { pattern; sequence } - --and type_immutable_array -- ~loc ~env ~expected_mode ~ty_expected ~explanation ~rue:_ ~attributes -- : Jane_syntax.Immutable_arrays.expression -> _ = function -- | Iaexp_immutable_array elts -> -- type_generic_array -- ~loc -- ~env -- ~expected_mode -- ~ty_expected -- ~explanation -- ~mutability:Immutable -- ~attributes -- elts -- --and type_jkind_expr -- ~loc ~env ~expected_mode ~ty_expected:_ ~explanation:_ ~rue ~attributes -- : Jane_syntax.Layouts.expression -> _ = function -- | Lexp_constant x -> type_unboxed_constant ~loc ~env ~rue ~attributes x -- | Lexp_newtype (name, jkind_annot, sbody) -> -- type_newtype_expr ~loc ~env ~expected_mode ~rue ~attributes -- name (Some jkind_annot) sbody -- --and type_unboxed_constant ~loc ~env ~rue ~attributes cst = -- let cst = unboxed_constant_or_raise env loc cst in -- rue { -- exp_desc = Texp_constant cst; -- exp_loc = loc; -- exp_extra = []; -- exp_type = type_constant cst; -- exp_attributes = attributes; -- exp_env = env } -- - (* Typing of method call *) - and type_send env loc explanation e met = -- let obj = type_exp env mode_legacy e in -+ let obj = type_exp env mode_object e in - let (meth, typ) = - match obj.exp_desc with - | Texp_ident(_, _, {val_kind = Val_self(sign, meths, _, _)}, _, _) -> diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index 0cf9b51f8..2c616188f 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -1708,23 +1708,9 @@ and transl_with ~loc env remove_aliases (rev_tcstrs,sg) constr = take a ~toplevel argument like its cousin type_structure. But in merlin, a signature can be incrementally checked because of the caching mechanism, so we need this to take the signature of the previously checked portion -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 to support include functor. *) -and transl_signature ?(keep_warnings = false) env sig_acc (sg : Parsetree.signature) = -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - let tcstr = Option.get tcstr in - ((path, lid, tcstr) :: rev_tcstrs, sg) - - - -and transl_signature env sg = -======= - let tcstr = Option.get tcstr in - ((path, lid, tcstr) :: rev_tcstrs, sg) - -and transl_signature env {psg_items; psg_modalities; psg_loc} = ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a +and transl_signature ?(keep_warnings = false) env sig_acc {psg_items; psg_modalities; psg_loc} = let names = Signature_names.create () in let has_sig_modalities = @@ -2074,30 +2060,9 @@ and transl_signature env {psg_items; psg_modalities; psg_loc} = ~save_part:(fun sg -> Cmt_format.Partial_signature sg) (fun () -> let (trem, rem, final_env) = -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 - transl_sig (Env.in_signature true env) [] [] sig_acc sg -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - transl_sig (Env.in_signature true env) [] [] sg -======= - transl_sig (Env.in_signature true env) [] [] psg_items ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a + transl_sig (Env.in_signature true env) [] [] sig_acc psg_items in let rem = Signature_names.simplify final_env names rem in -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - let sg = - { sig_items = trem; sig_type = rem; sig_final_env = final_env } - in - Cmt_format.set_saved_types - ((Cmt_format.Partial_signature sg) :: previous_saved_types); -======= - let sg = - { sig_items = trem; sig_type = rem; sig_final_env = final_env; - sig_modalities; sig_sloc = psg_loc } - in - Cmt_format.set_saved_types - ((Cmt_format.Partial_signature sg) :: previous_saved_types); ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a { sig_items = trem; sig_type = rem; sig_final_env = final_env }) and transl_modtype_decl env pmtd = diff --git a/src/ocaml/typing/typeopt.ml b/src/ocaml/typing/typeopt.ml index 50c659f17..7ab9e6ea1 100644 --- a/src/ocaml/typing/typeopt.ml +++ b/src/ocaml/typing/typeopt.ml @@ -865,36 +865,10 @@ let classify_lazy_argument : Typedtree.expression -> (* let value_kind_union (k1 : Lambda.value_kind) (k2 : Lambda.value_kind) = if Lambda.equal_value_kind k1 k2 then k1 -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 - else Pgenval - -let rec layout_union l1 l2 = - match l1, l2 with -======= (* CR vlaviron: we could be more precise by comparing nullability and raw kinds separately *) else Lambda.generic_value -let rec layout_union l1 l2 = - match l1, l2 with ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a - (Jkind.Violation.report_with_offender - ~offender:(fun ppf -> Printtyp.type_expr ppf ty)) err - | Unsupported_sort const -> - fprintf ppf "Layout %a is not supported yet." - Jkind.Sort.Const.format const - | Unsupported_product_in_lazy const -> - fprintf ppf - "Product layout %a detected in [lazy] in [Typeopt.Layout]@ \ - Please report this error to the Jane Street compilers team." - Jkind.Sort.Const.format const - | Unsupported_product_in_array const -> - fprintf ppf - "Unboxed products are not yet supported with array primitives.@ \ - Here, layout %a was used." - Jkind.Sort.Const.format const - let rec layout_union l1 l2 = match l1, l2 with | Pbottom, l diff --git a/src/ocaml/typing/untypeast.mli b/src/ocaml/typing/untypeast.mli index 5e4d1df9e..a11982f4f 100644 --- a/src/ocaml/typing/untypeast.mli +++ b/src/ocaml/typing/untypeast.mli @@ -82,16 +82,8 @@ val default_mapper : mapper val untype_structure : ?mapper:mapper -> Typedtree.structure -> structure val untype_signature : ?mapper:mapper -> Typedtree.signature -> signature -<<<<<<< janestreet/merlin-jst:merge-5.2.0minus-3 -val constant : Typedtree.constant -> - [ `Parsetree of Parsetree.constant | `Jane_syntax of Jane_syntax.Layouts.constant ] +val constant : Typedtree.constant -> Parsetree.constant (* Merlin *) val untype_pattern : _ Typedtree.general_pattern -> Parsetree.pattern val untype_expression : Typedtree.expression -> Parsetree.expression -||||||| ocaml-flambda/flambda-backend:8a585cf2429644141a48bd23db7b237b20360938 -val constant : Typedtree.constant -> - [ `Parsetree of Parsetree.constant | `Jane_syntax of Jane_syntax.Layouts.constant ] -======= -val constant : Typedtree.constant -> Parsetree.constant ->>>>>>> ocaml-flambda/flambda-backend:e1efceb89a5fb273cdb506c612f75479bee6042a From e7f63b569eadb749d3260449f79299e0f83c909c Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Tue, 12 Nov 2024 16:58:03 -0500 Subject: [PATCH 08/15] Resolve errors outside of merlin-specific code --- src/analysis/construct.ml | 2 +- src/analysis/stack_or_heap_enclosing.ml | 2 +- src/ocaml/merlin_specific/browse_raw.ml | 4 +- src/ocaml/merlin_specific/tast_helper.ml | 15 +- src/ocaml/parsing/pprintast.ml | 10 +- src/ocaml/preprocess/parser_printer.ml | 4 +- src/ocaml/preprocess/parser_raw.ml | 28387 ++++++++++----------- src/ocaml/preprocess/parser_raw.mli | 99 +- src/ocaml/preprocess/parser_raw.mly | 13 +- src/ocaml/preprocess/parser_recover.ml | 8894 ++++--- src/ocaml/typing/env.ml | 216 +- src/ocaml/typing/mtype.ml | 2 +- src/ocaml/typing/persistent_env.ml | 2 +- src/ocaml/typing/typecore.ml | 11 +- src/ocaml/typing/typemod.ml | 5 +- 15 files changed, 18737 insertions(+), 18929 deletions(-) diff --git a/src/analysis/construct.ml b/src/analysis/construct.ml index 3e1a05c16..016a32bb2 100644 --- a/src/analysis/construct.ml +++ b/src/analysis/construct.ml @@ -51,7 +51,7 @@ module Util = struct (Predef.path_bool, construct "false"); (Predef.path_unit, construct "()"); (Predef.path_exn, ident "exn"); - (Predef.path_array, Ast_helper.Exp.array []); + (Predef.path_array, Ast_helper.Exp.array Mutable []); (Predef.path_nativeint, constant (Pconst_integer ("0", Some 'n'))); (Predef.path_int32, constant (Pconst_integer ("0", Some 'l'))); (Predef.path_int64, constant (Pconst_integer ("0", Some 'L'))); diff --git a/src/analysis/stack_or_heap_enclosing.ml b/src/analysis/stack_or_heap_enclosing.ml index a5d309a8a..bb98490e5 100644 --- a/src/analysis/stack_or_heap_enclosing.ml +++ b/src/analysis/stack_or_heap_enclosing.ml @@ -105,7 +105,7 @@ let from_nodes ~lsp_compat ~pos ~path = | None, Record_unboxed -> ret_no_alloc "unboxed record" | None, (Record_boxed _ | Record_float | Record_ufloat | Record_mixed _) -> ret Unexpected_no_alloc) - | Texp_field (_, _, _, boxed_or_unboxed) -> ( + | Texp_field (_, _, _, boxed_or_unboxed, _) -> ( match boxed_or_unboxed with | Boxing (alloc_mode, _) -> ret_alloc alloc_mode.mode | Non_boxing _ -> None) diff --git a/src/ocaml/merlin_specific/browse_raw.ml b/src/ocaml/merlin_specific/browse_raw.ml index 0783fa41c..847d0df0f 100644 --- a/src/ocaml/merlin_specific/browse_raw.ml +++ b/src/ocaml/merlin_specific/browse_raw.ml @@ -389,7 +389,7 @@ let rec of_expression_desc loc = function | Texp_lazy e | Texp_setinstvar (_, _, _, e) -> of_expression e | Texp_record { fields; extended_expression } -> - option_fold of_expression extended_expression + option_fold (fun (e, _) -> of_expression e) extended_expression ** let fold_field = function | _, Typedtree.Kept _ -> id_fold @@ -397,7 +397,7 @@ let rec of_expression_desc loc = function of_exp_record_field e lid_loc desc ** of_expression e in array_fold fold_field fields - | Texp_field (e, lid_loc, lbl, _) -> + | Texp_field (e, lid_loc, lbl, _, _) -> of_expression e ** of_exp_record_field e lid_loc lbl | Texp_setfield (e1, _, lid_loc, lbl, e2) -> of_expression e1 ** of_expression e2 ** of_exp_record_field e1 lid_loc lbl diff --git a/src/ocaml/merlin_specific/tast_helper.ml b/src/ocaml/merlin_specific/tast_helper.ml index 58120253f..78e7d62f6 100644 --- a/src/ocaml/merlin_specific/tast_helper.ml +++ b/src/ocaml/merlin_specific/tast_helper.ml @@ -4,9 +4,10 @@ module Pat = struct let pat_extra = [] let pat_attributes = [] + (* TODO: ask anton about changes here *) let constant ?(loc = Location.none) pat_env pat_type c = let pat_desc = Tpat_constant c in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env } + { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } let var ?loc uid pat_env pat_type str = let pat_loc = @@ -18,26 +19,26 @@ module Pat = struct let pat_desc = Tpat_var (Ident.create_local str.Asttypes.txt, str, uid, mode) in - { pat_desc; pat_loc; pat_extra; pat_attributes; pat_type; pat_env } + { pat_desc; pat_loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } let record ?(loc = Location.none) pat_env pat_type lst closed_flag = let pat_desc = Tpat_record (lst, closed_flag) in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env } + { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } let tuple ?(loc = Location.none) pat_env pat_type lst = let pat_desc = Tpat_tuple lst in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env } + { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } let construct ?(loc = Location.none) pat_env pat_type lid cstr_desc args locs_coretype = let pat_desc = Tpat_construct (lid, cstr_desc, args, locs_coretype) in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env } + { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } let pat_or ?(loc = Location.none) ?row_desc pat_env pat_type p1 p2 = let pat_desc = Tpat_or (p1, p2, row_desc) in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env } + { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } let variant ?(loc = Location.none) pat_env pat_type lbl sub rd = let pat_desc = Tpat_variant (lbl, sub, rd) in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env } + { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } end diff --git a/src/ocaml/parsing/pprintast.ml b/src/ocaml/parsing/pprintast.ml index dfd578a28..0b465f8fe 100644 --- a/src/ocaml/parsing/pprintast.ml +++ b/src/ocaml/parsing/pprintast.ml @@ -259,11 +259,11 @@ let constant f = function paren (first_is '-' i) (fun f (i,m) -> pp f "%s%c" i m) f (i,m) | Pconst_unboxed_float (x, None) -> paren (first_is '-' x) (fun f -> pp f "%s") f - (Misc.format_as_unboxed_literal x) + (Misc_stdlib.format_as_unboxed_literal x) | Pconst_unboxed_float (x, Some suffix) | Pconst_unboxed_integer (x, suffix) -> paren (first_is '-' x) (fun f (x, suffix) -> pp f "%s%c" x suffix) f - (Misc.format_as_unboxed_literal x, suffix) + (Misc_stdlib.format_as_unboxed_literal x, suffix) (* trailing space*) let mutable_flag f = function @@ -2301,10 +2301,11 @@ let class_type = print_reset_with_maximal_extensions class_type let class_signature = print_reset_with_maximal_extensions class_signature let structure_item = print_reset_with_maximal_extensions structure_item let signature_item = print_reset_with_maximal_extensions signature_item +let signature_items = print_reset_with_maximal_extensions signature_items let binding = print_reset_with_maximal_extensions binding let payload = print_reset_with_maximal_extensions payload let type_declaration = print_reset_with_maximal_extensions type_declaration -let jkind = print_reset_with_maximal_extensions jkind +let jkind_annotation = print_reset_with_maximal_extensions jkind_annotation (* Added in merlin *) let case_list = print_reset_with_maximal_extensions case_list @@ -2374,6 +2375,9 @@ let prepare_error err = | Missing_unboxed_literal_suffix loc -> Location.errorf ~loc "Syntax error: Unboxed integer literals require width suffixes." + | Malformed_instance_identifier loc -> + Location.errorf ~loc + "Syntax error: Unexpected in module instance" let () = Location.register_error_of_exn diff --git a/src/ocaml/preprocess/parser_printer.ml b/src/ocaml/preprocess/parser_printer.ml index be325d798..8b6c19adc 100644 --- a/src/ocaml/preprocess/parser_printer.ml +++ b/src/ocaml/preprocess/parser_printer.ml @@ -350,9 +350,9 @@ let print_symbol = function | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_label_declaration_semi) -> "label_declaration_semi" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_label_declaration) -> "label_declaration" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_kind_abbreviation_decl) -> "kind_abbreviation_decl" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_jkind_desc) -> "jkind_desc" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_jkind_constraint) -> "jkind_constraint" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_jkind_annotation) -> "jkind_annotation" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_jkind) -> "jkind" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_item_extension) -> "item_extension" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_interface) -> "interface" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_index_mod) -> "index_mod" @@ -750,9 +750,9 @@ let print_value (type a) : a MenhirInterpreter.symbol -> a -> string = function | MenhirInterpreter.N MenhirInterpreter.N_label_declaration_semi -> (fun _ -> "label_declaration_semi") | MenhirInterpreter.N MenhirInterpreter.N_label_declaration -> (fun _ -> "label_declaration") | MenhirInterpreter.N MenhirInterpreter.N_kind_abbreviation_decl -> (fun _ -> "kind_abbreviation_decl") + | MenhirInterpreter.N MenhirInterpreter.N_jkind_desc -> (fun _ -> "jkind_desc") | MenhirInterpreter.N MenhirInterpreter.N_jkind_constraint -> (fun _ -> "jkind_constraint") | MenhirInterpreter.N MenhirInterpreter.N_jkind_annotation -> (fun _ -> "jkind_annotation") - | MenhirInterpreter.N MenhirInterpreter.N_jkind -> (fun _ -> "jkind") | MenhirInterpreter.N MenhirInterpreter.N_item_extension -> (fun _ -> "item_extension") | MenhirInterpreter.N MenhirInterpreter.N_interface -> (fun _ -> "interface") | MenhirInterpreter.N MenhirInterpreter.N_index_mod -> (fun _ -> "index_mod") diff --git a/src/ocaml/preprocess/parser_raw.ml b/src/ocaml/preprocess/parser_raw.ml index 45c8c1c2a..e5cede8e2 100644 --- a/src/ocaml/preprocess/parser_raw.ml +++ b/src/ocaml/preprocess/parser_raw.ml @@ -17,7 +17,7 @@ module MenhirBasics = struct | UNIQUE | UNDERSCORE | UIDENT of ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) # 23 "src/ocaml/preprocess/parser_raw.ml" ) @@ -29,7 +29,7 @@ module MenhirBasics = struct | THEN | STRUCT | STRING of ( -# 1085 "src/ocaml/preprocess/parser_raw.mly" +# 1129 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) # 35 "src/ocaml/preprocess/parser_raw.ml" ) @@ -43,12 +43,12 @@ module MenhirBasics = struct | RBRACKET | RBRACE | QUOTED_STRING_ITEM of ( -# 1090 "src/ocaml/preprocess/parser_raw.mly" +# 1134 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) # 49 "src/ocaml/preprocess/parser_raw.ml" ) | QUOTED_STRING_EXPR of ( -# 1087 "src/ocaml/preprocess/parser_raw.mly" +# 1131 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) # 54 "src/ocaml/preprocess/parser_raw.ml" ) @@ -56,7 +56,7 @@ module MenhirBasics = struct | QUESTION | PRIVATE | PREFIXOP of ( -# 1068 "src/ocaml/preprocess/parser_raw.mly" +# 1112 "src/ocaml/preprocess/parser_raw.mly" (string) # 62 "src/ocaml/preprocess/parser_raw.ml" ) @@ -66,7 +66,7 @@ module MenhirBasics = struct | PERCENT | OR | OPTLABEL of ( -# 1061 "src/ocaml/preprocess/parser_raw.mly" +# 1105 "src/ocaml/preprocess/parser_raw.mly" (string) # 72 "src/ocaml/preprocess/parser_raw.ml" ) @@ -87,12 +87,12 @@ module MenhirBasics = struct | LPAREN | LOCAL | LIDENT of ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) # 93 "src/ocaml/preprocess/parser_raw.ml" ) | LETOP of ( -# 1019 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string) # 98 "src/ocaml/preprocess/parser_raw.ml" ) @@ -113,41 +113,41 @@ module MenhirBasics = struct | LBRACE | LAZY | LABEL of ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) # 119 "src/ocaml/preprocess/parser_raw.ml" ) | KIND_OF | KIND_ABBREV | INT of ( -# 1023 "src/ocaml/preprocess/parser_raw.mly" +# 1067 "src/ocaml/preprocess/parser_raw.mly" (string * char option) # 126 "src/ocaml/preprocess/parser_raw.ml" ) | INITIALIZER | INHERIT | INFIXOP4 of ( -# 1017 "src/ocaml/preprocess/parser_raw.mly" +# 1061 "src/ocaml/preprocess/parser_raw.mly" (string) # 133 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP3 of ( -# 1016 "src/ocaml/preprocess/parser_raw.mly" +# 1060 "src/ocaml/preprocess/parser_raw.mly" (string) # 138 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP2 of ( -# 1015 "src/ocaml/preprocess/parser_raw.mly" +# 1059 "src/ocaml/preprocess/parser_raw.mly" (string) # 143 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP1 of ( -# 1014 "src/ocaml/preprocess/parser_raw.mly" +# 1058 "src/ocaml/preprocess/parser_raw.mly" (string) # 148 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP0 of ( -# 1011 "src/ocaml/preprocess/parser_raw.mly" +# 1055 "src/ocaml/preprocess/parser_raw.mly" (string) # 153 "src/ocaml/preprocess/parser_raw.ml" ) @@ -156,17 +156,17 @@ module MenhirBasics = struct | IF | HASH_SUFFIX | HASH_INT of ( -# 1024 "src/ocaml/preprocess/parser_raw.mly" +# 1068 "src/ocaml/preprocess/parser_raw.mly" (string * char option) # 162 "src/ocaml/preprocess/parser_raw.ml" ) | HASH_FLOAT of ( -# 998 "src/ocaml/preprocess/parser_raw.mly" +# 1042 "src/ocaml/preprocess/parser_raw.mly" (string * char option) # 167 "src/ocaml/preprocess/parser_raw.ml" ) | HASHOP of ( -# 1081 "src/ocaml/preprocess/parser_raw.mly" +# 1125 "src/ocaml/preprocess/parser_raw.mly" (string) # 172 "src/ocaml/preprocess/parser_raw.ml" ) @@ -182,7 +182,7 @@ module MenhirBasics = struct | FUN | FOR | FLOAT of ( -# 997 "src/ocaml/preprocess/parser_raw.mly" +# 1041 "src/ocaml/preprocess/parser_raw.mly" (string * char option) # 188 "src/ocaml/preprocess/parser_raw.ml" ) @@ -198,7 +198,7 @@ module MenhirBasics = struct | DOWNTO | DOTTILDE | DOTOP of ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) # 204 "src/ocaml/preprocess/parser_raw.ml" ) @@ -207,14 +207,14 @@ module MenhirBasics = struct | DOT | DONE | DOCSTRING of ( -# 1107 "src/ocaml/preprocess/parser_raw.mly" +# 1151 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) # 213 "src/ocaml/preprocess/parser_raw.ml" ) | DO | CONSTRAINT | COMMENT of ( -# 1106 "src/ocaml/preprocess/parser_raw.mly" +# 1150 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) # 220 "src/ocaml/preprocess/parser_raw.ml" ) @@ -226,7 +226,7 @@ module MenhirBasics = struct | COLON | CLASS | CHAR of ( -# 975 "src/ocaml/preprocess/parser_raw.mly" +# 1019 "src/ocaml/preprocess/parser_raw.mly" (char) # 232 "src/ocaml/preprocess/parser_raw.ml" ) @@ -241,7 +241,7 @@ module MenhirBasics = struct | ASSERT | AS | ANDOP of ( -# 1020 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string) # 247 "src/ocaml/preprocess/parser_raw.ml" ) @@ -373,21 +373,35 @@ let neg_string f = else "-" ^ f let mkuminus ~oploc name arg = - match name, arg.pexp_desc with - | "-", Pexp_constant(Pconst_integer (n,m)) -> - Pexp_constant(Pconst_integer(neg_string n,m)), arg.pexp_attributes - | ("-" | "-."), Pexp_constant(Pconst_float (f, m)) -> - Pexp_constant(Pconst_float(neg_string f, m)), arg.pexp_attributes - | _ -> - Pexp_apply(mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] + let result = + match arg.pexp_desc with + | Pexp_constant const -> begin + match name, const with + | "-", Pconst_integer (n, m) -> + Some (Pconst_integer (neg_string n, m)) + | "-", Pconst_unboxed_integer (n, m) -> + Some (Pconst_unboxed_integer (neg_string n, m)) + | ("-" | "-."), Pconst_float (f, m) -> + Some (Pconst_float (neg_string f, m)) + | ("-" | "-."), Pconst_unboxed_float (f, m) -> + Some (Pconst_unboxed_float (neg_string f, m)) + | _, _ -> None + end + | _ -> None + in + match result with + | Some desc -> Pexp_constant desc, arg.pexp_attributes + | None -> + Pexp_apply (mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] let mkuplus ~oploc name arg = let desc = arg.pexp_desc in match name, desc with - | "+", Pexp_constant(Pconst_integer _) - | ("+" | "+."), Pexp_constant(Pconst_float _) -> desc, arg.pexp_attributes + | "+", Pexp_constant (Pconst_integer _ | Pconst_unboxed_integer _) + | ("+" | "+."), Pexp_constant (Pconst_float _ | Pconst_unboxed_float _) -> + desc, arg.pexp_attributes | _ -> - Pexp_apply(mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] + Pexp_apply (mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg]), [] let mk_attr ~loc name payload = Builtin_attributes.(register_attr Parser name); @@ -456,17 +470,14 @@ let exclave_extension loc = let mkexp_exclave ~loc ~kwd_loc exp = ghexp ~loc (Pexp_apply(exclave_extension (make_loc kwd_loc), [Nolabel, exp])) -let is_curry_attr attr = - attr.attr_name.txt = Jane_syntax.Arrow_curry.curry_attr_name - let mktyp_curry typ loc = {typ with ptyp_attributes = - Jane_syntax.Arrow_curry.curry_attr loc :: typ.ptyp_attributes} + Builtin_attributes.curry_attr loc :: typ.ptyp_attributes} let maybe_curry_typ typ loc = match typ.ptyp_desc with | Ptyp_arrow _ -> - if List.exists is_curry_attr typ.ptyp_attributes then typ + if Builtin_attributes.has_curry typ.ptyp_attributes then typ else mktyp_curry typ (make_loc loc) | _ -> typ @@ -599,13 +610,15 @@ module Generic_array = struct (** An array literal with a local open, [Module.[? x; y; z ?]] (only valid in expressions) *) - let to_desc (open_ : string) (close : string) array t = + let to_desc (open_ : string) (close : string) mut t = + let array elts = Pexp_array (mut, elts) in match t with | Simple x -> Simple.to_ast open_ close array x | Opened_literal (od, startpos, endpos, elts) -> Pexp_open (od, mkexp ~loc:(startpos, endpos) (array elts)) - let to_expression (open_ : string) (close : string) array ~loc t = + let to_expression (open_ : string) (close : string) mut ~loc t = + let array ~loc elts = mkexp ~loc (Pexp_array (mut, elts)) in match t with | Simple x -> Simple.to_ast open_ close (array ~loc) x | Opened_literal (od, startpos, endpos, elts) -> @@ -614,16 +627,11 @@ module Generic_array = struct module Pattern = struct type t = pattern Simple.t - let to_ast open_ close array (t : t) = - Simple.to_ast open_ close array t + let to_ast open_ close mut (t : t) = + Simple.to_ast open_ close (fun elts -> Ppat_array (mut, elts)) t end end -let ppat_iarray loc elts = - Jane_syntax.Immutable_arrays.pat_of - ~loc:(make_loc loc) - (Iapat_immutable_array elts) - let expecting_loc (loc : Location.t) (nonterm : string) = raise_error Syntaxerr.(Error(Expecting(loc, nonterm))) let expecting (loc : Lexing.position * Lexing.position) nonterm = @@ -680,14 +688,11 @@ type ('dot,'index) array_family = { } let bigarray_untuplify exp = - match Jane_syntax.Expression.of_ast exp with - | Some _ -> [exp] - | None -> - match exp.pexp_desc with - | Pexp_tuple explist when - List.for_all (function None, _ -> true | _ -> false) explist -> - List.map (fun (_, e) -> e) explist - | _ -> [exp] + match exp.pexp_desc with + | Pexp_tuple explist when + List.for_all (function None, _ -> true | _ -> false) explist -> + List.map (fun (_, e) -> e) explist + | _ -> [exp] (* Immutable array indexing is a regular operator, so it doesn't need a special case here *) @@ -716,7 +721,7 @@ let builtin_arraylike_index loc paren_kind index = match paren_kind with | [x] -> One, [Nolabel, x] | [x;y] -> Two, [Nolabel, x; Nolabel, y] | [x;y;z] -> Three, [Nolabel, x; Nolabel, y; Nolabel, z] - | coords -> Many, [Nolabel, ghexp ~loc (Pexp_array coords)] + | coords -> Many, [Nolabel, ghexp ~loc (Pexp_array (Mutable, coords))] let builtin_indexing_operators : (unit, expression) array_family = { index = builtin_arraylike_index; name = builtin_arraylike_name } @@ -744,7 +749,7 @@ let user_index loc _ index = ([a.%[1;2;3;4]]) *) match index with | [a] -> One, [Nolabel, a] - | l -> Many, [Nolabel, mkexp ~loc (Pexp_array l)] + | l -> Many, [Nolabel, mkexp ~loc (Pexp_array (Mutable, l))] let user_indexing_operators: (Longident.t option * string, expression list) array_family @@ -796,11 +801,7 @@ let pat_of_label lbl = let mk_newtypes ~loc newtypes exp = let mk_one (name, jkind) exp = - match jkind with - | None -> ghexp ~loc (Pexp_newtype (name, exp)) - | Some jkind -> - Jane_syntax.Layouts.expr_of ~loc:(ghost_loc loc) - (Lexp_newtype (name, jkind, exp)) + ghexp ~loc (Pexp_newtype (name, jkind, exp)) in let exp = List.fold_right mk_one newtypes exp in (* outermost expression should have non-ghost location *) @@ -814,12 +815,7 @@ let wrap_type_annotation ~loc ?(typloc=loc) ~modes newtypes core_type body = let exp = mkexp_with_modes ~loc ~exp:body ~cty:(Some core_type) ~modes in let exp = mk_newtypes newtypes exp in let inner_type = Typ.varify_constructors (List.map fst newtypes) core_type in - let ltyp = - Jane_syntax.Layouts.Ltyp_poly { bound_vars = newtypes; inner_type } - in - (exp, - Jane_syntax.Layouts.type_of - ~loc:(Location.ghostify (make_loc typloc)) ltyp) + (exp, ghtyp ~loc:typloc (Ptyp_poly (newtypes, inner_type))) let wrap_exp_attrs ~loc body (ext, attrs) = let ghexp = ghexp ~loc in @@ -867,7 +863,9 @@ let wrap_mkstr_ext ~loc (item, ext) = let wrap_sig_ext ~loc body ext = match ext with | None -> body - | Some id -> ghsig ~loc (Psig_extension ((id, PSig [body]), [])) + | Some id -> + ghsig ~loc (Psig_extension ((id, PSig {psg_items=[body]; + psg_modalities=[]; psg_loc=make_loc loc}), [])) let wrap_mksig_ext ~loc (item, ext) = wrap_sig_ext ~loc (mksig ~loc item) ext @@ -1090,6 +1088,47 @@ let package_type_of_module_type pmty = err pmty.pmty_loc Neither_identifier_nor_with_type ; (Location.mkloc (Lident "_") pmty.pmty_loc, [], []) +(* There's no dedicated syntax for module instances. Functor application + syntax is translated into a module instance expression. +*) +let pmod_instance : module_expr -> module_expr_desc = + let raise_malformed_instance loc = + raise (Syntaxerr.Error (Malformed_instance_identifier loc)) + in + let head_of_ident (lid : Longident.t Location.loc) = + match lid with + | { txt = Lident s; loc = _ } -> s + | { txt = _; loc } -> raise_malformed_instance loc + in + let gather_args mexpr = + let rec loop mexpr acc = + match mexpr with + | { pmod_desc = Pmod_apply (f, v); _ } -> + (match f.pmod_desc with + | Pmod_apply (f, n) -> loop f ((n, v) :: acc) + | _ -> raise_malformed_instance f.pmod_loc) + | head -> head, acc + in + loop mexpr [] + in + let string_of_module_expr mexpr = + match mexpr.pmod_desc with + | Pmod_ident i -> head_of_ident i + | _ -> raise_malformed_instance mexpr.pmod_loc + in + let rec instance_of_module_expr mexpr = + match gather_args mexpr with + | { pmod_desc = Pmod_ident i; _ }, args -> + let head = head_of_ident i in + let args = List.map instances_of_arg_pair args in + { pmod_instance_head = head; pmod_instance_args = args } + | { pmod_loc; _ }, _ -> raise_malformed_instance pmod_loc + and instances_of_arg_pair (n, v) = + string_of_module_expr n, instance_of_module_expr v + in + fun mexpr -> Pmod_instance (instance_of_module_expr mexpr) +;; + let mk_directive_arg ~loc k = { pdira_desc = k; pdira_loc = make_loc loc; @@ -1118,18 +1157,16 @@ let with_sign sign num = let unboxed_int sloc int_loc sign (n, m) = match m with - | Some m -> - Constant.unboxed (Integer (with_sign sign n, m)) + | Some m -> Pconst_unboxed_integer (with_sign sign n, m) | None -> if Language_extension.is_enabled unboxed_literals_extension then (raise_error Syntaxerr.(Error(Missing_unboxed_literal_suffix (make_loc int_loc))); - Constant.unboxed (Integer (with_sign sign n, 'l'))) + Pconst_unboxed_integer (with_sign sign n, 'l')) else (not_expecting sloc "line number directive"; - Constant.unboxed (Integer (with_sign sign n, 'l'))) + Pconst_unboxed_integer (with_sign sign n, 'l')) -let unboxed_float sign (f, m) = - Constant.unboxed (Float (with_sign sign f, m)) +let unboxed_float sign (f, m) = Pconst_unboxed_float (with_sign sign f, m) (* Invariant: [lident] must end with an [Lident] that ends with a ["#"]. *) let unboxed_type sloc lident tys = @@ -1147,7 +1184,7 @@ let merloc startpos ?endpos x = { x with pexp_attributes = attr :: x.pexp_attributes } -# 1151 "src/ocaml/preprocess/parser_raw.ml" +# 1188 "src/ocaml/preprocess/parser_raw.ml" module Tables = struct @@ -1737,22 +1774,22 @@ module Tables = struct Obj.repr () and default_reduction = - (16, "\000\000\000\000\000\000\004\b\004\007\004\006\004\005\004\004\003\214\004\003\004\002\004\001\004\000\003\255\003\254\003\253\003\252\003\251\003\250\003\249\003\248\003\247\003\246\003\245\003\244\003\243\003\242\003\241\003\240\003\213\003\239\003\238\003\237\003\236\003\235\003\234\003\233\003\232\003\231\003\230\003\229\003\228\003\227\003\226\003\225\003\224\003\223\003\222\003\221\003\220\003\219\003\218\003\217\003\216\003\215\000\000\000\000\000+\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002p\002X\002m\002l\002k\002q\002u\002i\002o\002n\002Y\002s\002j\002h\002g\002f\002c\002a\002t\002r\000\000\000\000\000\000\001+\000\000\000\000\002\\\000\000\000\000\000\000\002^\000\000\000\000\000\000\002`\002y\002v\002b\002e\002d\002Z\002w\002x\000\000\004\225\004\226\000\000\000\000\000\000\000\000\000\000\002=\002?\002>\000'\001\240\000\155\000\000\001%\001&\000\000\000\000\000\000\002\150\002\149\000\000\000\000\000\000\0013\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\000\000\000\000\000\002\218\0011\000\000\000(\000\000\000\000\000\000\003B\000\000\000\000\000\000\004\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\004\215\000\000\000\000\004\217\000\000\004\219\000\000\004\216\004\218\000\000\000\000\000\000\000\000\002\163\000\000\001\192\000\000\000\000\000\000\000\000\002\162\002\161\000\000\004\207\000\000\003/\003.\000\000\000\000\004\204\000\000\000\000\004\203\000\000\000\000\000\000\0017\000\000\000\000\000\000\000v\000\000\000\000\000t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\164\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002}\000\000\000\000\000\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\000\000\000\000\002\005\000\000\001\241\002\004\000\000\001\239\000`\000\"\000\031\001\252\001\250\000\028\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\025\000\000\000\000\000\000\000\000\004 \000\000\000\000\001\021\000\000\000\000\000\000\000$\000!\000\030\000\000\000\000\001\253\001\251\004\202\004\210\000\000\000\000\000\000\003<\000\000\000\000\000\000\003;\000\000\000\000\000\000\000\000\003\031\000\000\000\000\000\000\000\000\000\000\003 \000\000\000\018\000\137\000\158\000\138\000\027\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\004#\000\000\000\000\000\000\000\000\000\000\000\000\004$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\000 \000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\"\000\000\000\000\000\000\000\135\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\020\000\000\000\139\000\000\000\000\000\000\003?\000\000\000\000\000\000\003>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\020\000\000\000\000\000\000\000\000\000\000\000\000\004\031\000\000\000\000\000\000\000\000\000\000\000%\000\000\000\000\000\000\000\149\000\000\000\000\000\000\000\148\000\000\000\000\0020\003F\003*\000\000\000\142\000\000\003+\000\000\000\000\002z\000\000\000\000\000\000\000\000\004\175\000\000\004\176\000\000\000\000\000\141\000\000\000\000\000\000\000\143\000\000\000\144\000\000\000\146\000\000\000\000\000\147\003\028\003\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\004\003\003\004\236\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001q\000\000\003x\003s\003t\003y\000\000\003v\003q\003r\003w\000\000\000\000\000\000\000\000\000\000\002\022\002\021\000\000\003\198\000\000\000\000\000\000\000\000\000\000\002\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\000\000\000\000\001.\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\254\000\000\000\000\002\001\001\255\002\006\000C\003\146\004\174\004\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\134\001\133\000\000\000\000\000\000\000s\000\000\001D\000\000\003z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\234\000\000\004\209\003\205\000\000\000\000\004\221\004\222\000\000\000\000\000\000\003\204\004\237\000u\004\235\003u\003\194\004\227\003p\003\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001j\001i\000\000\001h\003\197\000\000\000\000\000\000\000\000\003\201\003\212\003\203\000\000\000\000\000\000\003\208\000\000\000\000\000\000\002\182\002\180\002\177\002\181\002\176\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\001a\000\000\001`\003\210\003\202\000}\003\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0025\000\000\000\000\002\184\000\000\000\000\000|\000\000\003\196\000\000\000\000\000\000\000\000\000\000\000\000\001f\001e\000\000\001d\003\007\000\000\000\000\000\000\003\211\000\000\000\000\000\000\002\178\002\183\000\000\000{\000\000\003\209\000\000\003\207\000\000\003{\000\000\000\000\003S\003\206\003\b\000\000\000\000\003~\000\000\002\186\000\000\000\000\000\000\000\000\002\127\001\219\001\220\003}\000\000\003|\003\128\000\000\003\127\000\000\001\132\003\016\002\192\000\000\000\000\000\000\002\188\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\001u\000\000\001t\003\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\130\001\129\000\000\001\128\003\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\001}\000\000\001|\003\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\001C\000\000\001A\001?\000\000\000\000\001R\000\000\001Q\001S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\024\000\000\000\000\002\029\000\000\000\000\000\000\000\000\000\000\000\000\004\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\206\000\000\000\000\000\000\000\000\000\000\002\028\000\000\000\000\000\000\001\249\002%\001\248\002!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003(\000\000\000\000\003)\000\000\003\023\000\000\000\000\002\027\000\000\001\023\000\000\000\000\002\014\000\000\000\000\002\018\000\000\002\152\000\000\000\000\002\151\002\017\002\015\000\000\002\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\173\000\000\001\172\001\171\000\000\001\174\000\000\001\167\000\000\000\000\000\000\000\000\000\000\001\166\000\000\001\164\001\162\000\000\000\000\000\000\001O\000\000\000\000\001N\002\193\001P\000\000\000\000\000\000\000\000\000\000\000\000\0022\000\000\000\000\000\000\001\r\0023\000\000\001\012\000\000\0021\002A\000\000\000\000\000\000\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001[\000\000\001Y\000\000\001Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\\\000\000\000\000\001W\000\000\000\000\000\000\000\000\001]\000\000\000\000\001V\000\000\001U\001T\001X\000\000\001\014\003\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\245\002\244\000\000\000\000\000q\003\150\002\002\000r\003\154\003\152\000\000\000\000\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\182\003!\000\000\000\000\000\000\000\000\000\000\001H\001G\000\000\001I\000\000\000\000\000\000\003\160\000\000\000\000\000\000\003\135\000\000\000\000\000\000\000\000\000\000\000\000\002\235\002\234\000\000\000\000\004\228\003\163\003\151\003\187\000\000\000\000\000\000\000\000\000\000\003#\000\000\000\000\000\000\000\000\000\237\003W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\000\184\000\183\000\000\000\000\000\000\001\019\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\240\002\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\011\001\155\000\000\002\146\000\000\000\000\000\163\004\012\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\000\000\000\000\001\149\000\000\000\000\000\000\000\000\001\144\000\000\000\000\001\145\000\000\000\000\001\138\000\000\000\000\001\139\001\137\000\000\000\000\001\140\000\000\000\000\000\000\000\000\001\152\000\000\000\000\001\153\000\000\000\000\001\151\000\000\000\000\001\150\000\000\000\000\000\000\000\000\000\000\000\000\001z\001y\000\000\001x\003\r\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\000\000\000\000\001\147\000\000\000\000\001\141\000\000\000\000\001\142\001\154\000\000\000\000\001\143\001\135\000\000\000\000\001\198\000\022\001\157\000\000\000\000\000\000\003\137\000\000\000\000\003\136\000\000\000\000\000\000\000\000\003\139\000\000\000\000\003L\000\000\000\000\003\143\000\000\000\000\003\141\003\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\026\003\025\000\181\003M\000\000\003\138\000\000\000\000\003\142\000\000\000\000\003\140\001\011\000\000\000\150\000\151\000\000\000\000\000\000\000\000\000\178\001\177\000\000\000\000\001\178\000\000\000\000\000\238\000\000\001\180\001\179\000\000\000\000\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\003'\003&\000\000\003\178\003\022\003\021\003\186\000\000\003\185\000\000\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\176\003\171\000\000\003\170\000\000\000\000\003\175\000\000\003\180\000\000\000\000\000\000\000\000\000\000\003\174\000\000\003\179\000\000\000\000\003\173\000\000\000\000\003\159\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\003V\002\215\000\000\003\167\000\000\000\000\000\000\002\003\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\001\222\000\000\001\223\001\221\003\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\144\000\000\000\000\000\000\000\000\000\000\000\000\002\250\002\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\130\000\000\003\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\000\000\000\000\003\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003P\003\156\000\000\003\155\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\172\000\000\000\000\003\188\000\000\000\000\000\000\000\000\000\000\003\191\003\169\000\000\003\168\000\000\000\000\003\190\000\168\000\000\000\000\000\000\000\000\000\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\165\000\000\002\t\000\000\000\000\000\000\000w\000\000\000\000\000x\000\000\000\000\000\000\000\000\002)\002*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0027\002\148\000\000\000\000\000\000\001:\000\000\000\000\000\131\000\000\001=\001;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\166\000y\000\000\000\000\002\214\000\000\000\000\001\156\002\144\000\000\001L\000\000\000\000\001K\001M\001\175\000\000\000\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\003\193\003\184\000\000\003\183\000\000\000\000\003\192\003\153\000\000\000\000\000\000\000\000\003\147\000\000\000\000\003\148\000\000\003\132\000\000\003\133\000\000\003\134\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\002\154\000\000\000\000\002\160\000\000\000\000\002\156\000\000\000\000\002\158\000\000\002\153\000\000\000\000\002\159\000\000\000\000\002\155\000\000\000\000\002\157\000\000\002U\000\000\000\000\000\000\002T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\188\004\166\000\000\000\000\004\165\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\0018\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002C\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\n\000\000\000\000\003Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002W\000\000\000\000\000\000\002V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002$\000\000\000\000\000\000\000\000\000\000\002\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\190\003g\000\000\000\000\000\000\003e\000\000\000\000\000\000\003d\000\000\002\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\240\000\000\000\000\0030\000\000\000\161\000\000\0031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000G\000\000\000\000\000\000\000\000\002/\000\000\002.\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\002\212\000\000\002\211\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\000\000\000\000Q\000O\000\000\000S\000\000\000\000\000\000\000\000\000\000\000I\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000R\000\000\000M\000N\000\000\001\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\186\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\\\000\000\000^\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\184\003k\003]\000\000\003c\003^\003j\003i\003h\003f\001\201\003n\000\000\003[\000\000\000\000\000\000\000\000\000\000\003m\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\001\194\002\129\003_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002N\002J\000\000\000\000\000\000\001\031\000\000\000\000\002\221\003\017\000\000\000\000\001\196\002\219\002\220\000\000\000\000\000\000\000\000\000\000\002Q\002M\002I\000\000\000\000\001 \000\000\000\000\002P\002L\002H\002F\003`\003\\\003l\001\200\002\196\003Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002'\000\000\000\000\000\000\004\231\000\000\000\000\004\233\000\000\0008\000\000\000\000\004\243\000\000\004\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\230\000\000\000\000\004\232\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\237\000\000\000\000\001\235\001\233\000\000\0009\000\000\000\000\004\246\000\000\004\245\000\000\000\000\000\000\001\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\236\000\000\000\000\001\234\001\232\000\000\000\000\000\000\000;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000X\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\000\000W\000\000\0003\001\160\000\000\000B\000/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\158\000\000\000V\000\000\000\000\000Y\000\000\000\000\002\131\000\000\0007\000\000\000\000\000\000\0006\000\000\000\000\000\000\000:\000\000\000Z\000\000\000<\000=\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\004\169\004\160\000\000\000\000\004\164\004\t\004\159\004\168\004\167\001\205\000\000\004\172\000\000\004\157\000\000\000\000\000\000\000\000\004\171\000\000\004\161\004\158\004\170\002\195\000\000\000\000\004\155\000,\004\154\000\000\000\000\000\159\000\000\001-\000\000\000\000\001\204\001\203\000\000\002\204\001$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156\000\000\004\163\002\226\002\227\002\222\002\224\002\223\002\225\000\000\000\000\000\000\000\157\000\000\000\000\000\000\003\017\000\000\001#\000\000\000\000\000\000\000\000\004\162\000\000\002\012\000\000\000\000\003\199\000\000\001p\003\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001n\001m\000\000\001l\003\t\000\000\000\000\000D\000\000\000\000\000E\000\000\000\000\003\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\255\002\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\154\000\000\000\000\000\000\000\000\000\000\000\000\001\230\001\224\000\000\000\000\001\225\002S\000\000\002R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\000\002O\002K\000\000\002G\004\201\000\000\003\017\000\000\001\"\000\000\000\000\000\000\000\000\003b\002\230\002\228\002\229\000\000\000\000\000\000\000\000\003\017\000\000\001!\000\000\000\000\000\000\000\000\003a\000\000\002\024\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\001/\000\000\002\217\000\000\000\000\000\000\003A\000\000\000\000\000\000\0015\000\000\000)\000\000\000\000\000\000\003E\000\000\000\000\000\000\003D\000\000\000\000\000\000\000\000\000\000\004\238\000\000\000-\000\000\000\000\000\000\000\000\000\177\000\000\001'\000\001\000\000\000\000\001,\000\002\000\000\000\000\000\000\001\243\001\244\000\003\000\000\000\000\000\000\000\000\001\246\001\247\001\245\000\023\001\242\000\024\000\000\002\164\000\000\000\004\000\000\002\165\000\000\000\005\000\000\002\166\000\000\000\000\002\167\000\006\000\000\000\007\000\000\002\168\000\000\000\b\000\000\002\169\000\000\000\t\000\000\002\170\000\000\000\n\000\000\002\171\000\000\000\011\000\000\002\172\000\000\000\000\002\173\000\012\000\000\000\000\002\174\000\r\000\000\000\000\000\000\000\000\000\000\004\190\004\185\004\186\004\189\004\187\000\000\000\000\000\000\004\183\004\178\004\179\004\182\004\180\000\000\004\194\000\014\000\000\004\193\000\000\001\211\000\000\000\000\004\191\000\000\004\192\000\000\000\000\000\000\000\000\001\215\001\216\000\000\000\000\001\214\001\213\000\015\000\000\000\000\000\000\004\224\000\000\004\223") + (16, "\000\000\000\000\000\000\004\b\004\007\004\006\004\005\004\004\003\214\004\003\004\002\004\001\004\000\003\255\003\254\003\253\003\252\003\251\003\250\003\249\003\248\003\247\003\246\003\245\003\244\003\243\003\242\003\241\003\240\003\213\003\239\003\238\003\237\003\236\003\235\003\234\003\233\003\232\003\231\003\230\003\229\003\228\003\227\003\226\003\225\003\224\003\223\003\222\003\221\003\220\003\219\003\218\003\217\003\216\003\215\000\000\000\000\000+\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002p\002X\002m\002l\002k\002q\002u\002i\002o\002n\002Y\002s\002j\002h\002g\002f\002c\002a\002t\002r\000\000\000\000\000\000\001+\000\000\000\000\002\\\000\000\000\000\000\000\002^\000\000\000\000\000\000\002`\002y\002v\002b\002e\002d\002Z\002w\002x\000\000\004\225\004\226\000\000\000\000\000\000\000\000\000\000\002=\002?\002>\000'\001\240\000\155\000\000\001%\001&\000\000\000\000\000\000\002\150\002\149\000\000\000\000\000\000\0015\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\000\000\000\000\000\001/\002\218\0013\000\000\000\000\000\000\004\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0027\002\148\000\000\002\024\000\000\000\000\000\000\000\000\004\220\000\000\004\215\000\000\000\000\004\217\000\000\004\219\000\000\004\216\004\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0025\0011\000\000\002\217\000\000\001\192\000\000\000\000\000\000\000\000\000\000\002\161\000\000\004\207\000\000\003/\003.\000\000\000\000\004\204\000\000\000\000\004\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000v\000\000\000\000\000t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\164\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002}\000\000\000\000\000\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\000\000\000\000\002\005\000\000\001\241\002\004\000\000\001\239\000`\000\"\000\031\001\252\001\250\000\028\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\025\000\000\000\000\000\000\000\000\004 \000\000\000\000\001\021\000\000\000\000\000\000\000$\000!\000\030\000\000\000\000\001\253\001\251\004\202\004\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\031\000\000\000\000\000\000\000\000\000\000\003 \000\000\000\018\000\137\000\158\000\138\000\027\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\004#\000\000\000\000\000\000\000\000\000\000\000\000\004$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\000 \000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\"\000\000\000\000\000\000\000\135\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\020\000\000\000\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\020\000\000\000\000\000\000\000\000\000\000\000\000\004\031\000\000\000\000\000\000\000\000\000\000\000%\000\000\000\000\000\000\000\149\000\000\000\000\000\000\000\148\000\000\000\000\0020\003F\003*\000\000\000\142\000\000\003+\000\000\000\000\002z\000\000\000\000\000\000\000\000\004\175\000\000\004\176\000\000\000\000\000\141\000\000\000\000\000\000\000\143\000\000\000\144\000\000\000\146\000\000\000\000\000\147\003\028\003\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\004\003\003\004\236\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001q\000\000\003x\003s\003t\003y\000\000\003v\003q\003r\003w\000\000\000\000\000\000\000\000\000\000\002\022\002\021\000\000\003\198\000\000\000\000\000\000\000\000\000\000\002\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\000\000\000\000\001.\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\254\000\000\000\000\002\001\001\255\002\006\000C\003\146\004\174\004\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\134\001\133\000\000\000\000\000\000\000s\000\000\001D\000\000\003z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\234\000\000\004\209\003\205\000\000\000\000\004\221\004\222\000\000\000\000\000\000\003\204\004\237\000u\004\235\003u\003\194\004\227\003p\003\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001j\001i\000\000\001h\003\197\000\000\000\000\000\000\000\000\003\201\003\212\003\203\000\000\000\000\000\000\003\208\000\000\000\000\000\000\002\182\002\180\002\177\002\181\002\176\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\001a\000\000\001`\003\210\003\202\000}\003\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\184\000\000\000\000\000|\000\000\003\196\000\000\000\000\000\000\000\000\000\000\000\000\001f\001e\000\000\001d\003\007\000\000\000\000\000\000\003\211\000\000\000\000\000\000\002\178\002\183\000\000\000{\000\000\003\209\000\000\003\207\000\000\003{\000\000\000\000\003S\003\206\003\b\000\000\000\000\003\128\000\000\002\186\000\000\000\000\000\000\000\000\002\127\001\219\001\220\003}\000\000\003|\003\127\000\000\003~\000\000\001\132\003\016\002\192\000\000\000\000\000\000\002\188\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001v\001u\000\000\001t\003\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\130\001\129\000\000\001\128\003\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\001}\000\000\001|\003\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\001C\000\000\001A\001?\000\000\000\000\001R\000\000\001Q\001S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\024\000\000\000\000\002\029\000\000\000\000\000\000\000\000\000\000\000\000\004\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\206\000\000\000\000\000\000\000\000\000\000\002\028\000\000\000\000\000\000\001\249\002%\001\248\002!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003(\000\000\000\000\003)\000\000\003\023\000\000\000\000\002\027\000\000\001\023\000\000\000\000\002\014\000\000\000\000\002\018\000\000\002\152\000\000\000\000\002\151\002\017\002\015\000\000\002\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\173\000\000\001\172\001\171\000\000\001\174\000\000\001\167\000\000\000\000\000\000\000\000\000\000\001\166\000\000\001\164\001\162\000\000\000\000\000\000\001O\000\000\000\000\001N\002\193\001P\000\000\000\000\000\000\000\000\000\000\000\000\0022\000\000\000\000\000\000\001\r\0023\000\000\001\012\000\000\0021\002A\000\000\000\000\000\000\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001[\000\000\001Y\000\000\001Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\\\000\000\000\000\001W\000\000\000\000\000\000\000\000\001]\000\000\000\000\001V\000\000\001U\001T\001X\000\000\001\014\003\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\245\002\244\000\000\000\000\000q\003\150\002\002\000r\003\154\003\152\000\000\000\000\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\182\003!\000\000\000\000\000\000\000\000\000\000\001H\001G\000\000\001I\000\000\000\000\000\000\003\160\000\000\000\000\000\000\003\135\000\000\000\000\000\000\000\000\000\000\000\000\002\235\002\234\000\000\000\000\004\228\003\163\003\151\003\187\000\000\000\000\000\000\000\000\000\000\003#\000\000\000\000\000\000\000\000\000\237\003W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\000\184\000\183\000\000\000\000\000\000\001\019\001\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\240\002\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\011\001\155\000\000\002\146\000\000\000\000\000\163\004\012\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\000\000\000\000\001\149\000\000\000\000\000\000\000\000\001\144\000\000\000\000\001\145\000\000\000\000\001\138\000\000\000\000\001\139\001\137\000\000\000\000\001\140\000\000\000\000\000\000\000\000\001\152\000\000\000\000\001\153\000\000\000\000\001\151\000\000\000\000\001\150\000\000\000\000\000\000\000\000\000\000\000\000\001z\001y\000\000\001x\003\r\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\000\000\000\000\001\147\000\000\000\000\001\141\000\000\000\000\001\142\001\154\000\000\000\000\001\143\001\135\000\000\000\000\001\198\000\022\001\157\000\000\000\000\000\000\003\137\000\000\000\000\003\136\000\000\000\000\000\000\000\000\003\139\000\000\000\000\003L\000\000\000\000\003\143\000\000\000\000\003\141\003\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\026\003\025\000\181\003M\000\000\003\138\000\000\000\000\003\142\000\000\000\000\003\140\001\011\000\000\000\150\000\151\000\000\000\000\000\000\000\000\000\178\001\177\000\000\000\000\001\178\000\000\000\000\000\238\000\000\001\180\001\179\000\000\000\000\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\003'\003&\000\000\003\178\003\022\003\021\003\186\000\000\003\185\000\000\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\003\176\003\171\000\000\003\170\000\000\000\000\003\175\000\000\003\180\000\000\000\000\000\000\000\000\000\000\003\174\000\000\003\179\000\000\000\000\003\173\000\000\000\000\003\159\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\003V\002\215\000\000\003\167\000\000\000\000\000\000\002\003\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\001\222\000\000\001\223\001\221\003\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\144\000\000\000\000\000\000\000\000\000\000\000\000\002\250\002\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\130\000\000\003\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\000\000\000\000\003\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003P\003\156\000\000\003\155\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\172\000\000\000\000\003\188\000\000\000\000\000\000\000\000\000\000\003\191\003\169\000\000\003\168\000\000\000\000\003\190\000\168\000\000\000\000\000\000\000\000\000\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\165\000\000\002\t\000\000\000\000\000\000\000w\000\000\000\000\000x\000\000\000\000\000\000\000\000\002)\002*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001:\000\000\000\000\000\131\000\000\001=\001;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\166\000y\000\000\000\000\002\214\000\000\000\000\001\156\002\144\000\000\001L\000\000\000\000\001K\001M\001\175\000\000\000\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\003\193\003\184\000\000\003\183\000\000\000\000\003\192\003\153\000\000\000\000\000\000\000\000\003\147\000\000\000\000\003\148\000\000\003\132\000\000\003\133\000\000\003\134\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\002\154\000\000\000\000\002\160\000\000\000\000\002\156\000\000\000\000\002\158\000\000\002\153\000\000\000\000\002\159\000\000\000\000\002\155\000\000\000\000\002\157\000\000\002U\000\000\000\000\000\000\002T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\188\004\167\000\000\000\000\004\166\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002C\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\n\000\000\000\000\003Y\000\000\002\196\000\000\000\000\000\000\000\000\000\000\004\240\000\000\000\000\0030\000\000\000\161\000\000\0031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000G\000\000\000\000\000\000\000\000\002/\000\000\002.\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\002\212\000\000\002\211\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\000\000\000\000Q\000O\000\000\000S\000\000\000\000\000\000\000\000\000\000\000I\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000R\000\000\000M\000N\000\000\001\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\186\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002'\000\000\000\000\000\000\004\231\000\000\000\000\004\233\000\000\0008\000\000\000\000\004\243\000\000\004\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\230\000\000\000\000\004\232\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\237\000\000\000\000\001\235\001\233\000\000\0009\000\000\000\000\004\246\000\000\004\245\000\000\000\000\000\000\001\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\236\000\000\000\000\001\234\001\232\000\000\000\000\000\000\000;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000X\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\000\000W\000\000\0003\001\160\000\000\000B\000/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\158\000\000\000V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\\\000\000\000^\000]\000\000\000Y\000\000\000\000\002\131\000\000\0007\000\000\000\000\000\000\0006\000\000\000\000\000\000\000:\000\000\000Z\000\000\000<\000=\000\000\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\182\004\170\004\161\000\000\000\000\004\165\004\t\004\160\004\169\004\168\001\205\000\000\004\159\000\000\004\157\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\001\194\002\129\004\162\004\158\004\171\002\195\000\000\000\000\004\155\000,\004\154\000\000\000\000\000\159\000\000\001-\000\000\000\000\001\204\001\203\000\000\002\204\001$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156\000\000\001\031\000\000\004\164\002\226\002\227\002\222\002\224\002\223\002\225\000\000\000\000\000\000\000\157\000\000\001 \000\000\000\000\000\000\003\017\000\000\001#\000\000\000\000\000\000\000\000\004\163\000\000\002\012\000\000\000\000\003\199\000\000\001p\003\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001n\001m\000\000\001l\003\t\000\000\000\000\000D\000\000\000\000\000E\000\000\000\000\003\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\255\002\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\154\000\000\000\000\000\000\000\000\000\000\000\000\001\230\001\224\000\000\000\000\001\225\002S\000\000\002R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\030\000\000\000\000\000\000\000\000\000\000\000\000\002O\002K\000\000\000\000\000\000\000\000\002\221\002\219\002\220\000\000\002G\000\000\000\000\000\000\002N\002J\004\201\000\000\000\000\000\000\000\000\000\000\002Q\002M\002I\000\000\000\000\002P\002L\002H\002F\000\000\003\017\000\000\001\"\000\000\000\000\000\000\000\000\003c\002\230\002\228\002\229\000\000\000\000\000\000\000\000\003\017\000\000\001!\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\002W\000\000\000\000\000\000\002V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002$\000\000\000\000\000\000\000\000\000\000\002\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\190\003h\000\000\000\000\000\000\003f\000\000\000\000\000\000\003e\000\000\002\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\184\003l\003^\000\000\003d\003_\003k\003j\003i\003g\001\201\003]\000\000\003[\000\000\000\000\000\000\000\000\000\000\003n\000\000\003`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\001\196\003a\003\\\003m\001\200\003Z\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000(\000\000\000\000\0017\000\000\000\000\000)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\238\000\000\000-\000\000\000\000\000\000\000\000\000\177\000\000\001'\000\001\000\000\000\000\001,\000\002\000\000\000\000\000\000\001\243\001\244\000\003\000\000\000\000\000\000\000\000\001\246\001\247\001\245\000\023\001\242\000\024\000\000\002\164\000\000\000\004\000\000\002\165\000\000\000\005\000\000\002\166\000\000\000\000\002\167\000\006\000\000\000\007\000\000\002\168\000\000\000\b\000\000\002\169\000\000\000\t\000\000\002\170\000\000\000\n\000\000\002\171\000\000\000\011\000\000\002\172\000\000\000\000\002\173\000\012\000\000\000\000\002\174\000\r\000\000\000\000\000\000\000\000\000\000\004\190\004\185\004\186\004\189\004\187\000\000\000\000\000\000\004\183\004\178\004\179\004\182\004\180\000\000\004\194\000\014\000\000\004\193\000\000\001\211\000\000\000\000\004\191\000\000\004\192\000\000\000\000\000\000\000\000\001\215\001\216\000\000\000\000\001\214\001\213\000\015\000\000\000\000\000\000\004\224\000\000\004\223") and error = - (144, "'\244\1681cT\223\153\207\176\021\160?\200\160\000\227 #\180\160\017qP\223\137\159\144\005\160>\128\160\000c |\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\185\189gt\255\153\223\188\151\176\127\196\168\129\231 |\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\159\144\005\160>\128\160\000c |\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 \000\000\000\000\016\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\248\002\193 \000\003\224A\000 @\004\n\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\003\148\128\024!\000N/\139\144\003\176\006@\000\000A\000\003\148\128\024!\000N/\139\144\003\176\006@\000\000A\000\003\148\128\024!\000N/\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192N\232\002\005*\144p,\026\017\001l\b\136\132\212\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\b\000\001\n\000\016\000\000\016\000\000\b!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000D@\n\160\002\006\000\144` \018\016\001l\000\164\128\006\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\006\000\144` \018\016\001l\000\164\128\006\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\173\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\001\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128\016\016\016\004\n\b\016\000\000\000@\000\000\000\000\000\000\128\016\016\000\004\n\b\016\000\000\000@\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\012\128\132\004@\b \002\004\000\016P \016\000\001D\000\000\128\000\004@\b \002\004\000\016@ \016\000\001D\000\000\128\000\001\128\000\t0 J\000\016\000\128\000\000\000\000\000\002\000\001\128\000\t J\000\016\000\128\000\000\000\000\000\002\000\001\128\000\t J\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b \000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000!\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\191\255g|\255\191\255\188\159\177\255\204\176\161\231$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000!\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\000\002\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\000\002\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\130\004\000\016` \016\000\001l\000\133\128\004\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001l\000\132\128\004\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\004@\b\160\002\132\b\144p \018\016\001L\b\129\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\144\000\028\005\000\014.\n\000\0000\002\000\016\000\004\000\003\128\002\028\005\004\014.\b\000\0000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0001\000\000\016\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017qP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\003\128\000\156\005\000\014.\b\000\0000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\005\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\128@\000\000\000\002\000\000\000\002\016\000\000\000\001\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\026\017\001l\000\172\132\214\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\n\006\b\000\000 \000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000D@\014\224\002\007\"\144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\001\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\002\000\000\000\000\016\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\173\132\214\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@N\224\002\007 \144p,\018\017\001l\000\172\132\214\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\173\132\214\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\b\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\002\000\000\000\000\016\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\002\000\000\000\000\016\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\000\016\000\000\001\000\000\000\000\004\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\001\000\000\000\000\004\002\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\001\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\001\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\001\000\000\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006@\000\000\000\000\016\000\000\000\000 \000\000\000\128\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\006@\000\000\000\000\016\000\000\000\000 \000\b\000\128\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\006@\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\004\000\000 \016\000(\016P\012\000\000\000\004\000\128\000\000\004\000\000 \000\000(\016P\012\000\000\000\004\000\128\000\000\004\000\000 \000\000(\016@\012\000\000\000\004\000\128\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\194\017\248\006\203)\139\147\227\241\006`@\006K\203\000\000\002\000\000\000\000\000\000\016\001\128\004\000\000\000\000\000\001\128\000\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681cT\223\153\223\176\021\160?\196\160\000\227 '\244\1681cT\223\153\207\176\021\160?\196\160\000\227 \001\128\000\t0 J\000\016\000\128\000\000\000\000\000\002\000\001\128\000\t J\000\016\000\128\000\000\000\000\000\002\000\001\128\000\t J\000\000\000\128\000\000\000\000\000\002\000\001\128\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\130\004\000\144` \018\016\001l\000\129\128\004\004@\b\160\002\004\000\144` \018\016\001l\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\128\128\004|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 '\244\168\177cT\223\153\207\176\021\160?\204\160\000\227 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\002\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\005\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000#\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\128\000\000\016\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017qP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\226\017\249V\223\169\143\147\229\225>\160\224\006k\235\001\144\130\017\000P\n\t\142\016\001\160\006\000\160\000c\000#\180\160\017aP\223\137\143\144\005\160>\128\160\016c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\016A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000Q\000\001\148\128\144 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\000\000 \000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\144\128\0160\000J\t\154\016\003\176\006\000\000\000A\000\001\144\128\016 \000J\t\154\016\003\176\006\000\000\000A\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\212$\001J\t\154\144\011\176\006(\016;UP\000\000\128\000 \000@\000\000\016\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\212$\001J\t\155\144\011\176\006h\b;UP\000\128\000\000\000\000\b\001\138\000\000 \000\000\000\000\000\000\001\148\130\016 \000J\t\139\144\003\176\006@\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\208 \001J\t\155\144\011\176\006h\0003UP\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\017\148\134\208 \001J\t\155\144\011\176\006h\0003UP\001\212\194\017\248\006\203)\139\147\227\241\006`@\006K\203\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\006\002\144` \018\016\001l\000\164\128\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\016\001\128\004\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\144 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\016\000\000\000\000\000\0002\020\016\001\148\128\144 \000J\t\139\144\003\176\006@\000\016Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\000\000\000\000\"\004\016\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\148\128\020$\000J\t\154\144\011\176\006 \000#E\024\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\001\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\001\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\001\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \003\148\129\0163\004N\t\155\144\003\176\006@\000\000A\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\002\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\128\018\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000\192\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\000\003\128\000\030\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\148\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\136\128\148D@\n\160\002\005\000\144p \018\016\001l\000\136\128\132\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\136\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\012\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\b\128\132\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\b\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\b\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \026\016\001l\000\t\128\132\005\129\002\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\b\000\016\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \026\016\001l\b\t\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\b\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000s #\180\160\145aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\002\000\000\000\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\004\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000@\000\004@\000\000\000\000\000\000\002P\000 H\t\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\144\128\017\016P\n\t\158\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\158\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000#\180\160\017qP\223\137\159\144\005\160>\132\160\000c #\180\160\017aP\223\137\159\144\005\160>\132\160\000c #\180\160\017aP\223\137\143\144\005\160>\132\160\000c #\180\160\017qP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\016\000\000\000\000\001\000\000\016\000\000\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0204\000J\t\154\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\154\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\148\128\016!\000N\t\139\144\003\176\006@\000\000A\000\001\148\194\017\248\006\203)\139\147\227\241\006`@\006K\203\001\148\194\017\248\006\203)\139\147\227\241\006`@\006K\203\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\212\194\017\249\006\207)\139\147\227\241\006`@\006K\203\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\n\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\003\148\194\017\249\006\207)\139\147\227\241\006`@\006K\203\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\001J\t\138\144\003\176\006 \000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\001\002\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223\000\128\000\000\000\000\n\001\142\000\000\000\000\000\000\000\000\000#\180\226\017\249V\223\169\143\147\229\225>\160\224\006k\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\162\017aP\223\137\143\144\005\160>\128\160\000c #\180\162\017aP\223\137\143\144\005\160>\128\160\000c \001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\001\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\162\017aP\223\137\143\144\005\160>\128\160\000c #\180\162\017aP\223\137\143\144\005\160>\128\160\000c \001\148\130\016 \000J\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000#\004\016\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\144\128\017\016P\n\t\158\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\158\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\006\192\000\000\000\000\000\000\000\000\000\000\0000\020\000#\180\162\209aP\223\137\143\144\005\160>\128\160\016s #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\207\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\n\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\207TJN\224\250\007\224\176p/\250W\toM\191\156\207\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\004#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\207TJN\224\250\007\224\176p/\250W\toM\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\254\238\241\251W\255\185\255\191\255\183?\239\165\191\255\239|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\003\148\128\016!\000N\t\155\144\003\176\006\000\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\001\148\194\017\248\006\203)\139\147\227\241\006`@\006K\203\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\000A\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\212\136\180&\004J\153\250\176\027\176\007l\000+\197T\003\192\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\tA@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \026\016\001L\000\000\128\004\004@\b\160\002\004 \144`,\026\016\001L\000\128\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\192\248\002\192 \016\003\224\001\000 \0006\024\195#\180\162\209aP\223\137\143\144\005\160>\128\160\016s \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\128\000\000\000\000\n\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223U\222\206\245\254W\234\185\254\191\251\183\015o\165\191\255\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\b#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\130\017\000P\n\t\142\016\001\160\006\000\160\000c\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\016c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\b\000\0000\004\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\000\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\195\003\148\128\016!\000N\t\155\144\003\176\006@\000\000A\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\016\016\004\003\148\128\016!\000N\t\155\144\003\176\006@\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\000\000\000\000\000\000\000\000\016\000\b\000\000 \000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000 \004\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\000\b@\000\248\002\192 \016\003\224\001\000!\000&\b\195#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\248\002\192 \016\003\224\001\b \0006\b\195\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000s \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\b\000\000 \020\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\248\002\192 \016\003\224\001\b \000&\024\195\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\145aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\128\000\000\000\000\000\000\000\000\b\000\000 \004\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\128\248\002\192 \016\003\224\001\b \000&\b\195\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000@\000\000\000\000\000\000\000\000\000\002P\000\000H\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000\t\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\002P\000\000H\000\000\000\000\128\000\000\000\000\n\001\142\000\000\000\000\000\000\000\000\000@\000\004@\000\000\000\000\000\000\002P\000 H\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\168\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002P\000\000H \000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\248\002\192 \016\003\224\003\000 \000&\b\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\000\000\000B\000\248\002\192 \016\003\224\001\000 \000&\b\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\248\002\192 \016\003\224\001\000 \000&\b\195\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\004@\000\000\000\000\000\000\000\004\000\000\000 \004\000\000\000D@\248\002\192 \016\003\224\005\000 \000&\b\195\000\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\128\000\000\000\000\000\000\000\000\b\000\000 \004\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\128\248\002\192 \016\003\224\001\b \000&\b\195\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\b\000\000 \020\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\248\002\192 \016\003\224\001\b \000&\024\195\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\b\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\004@\b\160\002\004\b\144p \026\016\001L\000\000\128\004\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\000\000\000\001\000\000\016\000\000\000\000 \000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\004@\b\160\002\004\b\144p \026\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\016\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\016\000\b\000\000\000\000\001\000\000\001\128\000\024\000\000\n.\n\000\0000\128\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\001\000\000\000\000\000\144\000\000\004@\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@L\224\002\005\002\144p \026\016\001l\000\128\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\002\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\001\000\000\000\000\000\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\004@H\160\002\005\000\144p \026\016\001L\000\128\132\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\128\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\004@H\160\002\005\000\144p \026\016\001L\000\128\132\004\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\004@H\160\002\005\000\144p \026\016\001L\000\128\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192H\160\002\004\002\144p \026\016\001L\000\128\132\132\004@H\160\002\005\000\144p \026\016\001L\000\128\132\004\001\128\000\024\000\000\n.\n\000\0000\128\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\004\192N\232\002\005*\144p,\026\017\001l\b\168\132\212\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\001\128\000\024\000\000\n.\n\000\0000\128\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\004\192\b\160\002\004\002\144p \026\016\001L\000\128\132\004\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\004\192\b\160\002\004\002\144p \026\016\001L\000\128\132\004\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\148\129\016!\000N\t\155\144\003\176\006\000\000\000A\000\003\148\129\016!\000N\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\004@\b\160\002\004\000\144` \026\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\b\000\0000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\248\002\192 \016\003\224\001\b \0006\b\195\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\002\000\000\000\b\000\016\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000)\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\000\248\002\192 \016\003\224\001\000 \000/\b\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\b\144p \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\004@\b\160\002\004\b\144p \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\001\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\016\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001l\000\000\128\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\144p \018\016\001L\000\000\128\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\001\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 \001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\016\000\000\128\000\000\000\000\016\000\000\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\016\016\016\004\n\b\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004@\b\160\002\004 \144p,\018\016\001l\000\128\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\136\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004 \144p,\018\016\001l\000\128\128\128\000\144\000\000\016\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\132\000\144p \018\016\001l\000\001\128\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004@\b\160\002\004\000\144p \018\016\001L\b\000\132\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\192\b\188\007\004\014>H \0160\001@\000\000\128\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\000\000\128\000\000\016\000\000\000\016\000\000\000\000\000\000\000\002\000\000\128\000\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\b\016` \016\000\001L\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\b\016` \016\000\001L\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\001\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\016\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001l\000\004\128\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\005\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\b\016` \016\000\001L\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\001\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\016\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\132\000\016p \016\000\001L\000\001\128\000\b@\000\000\016\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\004\000\000 \000\000(\016P\004\000\000\000\004\000\128\000\000\004\000\000 \000\000(\016@\004\000\000\000\004\000\128\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\004\000\000\000\004\000\128\000\000\b\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016p\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\016\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016`\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\002\136\024\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p$\018\016\001l\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p$\018\016\001l\000\128\128\004\004\000\000 \000\000 \016p\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\024\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016p\012\000\000\000\004\000\128\000\000\004\000\000 \000\000 \016`\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\004\192J\160\002\005\002\016p \018\016\001l\000\001\128\004\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\005\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000 \004\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\n\006\b\000\000 \000\000\000\000\000\000\004\192J\160\002\005\002\016p \018\016\001l\000\000\128\004\004\192J\160\002\005\002\016p \016\016\001l\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004\000\016p \016\000\001l\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\016\004\n\b\016\000\000\000@\000\000\000\000\000\000\128\016\016\000\004\n\b\016\000\000\000@\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\128\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\001\000\000\t \000J\000\016\000\128\000\000\000\000\000\002\000\001\000\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001l\000\129\128\004\004@\b\160\002\004\000\144` \018\016\001l\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\128\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\001\000\000\t \000J\000\016\000\128\000\000\000\000\000\002\000\001\000\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\003\128\000\156\005\000\014.\b\000\0000\000\000\000\000\005\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\b\160\002\004\b\144h \018\016\003L\000\128\128\004\004@\b\160\002\132\000\144p \018\016\001L\000\129\132\004\004@\b\160\002\004\000\144p \018\016\001L\000\128\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\128\132\004\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\128\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001l\000\128\128\004\000\144\000\002\000\000\b\000\n\000\000\000\002\000\016\000\004\000\000\144\000\000\000\000\b\000\n\000\000\000\002\000\016\000\004\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\132\000\144p \018\016\001L\000\129\132\004\004@\b\160\002\004\000\144p \018\016\001L\000\128\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\000\b@\000\000\016\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\003\148\194\017\249\006\207)\139\147\227\241\006`@\006K\203\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\004\000\000 \000\000(\016P\012\000\000\000\004\000\128\000\000\004\000\000 \000\000(\016@\012\000\000\000\004\000\128\000\000\004\000\000 \000\000 \016@\012\000\000\000\004\000\128\000\000\b\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\t\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016p\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\t\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\016\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\003\192\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\003\192\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\n\136\024\000\000\000\016\000\000\000\002\000\000\128\000\016\000@\n\136\024\000\000\000\016\000\000\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\003\148\129\0163\000N\t\155\144\003\176\006\000\000\000A\000|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\003\148\129\016!\000N\t\155\144\003\176\006\000\000\000A\000\003\148\129\016!\000N\t\139\144\003\176\006\000\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000 \000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\154\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\148\128\020$\001J\t\138\144\003\176\006\000\000\000A\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\004\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\212\138\181\006T*\153\254\188\019\176\007L\160\129\227\020\005\212\138\181\006T*\153\254\188\019\176\007L\160\129\227\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p,\018\016\001L\000\129\128\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p,\018\016\001L\000\129\128\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p,\018\016\001L\000\129\128\020\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\004@\n\160\002\004 \144p,\018\016\001L\000\129\128\020\003\148\129\016!\000N\t\139\144\003\176\006\000\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000 \000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016p\012\000\000\000\004\000\128\000\016\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\004\000\000 \000\000 \016p\012\000\000\000\004\000\128\000\016\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\024\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\004\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\004\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144@ \016\000\001L\000\000\128\000\003\148\129\0161\000N\t\155\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\004@\b\160\002\004\b\144p \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \016\000\001L\000\000\128\000\004@\b\160\002\004\000\144@ \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144@ \026\016\001L\000\000\128\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \016\000\001L\000\000\128\000\004@\b\160\002\004\000\144@ \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\002\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\132\000\144p \018\016\001l\000\001\132\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\132\000\144p \018\016\001l\000\001\132\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\130\004\000\144` \018\016\001l\000\129\128\004\004@\b\160\002\004\000\144` \018\016\001l\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\002\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\000\b\128\132@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\000\000\000\002\000\000\000\002\017\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\001\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\001\128\000\024\000\000\n.\024\000\0001\000\000\016\000\000\000\001\128\000\024\000\000\n.\b\000\0001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\000\000\000\002\000\000\000\000\017\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\002\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\130\004\000\016` \016\000\001l\000\133\128\004\004@\b\160\002\004\000\016` \016\000\001l\000\132\128\004\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\002\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\128@\000\000\001\002\000\000\000\000\016\000\000\000\000\000@\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\128@\000\000\001\002\000\000\000\000\016\000\000\000\000\000@\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@N\224\002\007 \144p,\018\017\001l\000\172\132\214\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150D@\n\160\002\006\000\144p \018\016\001l\000\164\128\006\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000D@\n\160\002\006\000\144p \018\016\001l\000\164\128\006@\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\b\000\001\n\000\016\000\000\016\000\000\b!\000P\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\128\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\016@ \016\000\001H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\n\000\b\000\000\000\002\000\000\000\000\000\000\000B\001\248\002\193 \000\003\224A\000 @\006\n\203\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\248\002\193 \000\003\224A\000 @\006\n\203\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004\208\136 \002\004\n\144@0\018\016\003H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144@ \018\016\001H\b\000\128\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004\208\136 \002\004\n\144@0\018\016\003H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144@ \018\016\001H\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144@ \016\000\001@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 '\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \004@\b \002\004\000\144@ \018\016\001H\000\000\128\000\004@\b \002\004\000\144@ \018\016\001H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144` \018\016\001H\000\000\128\000\004@\b \002\004\000\144@ \018\016\001H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144` \018\016\001H\000\000\128\000\004@\b \002\004\000\144@ \018\016\001H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (144, "'\244\1681cT\223\153\207\176\021\160?\200\160\000\227 #\180\160\017qP\223\137\159\144\005\160>\128\160\000c |\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\185\189gt\255\153\223\188\151\176\127\196\168\129\231 |\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\159\144\005\160>\128\160\000c |\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 \000\000\000\000\016\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\248\002\193 \000\003\224A\000 @\004\n\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\003\148\128\024!\000N/\139\144\003\176\006@\000\000A\000\003\148\128\024!\000N/\139\144\003\176\006@\000\000A\000\003\148\128\024!\000N/\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192N\232\002\005*\144p,\026\017\001l\b\136\132\212\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\b\000\001\n\000\016\000\000\016\000\000\b!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000D@\n\160\002\006\000\144` \018\016\001l\000\164\128\006\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\173\132\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\001\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128\016\016\016\004\n\b\016\000\000\000@\000\000\000\000\000\000\128\016\016\000\004\n\b\016\000\000\000@\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\012\128\132\004@\b \002\004\000\016P \016\000\001D\000\000\128\128\004@\b \002\004\000\016@ \016\000\001D\000\000\128\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@L\224\002\005\002\144p \026\016\001l\000\128\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\000\001\128\000\t0 J\000\016\000\128\000\000\000\000\000\002\000\001\128\000\t J\000\016\000\128\000\000\000\000\000\002\000\001\128\000\t J\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b \000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000!\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\006\002\144` \018\016\001l\000\164\128\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\191\255g|\255\191\255\188\159\177\255\204\176\161\231\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000!\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\000\002\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\000\002\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\130\004\000\016` \016\000\001l\000\133\128\004\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000D@\b\160\002\006\000\144` \018\016\001l\000\132\128\006\004@\b\160\002\004\000\016` \016\000\001l\000\132\128\004\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\004@\b\160\002\132\b\144p \018\016\001L\b\129\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\144\000\028\005\000\014.\n\000\0000\002\000\016\000\004\000\003\128\002\028\005\004\014.\b\000\0000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0001\000\000\016\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017qP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\003\128\000\156\005\000\014.\b\000\0000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\005\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\128@\000\000\000\002\000\000\000\002\016\000\000\000\001\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\026\017\001l\000\172\132\214\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\n\006\b\000\000 \000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000D@\014\224\002\007\"\144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\001\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\002\000\000\000\000\016\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\173\132\214\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@N\224\002\007 \144p,\018\017\001l\000\172\132\214\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\173\132\214\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214D\192N\224\002\007\"\144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\b\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\002\000\000\000\000\016\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\002\000\000\000\000\016\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\000\016\000\000\001\000\000\000\000\004\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\001\000\000\000\000\004\002\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\001\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\001\000\000\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\001\000\000\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006@\000\000\000\000\016\000\000\000\000 \000\000\000\128\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\006@\000\000\000\000\016\000\000\000\000 \000\b\000\128\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\006@\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\004\000\000 \016\000(\016P\012\000\000\000\004\000\128\000\000\004\000\000 \000\000(\016P\012\000\000\000\004\000\128\000\000\004\000\000 \000\000(\016@\012\000\000\000\004\000\128\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\194\017\248\006\203)\139\147\227\241\006`@\006K\203\000\000\002\000\000\000\000\000\000\016\001\128\004\000\000\000\000\000\001\128\000\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681cT\223\153\223\176\021\160?\196\160\000\227 '\244\1681cT\223\153\207\176\021\160?\196\160\000\227 \001\128\000\t0 J\000\016\000\128\000\000\000\000\000\002\000\001\128\000\t J\000\016\000\128\000\000\000\000\000\002\000\001\128\000\t J\000\000\000\128\000\000\000\000\000\002\000\001\128\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\130\004\000\144` \018\016\001l\000\129\128\004\004@\b\160\002\004\000\144` \018\016\001l\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\128\128\004|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 '\244\168\177cT\223\153\207\176\021\160?\204\160\000\227 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\002\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\005\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000#\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\128\000\000\016\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017qP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\226\017\249V\223\169\143\147\229\225>\160\224\006k\235\001\144\130\017\000P\n\t\142\016\001\160\006\000\160\000c\000#\180\160\017aP\223\137\143\144\005\160>\128\160\016c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\016A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000Q\000\001\148\128\144 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\000\000 \000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\144\128\0160\000J\t\154\016\003\176\006\000\000\000A\000\001\144\128\016 \000J\t\154\016\003\176\006\000\000\000A\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\212$\001J\t\154\144\011\176\006(\016;UP\000\000\128\000 \000@\000\000\016\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\212$\001J\t\155\144\011\176\006h\b;UP\000\128\000\000\000\000\b\001\138\000\000 \000\000\000\000\000\000\001\148\130\016 \000J\t\139\144\003\176\006@\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\148\134\208 \001J\t\155\144\011\176\006h\0003UP\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\017\148\134\208 \001J\t\155\144\011\176\006h\0003UP\001\212\194\017\248\006\203)\139\147\227\241\006`@\006K\203\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\016\001\128\004\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\144 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\016\000\000\000\000\000\0002\020\016\001\148\128\144 \000J\t\139\144\003\176\006@\000\016Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\000\000\000\000\"\004\016\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\148\128\020$\000J\t\154\144\011\176\006 \000#E\024\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\001\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\001\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\001\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \003\148\129\0163\004N\t\155\144\003\176\006@\000\000A\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\002\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\128\018\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000\192\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\000\003\128\000\030\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\148\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\136\128\148D@\n\160\002\005\000\144p \018\016\001l\000\136\128\132\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\136\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\012\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\b\128\132\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\b\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132\000@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\b\b\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\000\144p \018\016\001l\000\b\128\132@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \026\016\001l\000\t\128\132\005\129\002\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\b\000\016\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \026\016\001l\b\t\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\b\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000s #\180\160\145aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\002\000\000\000\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\004\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000@\000\004@\000\000\000\000\000\000\002P\000 H\t\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\144\128\017\016P\n\t\158\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\158\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000#\180\160\017qP\223\137\159\144\005\160>\132\160\000c #\180\160\017aP\223\137\159\144\005\160>\132\160\000c #\180\160\017aP\223\137\143\144\005\160>\132\160\000c #\180\160\017qP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\016\000\000\000\000\001\000\000\016\000\000\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0204\000J\t\154\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\154\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\148\128\016!\000N\t\139\144\003\176\006@\000\000A\000\001\148\194\017\248\006\203)\139\147\227\241\006`@\006K\203\001\148\194\017\248\006\203)\139\147\227\241\006`@\006K\203\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\212\194\017\249\006\207)\139\147\227\241\006`@\006K\203\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\n\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\n\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\003\148\194\017\249\006\207)\139\147\227\241\006`@\006K\203\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\001J\t\138\144\003\176\006 \000\tA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\001\002\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223\000\128\000\000\000\000\n\001\142\000\000\000\000\000\000\000\000\000#\180\226\017\249V\223\169\143\147\229\225>\160\224\006k\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\162\017aP\223\137\143\144\005\160>\128\160\000c #\180\162\017aP\223\137\143\144\005\160>\128\160\000c \001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\001\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\162\017aP\223\137\143\144\005\160>\128\160\000c #\180\162\017aP\223\137\143\144\005\160>\128\160\000c \001\148\130\016 \000J\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000#\004\016\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\144\128\017\016P\n\t\158\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\158\016\001\160\006\000\160\000c\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\006\192\000\000\000\000\000\000\000\000\000\000\0000\020\000#\180\162\209aP\223\137\143\144\005\160>\128\160\016s #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\207\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\n\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\207TJN\224\250\007\224\176p/\250W\toM\191\156\207\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\004#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\207TJN\224\250\007\224\176p/\250W\toM\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\254\238\241\251W\255\185\255\191\255\183?\239\165\191\255\239|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\003\148\128\016!\000N\t\155\144\003\176\006\000\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\001\148\194\017\248\006\203)\139\147\227\241\006`@\006K\203\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004P\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\000A\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\212\136\180&\004J\153\250\176\027\176\007l\000+\197T\003\192\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000#\004P\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\tA@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \026\016\001L\000\000\128\004\004@\b\160\002\004 \144`,\026\016\001L\000\128\128\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\192\248\002\192 \016\003\224\001\000 \0006\024\195#\180\162\209aP\223\137\143\144\005\160>\128\160\016s \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\128\000\000\000\000\n\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207U\222\206\245\254W\234\249\254\191\251\247\015o\237\191\255\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223U\222\206\245\254W\234\185\254\191\251\183\015o\165\191\255\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\b#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\130\017\000P\n\t\142\016\001\160\006\000\160\000c\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\016c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\b\000\0000\004\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\000\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\195\003\148\128\016!\000N\t\155\144\003\176\006@\000\000A\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\016\016\004\003\148\128\016!\000N\t\155\144\003\176\006@\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\000\000\000\000\000\000\000\000\016\000\b\000\000 \000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000 \004\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\000\b@\000\248\002\192 \016\003\224\001\000!\000&\b\195#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\0000\020\004\016\000@\128\248\002\192 \016\003\224\001\b \0006\024\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\248\002\192 \016\003\224\001\b \0006\b\195\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000s \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\b\000\000 \020\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\248\002\192 \016\003\224\001\b \000&\024\195\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\145aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\128\000\000\000\000\000\000\000\000\b\000\000 \004\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\128\248\002\192 \016\003\224\001\b \000&\b\195\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000@\000\000\000\000\000\000\000\000\000\002P\000\000H\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000\t\000\000\000\000\004@\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\002P\000\000H\000\000\000\000\128\000\000\000\000\n\001\142\000\000\000\000\000\000\000\000\000@\000\004@\000\000\000\000\000\000\002P\000 H\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\168\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002P\000\000H \000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\248\002\192 \016\003\224\003\000 \000&\b\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\254W\234\185\254\191\251\247\015o\237\191\255\223TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\000\000\000B\000\248\002\192 \016\003\224\001\000 \000&\b\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\248\002\192 \016\003\224\001\000 \000&\b\195\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\004@\000\000\000\000\000\000\000\004\000\000\000 \004\000\000\000D@\248\002\192 \016\003\224\005\000 \000&\b\195\000\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\128\000\000\000\000\000\000\000\000\b\000\000 \004\000\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\128\248\002\192 \016\003\224\001\b \000&\b\195\016\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\b\000\000 \020\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\248\002\192 \016\003\224\001\b \000&\024\195\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\b\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\004@\b\160\002\004\b\144p \026\016\001L\000\000\128\004\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\000\000\000\001\000\000\016\000\000\000\000 \000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\004@\b\160\002\004\b\144p \026\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\016\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\016\000\b\000\000\000\000\001\000\000\001\128\000\024\000\000\n.\n\000\0000\128\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\001\000\000\000\000\000\144\000\000\004@\000\000\000\000\016\000\000\000\000\000\000\000\000\128\000\000\004@\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\002\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\016\000\000\001\000\000\000\000\000\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\004@H\160\002\005\000\144p \026\016\001L\000\128\132\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\128\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\004@H\160\002\005\000\144p \026\016\001L\000\128\132\004\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\004@H\160\002\005\000\144p \026\016\001L\000\128\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192H\160\002\004\002\144p \026\016\001L\000\128\132\132\004@H\160\002\005\000\144p \026\016\001L\000\128\132\004\001\128\000\024\000\000\n.\n\000\0000\128\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\004\192N\232\002\005*\144p,\026\017\001l\b\168\132\212\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\001\128\000\024\000\000\n.\n\000\0000\128\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\004\192\b\160\002\004\002\144p \026\016\001L\000\128\132\004\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\004\192\b\160\002\004\002\144p \026\016\001L\000\128\132\004\004\192H\160\002\005\002\144p \026\016\001L\000\128\132\132\000\000\000\000\000\000\000\000\016\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\148\129\016!\000N\t\155\144\003\176\006\000\000\000A\000\003\148\129\016!\000N\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\004@\b\160\002\004\000\144` \026\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\b\000\0000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000D\000\248\002\192 \016\003\224\001\b \0006\b\195\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\002\000\000\000\b\000\016\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000)\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\000\248\002\192 \016\003\224\001\000 \000/\b\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\b\144p \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\004@\b\160\002\004\b\144p \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\001\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\016\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001l\000\000\128\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\144p \018\016\001L\000\000\128\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\001\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 \001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\016\000\000\128\000\000\000\000\016\000\000\000\000\000\000\"\004\016#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604'\244\168\181cT\223\153\207\176\021\160?\192\160\001\227 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000D@\b\160\002\006\000\144@ \018\016\001L\000\000\128\002\001\129\016\016\016\004\n\b\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004@\b\160\002\004 \144p,\018\016\001l\000\128\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\136\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004 \144p,\018\016\001l\000\128\128\128\000\144\000\000\016\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\132\000\144p \018\016\001l\000\001\128\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004@\b\160\002\004\000\144p \018\016\001L\b\000\132\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\192\b\188\007\004\014>H \0160\001@\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\000\b@\000\000\016\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\004\000\000 \000\000(\016P\004\000\000\000\004\000\128\000\000\004\000\000 \000\000(\016@\004\000\000\000\004\000\128\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\004\000\000\000\004\000\128\000\000\b\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016p\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\016\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016`\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\002\136\024\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p$\018\016\001l\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p$\018\016\001l\000\128\128\004\004\000\000 \000\000 \016p\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\024\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016p\012\000\000\000\004\000\128\000\000\004\000\000 \000\000 \016`\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\004\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\003\148\194\017\249\006\207)\139\147\227\241\006`@\006K\203\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\004\000\000 \000\000(\016P\012\000\000\000\004\000\128\000\000\004\000\000 \000\000(\016@\012\000\000\000\004\000\128\000\000\004\000\000 \000\000 \016@\012\000\000\000\004\000\128\000\000\b\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\002\000\000\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\t\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016p\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\t\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\016\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\003\192\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\003\192\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\159\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\n\136\024\000\000\000\016\000\000\000\002\000\000\128\000\016\000@\n\136\024\000\000\000\016\000\000\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\003\148\129\0163\000N\t\155\144\003\176\006\000\000\000A\000|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\003\148\129\016!\000N\t\155\144\003\176\006\000\000\000A\000\003\148\129\016!\000N\t\139\144\003\176\006\000\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000 \000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\154\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\148\128\020$\001J\t\138\144\003\176\006\000\000\000A\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\004\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\212\138\181\006T*\153\254\188\019\176\007L\160\129\227\020\005\212\138\181\006T*\153\254\188\019\176\007L\160\129\227\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p,\018\016\001L\000\129\128\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p,\018\016\001L\000\129\128\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004 \144p,\018\016\001L\000\129\128\020\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\004@\n\160\002\004 \144p,\018\016\001L\000\129\128\020\003\148\129\016!\000N\t\139\144\003\176\006\000\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000 \000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\004\192J\160\002\005\002\016p \018\016\001l\000\001\128\004\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\005\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000 \004\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\n\006\b\000\000 \000\000\000\000\000\000\004\192J\160\002\005\002\016p \018\016\001l\000\000\128\004\004\192J\160\002\005\002\016p \016\016\001l\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\002\004\000\016p \016\000\001l\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016p\012\000\000\000\004\000\128\000\016\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\004\000\000 \000\000 \016p\012\000\000\000\004\000\128\000\016\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\024\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016`\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\004\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\128\004\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144@ \016\000\001L\000\000\128\000\003\148\129\0161\000N\t\155\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\016\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\016\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\004@\b\160\002\004\b\144p \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\001\000\000\t \000J\000\016\000\128\000\000\000\000\000\002\000\001\000\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001l\000\129\128\004\004@\b\160\002\004\000\144` \018\016\001l\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\128\128\004\004@\b\160\002\004\000\144@ \018\016\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \016\000\001L\000\000\128\000\004@\b\160\002\004\000\144@ \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144@ \026\016\001L\000\000\128\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \016\000\001L\000\000\128\000\004@\b\160\002\004\000\144@ \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\002\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\132\000\144p \018\016\001l\000\001\132\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\128\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\132\000\144p \018\016\001l\000\001\132\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\128\132\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\130\004\000\144` \018\016\001l\000\129\128\004\004@\b\160\002\004\000\144` \018\016\001l\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144` \018\016\001L\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\002\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\004@\b\160\002\004\000\144` \018\016\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\005\b\144p \018\016\001l\000\b\128\132@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000J\t\139\144\003\176\006@\016\000A\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\001\000\000\016\000\b\000\000(\0003\020P\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000#\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\012\000\000\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000TJN\224\250\007\224\176p/\250W\toM\191\156\207\001\148\128\0160\000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\155\144\003\176\006@\000\000E\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207TJN\224\250\007\224\176p/\250\023\to\005\191\156\207@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000TJN\224\250\007\224\176p/\250\023\to\005\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\000\000\000\002\000\000\000\002\017\000\000\000\001\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\001\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\001\128\000\024\000\000\n.\024\000\0001\000\000\016\000\000\000\001\128\000\024\000\000\n.\b\000\0001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\000\000\000\002\000\000\000\000\017\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\003\128\000\156\005\000\014.\b\000\0000\000\000\000\000\005\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\b\160\002\004\b\144h \018\016\003L\000\128\128\004\004@\b\160\002\132\000\144p \018\016\001L\000\129\132\004\004@\b\160\002\004\000\144` \018\016\001L\000\128\132\004\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001L\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\132\000\144p \018\016\001L\000\129\132\004\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\144p \018\016\001l\000\128\128\004\000\144\000\002\000\000\b\000\n\000\000\000\002\000\016\000\004\000\000\144\000\000\000\000\b\000\n\000\000\000\002\000\016\000\004\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\002\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\130\004\000\016` \016\000\001l\000\133\128\004\004@\b\160\002\004\000\016` \016\000\001l\000\132\128\004\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\128\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\002\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\000\000\128\000\000\016\000\000\000\016\000\000\000\000\000\000\000\002\000\000\128\000\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\b\016` \016\000\001L\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\b\016` \016\000\001L\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\001\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\016\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001l\000\004\128\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\005\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\b\016` \016\000\001L\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\001\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\016\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\024\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\004@\b\160\002\132\000\016p \016\000\001L\000\001\128\000\b@\000\000\016\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\b\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\016\004\n\b\016\000\000\000@\000\000\000\000\000\000\128\016\016\000\004\n\b\016\000\000\000@\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000D@\b\160\002\005\000\016p \016\000\001L\000\000\128\128\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\001\000\000\t \000J\000\016\000\128\000\000\000\000\000\002\000\001\000\000\t \000J\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\002\004\000\016` \016\000\001L\000\128\128\004\004@\b\160\002\004\000\016@ \016\000\001L\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\004\014.\b\000\0000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\128@\000\000\001\002\000\000\000\000\016\000\000\000\000\000@\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\128@\000\000\001\002\000\000\000\000\016\000\000\000\000\000@\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@N\224\002\007 \144p,\018\017\001l\000\172\132\214\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000D@\014\224\002\007 \144p,\018\017\001l\000\172\132\214D@\014\224\002\007 \144p,\018\017\001l\000\172\132\150D@\n\160\002\006\000\144p \018\016\001l\000\164\128\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\002\006\000\144p \018\016\001l\000\164\128\006@\000\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\000\000\001\002\000\016\000\000\016\000\000\000!\000P\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000@\000\002\000\000\002\000\000\000\000\000\000\000\000\000 \000\002\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128B\b\000\001\n\000\016\000\000\016\000\000\b!\000P\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\128\004@\b\160\002\004\000\144` \018\016\001L\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\016@ \016\000\001H\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\n\000\b\000\000\000\002\000\000\000\000\000\000\000B\001\248\002\193 \000\003\224A\000 @\006\n\203\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\248\002\193 \000\003\224A\000 @\006\n\203\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\000\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004\208\136 \002\004\n\144@0\018\016\003H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144@ \018\016\001H\b\000\128\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004\208\136 \002\004\n\144@0\018\016\003H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144@ \018\016\001H\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144@ \016\000\001@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 '\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \004@\b \002\004\000\144@ \018\016\001H\000\000\128\000\004@\b \002\004\000\144@ \018\016\001H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144` \018\016\001H\000\000\128\000\004@\b \002\004\000\144@ \018\016\001H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144` \018\016\001H\000\000\128\000\004@\b \002\004\000\144@ \018\016\001H\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") and start = 15 and action = - ((32, "\000\000\1462\000\000\156V\000\000\157j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\164\000\000\157j\000\000\000\000\000\000\000\000\000\000\024\144\000\000\157j\000\000\1462\000\000\001\004\000\000\002\248\000\000\000\023\000\001f\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000X\000\000\006,\000\000\000)\000\000\000\000\000\000\001\198\000\000\001\192\000\000\000\000\000\000\001\178\000\000\003F\000\000\003\158\000\000\000\000\000\000\002\200\000\000\003z\000\000\006\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\236\000\000\000\000\000\000\000\000\000\000\004N\000\001\162`\000\001V\152\000\001WF\000\001W\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004.\000\000\000\000\000\000\000\000\000\000\226\196\000\000\005d\000\000\005\\\000\000\000\000\000\000\000\000\000\001\161\020\000\000\150x\000\000\007\184\000\000\000\000\000\000\007\184\000\001`\018\000\000\004.\000\000\000\000\000\001\155\196\000\000\004.\000\000\219\134\000\000\007\184\000\001s\254\000\000\007\184\000\000\000\000\000\000\000\000\000\000\004\216\000\000\000\000\000\001\163\172\000\000\151\006\000\000\007\184\000\000\000\000\000\001t\180\000\001`\018\000\000\218*\000\000\000\000\000\001UP\000\001\155\196\000\000\153\026\000\000\024\144\000\000\027\230\000\001`\168\000\000\024\144\000\000\155|\000\000\156V\000\000\024\144\000\000\222\134\000\000\000\000\000\000\002P\000\000\000\000\000\000\222\134\000\000\005\170\000\000\000\000\000\000'\236\000\000\000\000\000\000\031Z\000\000\000\000\000\000\000\000\000\000\003x\000\000\003\150\000\000\006\240\000\000\007\184\000\000\000\000\000\000\024\144\000\000\000\000\000\000\004.\000\000\003\150\000\000\t<\000\000\007\184\000\000\000\000\000\000\000\000\000\000\005p\000\000\000\000\000\000'\236\000\000\000\000\000\000\000\000\000\000\006\224\000\000\003\150\000\000\000\000\000\000\004.\000\000\003\150\000\000\000\000\000\000\nf\000\001\135\180\000\000\007\184\000\000\000\000\000\001\155\026\000\001\147\156\000\001\127\000\000\000\000\000\000\001\151\156\000\001\155\196\000\000\000\000\000\001`\222\000\001\161h\000\000\004.\000\000\151\134\000\000\157j\000\000\1462\000\000\000\003\000\000\000\000\000\000\000\000\000\000\156V\000\000\024\144\000\000\000\003\000\000\003(\000\000\005\254\000\000\000\177\000\001`\018\000\001\156\024\000\000\000\000\000\001`\018\000\001\156\024\000\000\000\000\000\001`\018\000\001`\018\000\001q\252\000\000\029\144\000\001Yh\000\000\218*\000\000\0118\000\000\000\000\000\000\004t\000\000\001*\000\000\004\184\000\000\000\000\000\000\007\142\000\000\000\000\000\000\000\000\000\000\012\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\030\014\000\001\157\198\000\000\229\180\000\001`\018\000\000\230\174\000\000\007\242\000\000\231\168\000\000\000\000\000\000\000\000\000\001\030X\000\001`\018\000\000\232\162\000\001\031R\000\000\000\000\000\001d\236\000\001\155\196\000\000\000\000\000\000\005\246\000\000\001*\000\000\0118\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\014\000\000\r\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\163\208\000\000\223\182\000\000\007\184\000\000\000\000\000\000\004.\000\000\224\178\000\000\007\184\000\000\000\000\000\001\145<\000\001\155\196\000\000\0003\000\000\004.\000\000\000\000\000\000\bX\000\000\004.\000\000\b~\000\000\007\184\000\000\nn\000\000\000\000\000\001`\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\014\000\000\b\134\000\001`\018\000\000\233\156\000\001 L\000\000\000\000\000\001\145<\000\000\234\150\000\001`\018\000\000\235\144\000\001!F\000\000\000\000\000\001\145<\000\000\236\138\000\001\"@\000\001`\018\000\000\237\132\000\001#:\000\000\000\000\000\001\145<\000\000\238~\000\001$4\000\000\221`\000\001\155b\000\000\2182\000\001Yh\000\000\222\\\000\000\0118\000\000\000\000\000\000\000\000\000\000\000\000\000\000\227\190\000\001\1566\000\000\218:\000\001Yh\000\000\223X\000\000\224T\000\000\225P\000\001%.\000\000\011\238\000\001`\018\000\000\239x\000\001&(\000\000\000\000\000\001\145<\000\000\240r\000\001'\"\000\000\000\000\000\001(\028\000\000\004F\000\000\004.\000\000\000\000\000\000\t\028\000\000\011p\000\000\007\184\000\000\rv\000\000\000\000\000\000\004.\000\000\rT\000\000\007\184\000\000\014\148\000\000\000\000\000\000\003\168\000\000\000\000\000\001\1642\000\000\228\028\000\000\007\184\000\000\000\000\000\000\004.\000\000\226h\000\000\007\184\000\000\000\000\000\000\003\190\000\000\t\186\000\000\014~\000\000\003\252\000\000\000\236\000\001`\018\000\000\011d\000\000\011\156\000\001`\018\000\000\241l\000\001)\022\000\000\000\000\000\001\145<\000\000\242f\000\001*\016\000\000\014\230\000\001`\018\000\000\243`\000\001+\n\000\000\000\000\000\001\145<\000\000\244Z\000\001,\004\000\000\r\216\000\001`\018\000\000\245T\000\001,\254\000\000\000\000\000\001\145<\000\000\246N\000\001-\248\000\000\016\128\000\001`\018\000\000\247H\000\001.\242\000\000\000\000\000\001\145<\000\000\248B\000\001/\236\000\001\160\162\000\001\155\196\000\000\001\166\000\001`\018\000\000\011h\000\000\014\246\000\001`\018\000\000\249<\000\0010\230\000\000\000\000\000\001\145<\000\000\2506\000\0011\224\000\000\016\158\000\001`\018\000\000\2510\000\0012\218\000\000\000\000\000\001\145<\000\000\252*\000\0013\212\000\000\016f\000\001`\018\000\000\253$\000\0014\206\000\000\000\000\000\001\145<\000\000\254\030\000\0015\200\000\000\016\182\000\001`\018\000\000\255\024\000\0016\194\000\000\000\000\000\001\145<\000\001\000\018\000\0017\188\000\001\145<\000\001\001\012\000\0018\182\000\000\000\000\000\001\145<\000\001\002\006\000\0019\176\000\000\017\188\000\000\003\168\000\000\000\000\000\000\028\238\000\001\155b\000\000\007V\000\000\000\000\000\000\031\204\000\001\155b\000\000\007\252\000\000\000\000\000\001`\018\000\000\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\014\000\000\000\000\000\001`\018\000\000\000\000\000\000\023\214\000\001\161\202\000\000\000\000\000\001`\018\000\000\024&\000\001`\018\000\000+\148\000\000\000\000\000\000,\178\000\000\000\000\000\000\025Z\000\000\012T\000\000\000\000\000\000\017b\000\001`\018\000\000\015\174\000\000\000\000\000\000\015\220\000\000\000\000\000\000\011R\000\000\000\000\000\000\000\003\000\000\007\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029P\000\001`\018\000\000\0280\000\001`\018\000\000\031\140\000\000\018\198\000\000\018\028\000\000\166\214\000\000\004b\000\000\019\030\000\000\000\177\000\000\019\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\026\000\000\020\026\000\000\145`\000\000\024\144\000\000\1572\000\000\219L\000\000\000\000\000\000\005\128\000\000\019|\000\000\0190\000\001`\018\000\000\012T\000\000\019~\000\001u^\000\000\007\160\000\000\020\020\000\000\020`\000\001`\018\000\000\r0\000\000\000\000\000\000\000\000\000\000\027z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152J\000\000\027z\000\000\000*\000\000\000j\000\000\011\018\000\000\000\000\000\000\000\000\000\000\011R\000\000\000\000\000\000\027\230\000\000\021~\000\000\021\146\000\000\024\144\000\000\027\210\000\000\000\000\000\000\024\144\000\000\1462\000\000\156V\000\000\024\144\000\000\222\192\000\000\222\134\000\000\014\146\000\001\145\242\000\001\151\234\000\000\000\000\000\001\136\252\000\000\157j\000\000\1462\000\000\1462\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\026\000\000\152\252\000\000\024\144\000\000\027\210\000\000\147\014\000\000\024\144\000\000\167\176\000\000\000\003\000\000\001\004\000\000\003\150\000\000\014\194\000\000\000\000\000\000\t\250\000\000\017\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156V\000\000\024\144\000\000\000\003\000\000&\252\000\001u\240\000\000\158R\000\000\000\003\000\000\001\028\000\000\168\138\000\001\135\006\000\000\n\198\000\000\021\144\000\000\021\n\000\001`\018\000\000\014,\000\000\0210\000\001\127\170\000\000\n\250\000\000\021\190\000\000\021\176\000\001`\018\000\000\014\194\000\000\000\000\000\000\000\000\000\001gr\000\001gr\000\001gr\000\000\000\000\000\000\014\194\000\000\000\000\000\000\022\206\000\000\000\000\000\000\023\180\000\001`\018\000\000\004\182\000\000\005\212\000\000\219L\000\000\156V\000\000\024\144\000\000\219L\000\000\000\000\000\000\017\236\000\000\000\000\000\000\000\000\000\000\nh\000\000\018\148\000\000\000\000\000\000\000\000\000\000\219L\000\000\219L\000\000\017\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0222\000\001v\130\000\000\012\160\000\000\023\012\000\000\022\154\000\001`\018\000\000\018\024\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000\217 \000\000\025^\000\000\r\242\000\000\016N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0028\000\000$\194\000\001gr\000\000\000\000\000\001cF\000\000\024\144\000\000\219L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\001fd\000\001w0\000\000\r\190\000\000\023.\000\000\022\206\000\001`\018\000\000\018\164\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\164*\000\000\219L\000\001\164\146\000\000\220V\000\000\152J\000\000\023\204\000\001h.\000\000\000\000\000\000\024\030\000\000\219L\000\000\000\000\000\000\"(\000\000\024.\000\000\000\000\000\000(\230\000\000\000\000\000\001w\222\000\000\014l\000\000\024\200\000\000\024p\000\001`\018\000\000\019\b\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\001\164\218\000\001`\018\000\000\001\130\000\000\000\000\000\000\219L\000\001\165B\000\000\000\023\000\000\000\000\000\000\000\000\000\000\025F\000\000\000\000\000\000(\162\000\000\000\000\000\001x\140\000\000\000\000\000\000\025H\000\000\000\000\000\000(\162\000\001aT\000\000\000\000\000\000\000\000\000\000\000\000\000\001\165\204\000\000\151\138\000\000\000\000\000\000\026\016\000\000\000\000\000\000(\230\000\000\rZ\000\000\026\156\000\000\015\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024v\000\000\000\000\000\000\000\000\000\000\024\150\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000\000\000\000\000*|\000\000\219L\000\000+\"\000\000\000\000\000\000\000\000\000\000,@\000\001\128X\000\000\015>\000\000\0254\000\000\024\210\000\001`\018\000\000\0196\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000-^\000\000\024\240\000\001\129\006\000\000\015\250\000\000\025\150\000\000\025H\000\001`\018\000\000\019\160\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000-\214\000\000\219L\000\000\025T\000\001\129\180\000\000\017\202\000\000\025\234\000\000\025^\000\001`\018\000\000\019\194\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000.|\000\001U\214\000\000\018\232\000\000\026n\000\000\002\212\000\001\162`\000\000\002\148\000\001`\018\000\000\004\030\000\000\007\242\000\000\000\000\000\000\000\000\000\000\005<\000\000\000\000\000\000\000\000\000\000\025\242\000\000\0266\000\000\000\000\000\000\026^\000\000\000\000\000\000\000\000\000\000\019\182\000\000\026n\000\000\025\242\000\000\015\148\000\000\000\003\000\000\156V\000\000\1542\000\000\152\252\000\000\024\144\000\000\027\210\000\000\001\218\000\000\t\\\000\000\011\018\000\000\000\000\000\000\025\162\000\000\027\230\000\000\227\166\000\000\026j\000\000\027\230\000\000\001\218\000\000\t\\\000\000\017\242\000\000\000\000\000\000\026\132\000\000\027\230\000\000\000\000\000\001\130D\000\000\006\198\000\000\222\134\000\000\014\194\000\000\017\180\000\001\161\238\000\000\000\000\000\001`\018\000\001y\028\000\001`\018\000\001h\228\000\001Zl\000\001`\018\000\000\018\154\000\001`\018\000\001y\214\000\000\000\000\000\000\017p\000\000\019\n\000\000\019\154\000\000\027\230\000\001\130\252\000\000\000\000\000\000\018:\000\000\019V\000\001b\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\230\000\001\131\180\000\000\027\230\000\001\132l\000\000\011l\000\000\001*\000\001i\158\000\000\017\150\000\000\001*\000\001jX\000\000\000\000\000\001\133$\000\000\006\198\000\000\000\000\000\001k\018\000\000\000\000\000\001\133\220\000\000#\014\000\000\000\000\000\000#\176\000\000\000\000\000\000\026\142\000\000\027\210\000\000\000\000\000\001b\202\000\000\147\014\000\000\000\000\000\000\005|\000\000\000\000\000\000\027\230\000\000$\182\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y2\000\000\000\000\000\000\026\024\000\000\000\003\000\000\159,\000\000\160\006\000\000\020\024\000\000\004\222\000\000\169d\000\000\026\180\000\000\216\172\000\000\170>\000\000\156V\000\000\024\144\000\000\020\026\000\000\020\026\000\000\171\024\000\000\020\026\000\000\156V\000\000\024\144\000\000\147>\000\000\156V\000\000\024\144\000\000\000\003\000\001cF\000\000\024\144\000\001aT\000\000\219L\000\000\145\218\000\000\000\003\000\001k\188\000\000\024\144\000\000\153`\000\000\001\026\000\000\000\000\000\001c\244\000\000\149$\000\000\149$\000\000\153\154\000\001\162`\000\000\005\214\000\001`\018\000\000\001\130\000\000\000\000\000\000\001\130\000\000\000\000\000\000\000\000\000\000\026\196\000\000\000\000\000\000\026\210\000\000\000\000\000\000\149\248\000\001\162`\000\000\006\244\000\001`\018\000\000\006Z\000\000\000\000\000\000\007x\000\000\000\000\000\000\000\000\000\001c\244\000\000\015\148\000\000\026\214\000\000\000\000\000\000\015\148\000\000\026\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149$\000\000\019\234\000\000\026\182\000\000\0260\000\000\007\184\000\000\027\004\000\000\000\000\000\000\006\154\000\000\007\184\000\000\027\022\000\000\000\000\000\000\000\000\000\000\027\024\000\000\000\000\000\000\b\214\000\000\000\000\000\000\000\000\000\000\154\024\000\001\162`\000\000\007\012\000\001`\018\000\000\005\250\000\000\000\000\000\001\134X\000\000\219\128\000\001\162`\000\000\b\190\000\001`\018\000\000\b6\000\000\tT\000\000\027\026\000\000\000\000\000\000\0272\000\000\000\000\000\000\027@\000\000\000\000\000\001\148\"\000\000\149$\000\000\220(\000\001\162`\000\000\tx\000\001`\018\000\000\n\210\000\000\000\000\000\001\134X\000\000\223\014\000\000\000\000\000\001\162`\000\000\t\220\000\001`\018\000\000\011\144\000\000\000\000\000\000\001\130\000\000\027H\000\000\000\000\000\000\027J\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\220\000\000\000\000\000\000\000\000\000\000\012\192\000\001Yh\000\000\004\014\000\000\027\026\000\000\171\242\000\001cF\000\000\024\144\000\001aT\000\000)0\000\000\172\204\000\000\020 \000\000\027\014\000\000\000\177\000\000\027X\000\000\000\000\000\000\000\000\000\000\020\026\000\000\020\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\000\000\026\016\000\000(\018\000\000\000\000\000\000\160\224\000\000\161\186\000\000\152\252\000\000\024\144\000\000\027\210\000\000\0120\000\000\027\230\000\000%\234\000\000\000\000\000\000\162\148\000\000\163n\000\001\135\006\000\000#\210\000\001`\018\000\000\018\164\000\000\000\003\000\001cF\000\000\024\144\000\000\219L\000\000(\230\000\000\000\003\000\000\000\003\000\000\156V\000\000\024\144\000\000\020\026\000\000\026\180\000\000\027\030\000\000\000\000\000\000\020\026\000\000\003X\000\000\rl\000\000\154p\000\001cF\000\000\024\144\000\001aT\000\000\029>\000\000\154p\000\000\173\166\000\001cF\000\000\024\144\000\001aT\000\000\000\000\000\000\000\000\000\000\020\026\000\000\020@\000\000\027.\000\000\000\177\000\000\027t\000\000\000\000\000\000\000\000\000\000\027j\000\000\000\000\000\000\020\026\000\000\004v\000\000\027n\000\000\000\000\000\000\029H\000\000\000\003\000\000\027\178\000\000\000\000\000\000*N\000\000\174\128\000\000\020r\000\000\027z\000\000\000\177\000\000\027\192\000\000\000\000\000\000\000\000\000\000\020\026\000\000\027\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001cF\000\000\024\144\000\001aT\000\000+l\000\000\219L\000\000\000\000\000\000\0218\000\000\028\240\000\000\020B\000\000\000\003\000\000\000\000\000\000\000\000\000\000,\138\000\000\175Z\000\001cF\000\000\024\144\000\001aT\000\000-\168\000\000.\198\000\000\1764\000\001cF\000\000\024\144\000\001aT\000\000/\228\000\0001\002\000\000\000\000\000\000\022V\000\000\030\014\000\000\177\014\000\001cF\000\000\024\144\000\001aT\000\000\000\000\000\000\000\000\000\000\000\003\000\000\157j\000\000\000\003\000\000\000\000\000\000\000\000\000\000\177\232\000\001cF\000\000\024\144\000\001aT\000\0002 \000\0003>\000\000\178\194\000\001cF\000\000\024\144\000\001aT\000\0004\\\000\0005z\000\000\179\156\000\001cF\000\000\024\144\000\001aT\000\0006\152\000\0007\182\000\000\180v\000\001cF\000\000\024\144\000\001aT\000\0008\212\000\0009\242\000\000\181P\000\001cF\000\000\024\144\000\001aT\000\000;\016\000\000<.\000\000\182*\000\001cF\000\000\024\144\000\001aT\000\000=L\000\000>j\000\000\183\004\000\001cF\000\000\024\144\000\001aT\000\000?\136\000\000@\166\000\000\183\222\000\001cF\000\000\024\144\000\001aT\000\000A\196\000\000B\226\000\000\184\184\000\001cF\000\000\024\144\000\001aT\000\000D\000\000\000E\030\000\000\185\146\000\001cF\000\000\024\144\000\001aT\000\000F<\000\000GZ\000\000\186l\000\001cF\000\000\024\144\000\001aT\000\000Hx\000\000I\150\000\000\187F\000\001cF\000\000\024\144\000\001aT\000\000J\180\000\000K\210\000\000\188 \000\001cF\000\000\024\144\000\001aT\000\000L\240\000\000N\014\000\000\188\250\000\001cF\000\000\024\144\000\001aT\000\000O,\000\000PJ\000\000\189\212\000\001cF\000\000\024\144\000\001aT\000\000Qh\000\000R\134\000\000\190\174\000\001cF\000\000\024\144\000\001aT\000\000S\164\000\000T\194\000\000\191\136\000\001cF\000\000\024\144\000\001aT\000\000U\224\000\000V\254\000\000\192b\000\001cF\000\000\024\144\000\001aT\000\000X\028\000\000Y:\000\000\193<\000\001cF\000\000\024\144\000\001aT\000\000ZX\000\000[v\000\000\194\022\000\001cF\000\000\024\144\000\001aT\000\000\\\148\000\000]\178\000\000\194\240\000\001cF\000\000\024\144\000\001aT\000\000^\208\000\000_\238\000\000\195\202\000\000\020\212\000\000\027\140\000\000\000\177\000\000\027\212\000\000\000\000\000\000\000\000\000\000\020\026\000\000\031,\000\001cF\000\000\024\144\000\001aT\000\000a\012\000\000b*\000\000\196\164\000\001cF\000\000\024\144\000\001aT\000\000cH\000\000df\000\000\024\144\000\001lj\000\000\152J\000\000\224\n\000\000\027\226\000\000\153`\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\177\000\000\000\000\000\000\027L\000\000\171\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153`\000\001\162`\000\000\b\214\000\000\027:\000\001`\018\000\000\n\210\000\000\000\003\000\000\000\000\000\000\027d\000\000\000\003\000\000\000\000\000\000\nN\000\001`\018\000\000\011\240\000\000\000\003\000\000\000\000\000\000\027h\000\000\000\003\000\000\000\000\000\000\018\210\000\000\000\003\000\000\000\000\000\000\027\140\000\000\000\003\000\000\000\000\000\000\000\000\000\000\027\144\000\000\000\003\000\000\000\000\000\000\148\232\000\001`\018\000\000\r\014\000\000\000\003\000\000\000\000\000\000\027\172\000\000\000\003\000\000\000\000\000\000\027\190\000\000\000\003\000\000\000\000\000\000.\244\000\000\000\003\000\000\000\000\000\001\135\180\000\000\021\b\000\000\028*\000\000\027\154\000\001`\018\000\000\020j\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000/\154\000\000\219L\000\0000\018\000\000\000\023\000\000\000\000\000\000\000\023\000\001Z\156\000\001\162`\000\000\nf\000\001`\018\000\000\014,\000\000\000\003\000\000\000\000\000\000\027\200\000\000\000\003\000\000\000\000\000\000\019\240\000\000\000\003\000\000\000\000\000\000\027\202\000\000\000\003\000\000\000\000\000\000\000\000\000\000\027\206\000\000\000\003\000\000\000\000\000\000\000\000\000\001\136\214\000\001\136\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\132\000\000\000\003\000\000\028\164\000\000\000\000\000\000\000\003\000\000\028\164\000\000\000\000\000\000\t\250\000\000\014\138\000\000\154p\000\000\028\178\000\000\000\000\000\001[`\000\000\155|\000\000\000\000\000\000\154p\000\000\028\176\000\000\000\000\000\000\154p\000\000\028\194\000\000\000\000\000\000\000\000\000\000\020\026\000\000\005\148\000\000\015\168\000\000\154p\000\000\028\204\000\000\006\178\000\000\197~\000\001cF\000\000\024\144\000\001aT\000\000f\162\000\000g\192\000\000\154p\000\000\028\204\000\000\007\208\000\000\198X\000\001cF\000\000\024\144\000\001aT\000\000h\222\000\000i\252\000\000\154p\000\000\028\212\000\000\b\238\000\000\1992\000\001cF\000\000\024\144\000\001aT\000\000k\026\000\000l8\000\000!n\000\000\000\003\000\000\028\222\000\000\n\012\000\000\200\012\000\001cF\000\000\024\144\000\001aT\000\000mV\000\000nt\000\000\000\003\000\000\028\238\000\000\011*\000\000\200\230\000\001cF\000\000\024\144\000\001aT\000\000o\146\000\000p\176\000\000\000\003\000\000\029\020\000\000\012H\000\000\201\192\000\001cF\000\000\024\144\000\001aT\000\000q\206\000\000r\236\000\000\015\014\000\000\016\198\000\000\154p\000\000\029\028\000\000\rf\000\000\202\154\000\001cF\000\000\024\144\000\001aT\000\000t\n\000\000u(\000\000\154p\000\000\029.\000\000\014\132\000\000\203t\000\001cF\000\000\024\144\000\001aT\000\000vF\000\000wd\000\000\154p\000\000\0290\000\000\015\162\000\000\204N\000\001cF\000\000\024\144\000\001aT\000\000x\130\000\000y\160\000\000\016\192\000\000\205(\000\001cF\000\000\024\144\000\001aT\000\000z\190\000\000{\220\000\000\017\222\000\000\023t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029@\000\000\000\000\000\000\154p\000\000\029H\000\000\000\000\000\000\154p\000\000\029L\000\000\000\000\000\000\000\000\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\003\000\000\028\146\000\000\000\003\000\000\028\156\000\000\000\000\000\000\000\000\000\0000\184\000\000\000\003\000\000\000\000\000\000\006(\000\000\000\003\000\000\000\000\000\001\135\006\000\000\000\000\000\000\000\000\000\001z\134\000\000\029n\000\000\000\000\000\000\164H\000\001cF\000\000\024\144\000\001aT\000\000\029>\000\000\206\002\000\001cF\000\000\024\144\000\001aT\000\000\0288\000\001d\138\000\000\024\144\000\0001P\000\000\024\144\000\000\219L\000\000\219L\000\000(\162\000\000\206\220\000\001cF\000\000\024\144\000\001aT\000\000\028 \000\001[\172\000\000\219L\000\000+\252\000\000\207\182\000\001cF\000\000\024\144\000\001aT\000\000\030\\\000\001\\\148\000\000\219L\000\000-\026\000\000\208\144\000\001cF\000\000\024\144\000\001aT\000\000\031z\000\001\\\224\000\000(\166\000\000\209j\000\001cF\000\000\024\144\000\001aT\000\000 \152\000\001]\200\000\000\210D\000\001cF\000\000\024\144\000\001aT\000\000\029>\000\000\211\030\000\001cF\000\000\024\144\000\001aT\000\000!\182\000\001^\020\000\001[`\000\000\211\248\000\001cF\000\000\024\144\000\001aT\000\000\"\212\000\001^\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\168\000\000\000\000\000\001l\232\000\000\bt\000\000\000\000\000\000\165\"\000\001cF\000\000\024\144\000\001aT\000\000\029>\000\000\rt\000\000\000\000\000\000\000\000\000\000\028\162\000\000\000\000\000\001l\232\000\000\014\146\000\000\000\000\000\000\165\252\000\000\000\000\000\001cF\000\000\024\144\000\001aT\000\000\029>\000\000\001:\000\000\000\000\000\000\029\134\000\000\000\000\000\001m\138\000\000\0052\000\000\000\000\000\000\020\024\000\000\029\000\000\000\000\000\000\000\026\180\000\000%N\000\000\014\194\000\000\000\000\000\000 \168\000\000\015\158\000\000\020\014\000\000\026\130\000\000\000\000\000\000\000\000\000\000\029\138\000\000\000\000\000\000\001\196\000\000#\164\000\000\225\012\000\000\000\000\000\000 J\000\001cF\000\000\024\144\000\001aT\000\000|\250\000\000~\024\000\000\000\000\000\000\029b\000\000\000\003\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\1276\000\000\029\170\000\000\212\210\000\001cF\000\000\024\144\000\001aT\000\000\128T\000\000\213\172\000\001cF\000\000\024\144\000\001aT\000\000\129r\000\000\130\144\000\000\131\174\000\000\214\134\000\001cF\000\000\024\144\000\001aT\000\000\132\204\000\000\133\234\000\000\000\000\000\000\029\002\000\000\000\000\000\000\027\208\000\000\215`\000\000\021>\000\000\029v\000\000\000\177\000\000\029\198\000\000\000\000\000\000\000\000\000\000\020\026\000\000!h\000\001cF\000\000\024\144\000\001aT\000\000\135\b\000\000\136&\000\001cF\000\000\024\144\000\001aT\000\000\0162\000\000\000\000\000\001[`\000\000\000\000\000\000\018\252\000\000\"\134\000\001cF\000\000\024\144\000\001aT\000\000\006~\000\000*\018\000\000\000\000\000\000,\138\000\000\029\194\000\000\000\000\000\001cF\000\000\024\144\000\001aT\000\000&\252\000\001d\138\000\000\021\160\000\000\022\014\000\000\000\000\000\000\000\000\000\000\029D\000\000\000\000\000\001cF\000\000\024\144\000\001aT\000\000\029>\000\000\r\004\000\000\000\000\000\000\029\212\000\000\000\000\000\001m\138\000\000\r\132\000\000\000\000\000\001cF\000\000\024\144\000\001aT\000\000\029>\000\000\015\176\000\000\000\000\000\000\000\000\000\000\029\012\000\000\000\000\000\001l\232\000\000\016\206\000\000\000\000\000\000\000\000\000\000\024\144\000\000\027\210\000\000\027b\000\000\000\003\000\000\000\000\000\000\000*\000\000\000j\000\000\011\018\000\000\011\152\000\000\027\210\000\001\148d\000\000\027\230\000\000\028\136\000\000\027\210\000\001\148\236\000\000\029n\000\000\000\003\000\000\000\000\000\000\011\152\000\000\000\000\000\000\030\024\000\000\024P\000\000\031n\000\000\000\000\000\000\021\136\000\000\029\238\000\000\000\000\000\000\029\242\000\000\000\154\000\001Yh\000\000\018H\000\000\000\000\000\000\000\000\000\000\029\192\000\000\029L\000\001\162`\000\000\011\180\000\001`\018\000\000'\168\000\000\b\012\000\000\029\224\000\001e\130\000\000\000\000\000\000\000\000\000\000\003\148\000\000\021\026\000\000\024f\000\000\000\000\000\0002\166\000\000\030&\000\000\000\000\000\000!\140\000\000\000\000\000\000\000\000\000\001Yh\000\001nD\000\001\137\132\000\000\030:\000\001\151\134\000\001Yh\000\001nD\000\001\138$\000\001nD\000\001\138\196\000\000\000\000\000\001nD\000\001\139d\000\001l\238\000\001\162\132\000\000\004.\000\000\220\144\000\000\007\184\000\000\021*\000\000\226\n\000\000\012\138\000\001Yh\000\000\030\006\000\001Yh\000\001\139\246\000\001n\214\000\000\030\b\000\001Yh\000\001\140\136\000\001o\144\000\000\n\210\000\000\029\204\000\000\000\003\000\000\000\000\000\000\000\000\000\000\024\144\000\001f8\000\000\000\000\000\001lj\000\001\136\214\000\000\000\000\000\000\000\000\000\000\030L\000\000\000\000\000\000\015\148\000\000\030P\000\000\000\000\000\000\000\000\000\000\000\000\000\001cF\000\000\024\144\000\001aT\000\000\137D\000\000\138b\000\000\000\000\000\001cF\000\000\024\144\000\001aT\000\000\029>\000\000\t\012\000\000\000\000\000\000\000\000\000\000\029\144\000\000\000\000\000\001l\232\000\000\r\180\000\000\000\000\000\000\000\000\000\000\152\252\000\000\024\144\000\000\027\210\000\000\t\244\000\000\000\000\000\000\027\230\000\000%\236\000\000\000\000\000\000\007\168\000\000\000\000\000\000\000d\000\000\000\000\000\000\030\154\000\000\000\000\000\000\030\204\000\001aT\000\000\139\128\000\000\000\000\000\001cF\000\000\024\144\000\001aT\000\000$\142\000\000\000\000\000\000\027\230\000\000&h\000\000\000\000\000\000\027\230\000\000\027\198\000\000\000\000\000\000\027\230\000\000'v\000\000\000\000\000\001[\172\000\000\000\000\000\000\027\230\000\000)\230\000\000\000\000\000\000\027\230\000\000#\152\000\000\000\000\000\000\027\230\000\000*\212\000\000\000\000\000\001\136\214\000\000\000\000\000\000\024\144\000\000\027\210\000\001\136\214\000\000\000\000\000\000\030\138\000\000\001\004\000\000\003\150\000\000\004.\000\001\156\132\000\000\027\230\000\001\152\152\000\001\136\214\000\000\000\000\000\000\011j\000\000\018\030\000\000\011\018\000\000\011\152\000\001\136\214\000\001\159\022\000\000\000j\000\000\011\018\000\000\011\152\000\001\136\214\000\001\159\022\000\000\000\000\000\000\000\000\000\000\011\152\000\001\136\214\000\000\000\000\000\000\157j\000\000\1462\000\000\219L\000\000\026\016\000\000\000\003\000\000\000\000\000\000\157j\000\000\1462\000\000\030f\000\000\030\006\000\000\007\184\000\000\000\000\000\000\149\244\000\000\000\000\000\000\001\004\000\000\002\248\000\000\000\023\000\000\029\224\000\001\162`\000\000\r\168\000\001`\018\000\001\141\026\000\000\021\150\000\000\030\030\000\000\030\212\000\001\157\022\000\000\000\000\000\001\136\214\000\000\000\000\000\001\141\172\000\000\030\024\000\000\024P\000\000\031n\000\001\149~\000\000\"\134\000\000\021\196\000\000\002>\000\000\017\156\000\000\029\254\000\000\024\144\000\001\136\214\000\000\000\000\000\000\024\144\000\001\136\214\000\000\000\000\000\001`\018\000\000\221t\000\000\025v\000\000\000*\000\000\000j\000\000\001*\000\001_X\000\000\000\000\000\000\000j\000\000\001*\000\001_X\000\000\000\000\000\000 \198\000\000\001\004\000\000\003\150\000\000\004.\000\001\156\132\000\000\027\230\000\001_X\000\000\000\000\000\000\011j\000\000\019<\000\000\"\254\000\000\001*\000\001_X\000\000\000\000\000\000\011\018\000\000\030\002\000\000\027\230\000\001_X\000\001Vh\000\000\000j\000\000\011\018\000\000\030\020\000\000\027\230\000\001_X\000\001Vh\000\000\000\000\000\000\000\000\000\000\019j\000\000\000\003\000\001\136\214\000\000\000\000\000\000\027\230\000\001u\240\000\000\158R\000\000\000\000\000\000\t\\\000\000\000\000\000\000\030\024\000\000\024P\000\000\031n\000\001\145R\000\000\146f\000\000$*\000\000\024\144\000\000\014 \000\000\000\000\000\000\011L\000\000'\236\000\000\000\000\000\000\021n\000\000\000\000\000\000'\236\000\000\000\000\000\000\030\174\000\000\030H\000\000\148\026\000\000\024\144\000\000\225\150\000\001`\018\000\000\022b\000\000\000\000\000\000&*\000\000\b\142\000\000\015B\000\000\021Z\000\000\000\000\000\000\022\162\000\000\000\000\000\000\030\182\000\000\0306\000\001`\018\000\000\154\232\000\000\000\000\000\000\024\144\000\000\r2\000\000\020\160\000\000\000\000\000\000\022\220\000\000\000\000\000\000\030\204\000\000\030<\000\001\162`\000\000\154\232\000\000\000\000\000\000\024\144\000\000\148\026\000\000\030\244\000\000\017\000\000\000\000j\000\000\000\003\000\000\018\028\000\000\148\026\000\001`\018\000\000\021\200\000\000\0118\000\000\000\000\000\001`\018\000\000\002x\000\000\t~\000\000\000\000\000\000\000\000\000\001\142>\000\000\000\000\000\000\000\003\000\000\021f\000\000\148\026\000\001\142\208\000\000\154\232\000\000\000\000\000\000\024\144\000\001`\018\000\000\020Z\000\001`\018\000\000(\018\000\000\154\232\000\000\000\000\000\000\030h\000\000\000\000\000\000\154\232\000\000\000\000\000\000\000\000\000\000&*\000\000\000\000\000\001\136\214\000\001\159\158\000\000\024\144\000\000\014 \000\000\011L\000\000\030\218\000\000\030v\000\000\148\026\000\001\136\214\000\001\159\158\000\000\000\000\000\000\000\000\000\000\024\144\000\000\014 \000\000\011L\000\000\030\224\000\000\030\\\000\001\167\166\000\001\136D\000\001Yh\000\000\031\006\000\001\167\166\000\001`\018\000\000\t~\000\000\031\012\000\001\167\166\000\001Yh\000\000\031\030\000\001\167\166\000\000\020\158\000\000\031,\000\001\143\138\000\001\144\192\000\000\000\000\000\001\157\132\000\000\000\000\000\000\000\000\000\000\158R\000\001\167\190\000\000\024\144\000\000\014 \000\000\011L\000\000\031*\000\000\030\156\000\001\167\166\000\000\158R\000\001\167\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\158R\000\000\000\000\000\000\153\026\000\000\024\144\000\000\027\230\000\001_X\000\001nD\000\000\000\000\000\001\159~\000\000\024|\000\000\222\134\000\000\0318\000\001\145\242\000\001\151\234\000\000\000\000\000\001\136\252\000\001\160\024\000\000\000\000\000\000\000\000\000\000\000\000\000\001\168\018\000\000\024|\000\000\222\134\000\000\031@\000\000\022\028\000\000\030\192\000\001\147\156\000\001\157\198\000\000\018H\000\000\031\144\000\000\000\000\000\000\000\000\000\001\1448\000\001\145R\000\000\024\144\000\000\000\000\000\001\153\006\000\000\031n\000\000\000\000\000\000\000\000\000\001\136\252\000\001\168\018\000\000\000\000\000\000\000\000\000\000\000\000\000\001\149\236\000\000\160\018\000\000\158\252\000\000\018H\000\000\031\168\000\000\000\000\000\000\000\000\000\000\000\000\000\001\145R\000\000\024\144\000\000\000\000\000\000\018H\000\000\031\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t,\000\000\146f\000\000\024\144\000\000\014 \000\000\011L\000\000\031\128\000\001p:\000\000\149$\000\000\156\216\000\000\024\144\000\000\1572\000\000\217 \000\000\024\222\000\000\b\142\000\000\022\192\000\000\000\000\000\000\031\132\000\000\014r\000\000\000\003\000\000\000\000\000\000\031\030\000\000\000\003\000\000\000\000\000\000\226\180\000\000\000\000\000\000\015n\000\000\023\020\000\000\000\000\000\000\023\192\000\000\000\000\000\000\031\140\000\000\030\254\000\001`\018\000\000\228\192\000\000\031\150\000\000\015\144\000\000\000\003\000\000\000\000\000\000\031<\000\000\000\003\000\000\000\000\000\000\024\224\000\000\b\134\000\000\022\016\000\000\000\000\000\000\031\172\000\001p\232\000\001\162\246\000\000\b\214\000\000\031F\000\001`\018\000\000\022\150\000\000\000\003\000\000\000\000\000\000\031\\\000\000\000\003\000\000\000\000\000\000\000\000\000\000\226\180\000\000\000\000\000\000\016\140\000\000\0228\000\000\000\000\000\000\024<\000\000\000\000\000\000\031\212\000\000\031P\000\001\162`\000\000\000\000\000\000\031\230\000\001q\150\000\001\163J\000\000\b\214\000\000\031n\000\001`\018\000\000\023\028\000\000\000\003\000\000\000\000\000\000\031\132\000\000\000\003\000\000\000\000\000\000\000\000\000\000\024\144\000\000\000\003\000\000\226\180\000\000\000\000\000\000\024\194\000\000\024\144\000\000\156\216\000\000\156\216\000\001X\162\000\000\157j\000\000\024\144\000\001f8\000\001lj\000\000\017.\000\000\000\000\000\000\020Z\000\000\000j\000\000\000\003\000\000\021\234\000\000\156\216\000\001`\018\000\000\022\148\000\000\014\194\000\000\000\000\000\000\024\144\000\001p:\000\001p:\000\000\156\216\000\000\021\182\000\000\156\216\000\000\000\000\000\000\150:\000\000\151H\000\000\000\000\000\001{\022\000\000\000\000\000\000\000\000\000\001{\206\000\000\000\000\000\000\000\000\000\001|\134\000\000\000\003\000\000\022\148\000\000\156\216\000\001}>\000\001f8\000\001lj\000\000\017.\000\000\000\000\000\000\t,\000\000\000\000\000\001\167\166\000\000 2\000\000\000\000\000\000&\252\000\000 \026\000\000\000\000\000\000\226\180\000\000\000\000\000\000\156\216\000\000&\252\000\000\226\180\000\000\000\000\000\000\024\144\000\001`\018\000\000\226\180\000\000\000\000\000\000\031\174\000\000\000\000\000\000\226\180\000\000\000\000\000\000\000\000\000\000\217 \000\000\000\000\000\001\154 \000\001\167\166\000\000\031\196\000\000\156\216\000\001\154\178\000\001p:\000\000\000\000\000\001\136\214\000\001\160\146\000\000\024\144\000\000\014 \000\000\011L\000\000 .\000\001p:\000\001\136\214\000\001\160\146\000\000\000\000\000\000\000\000\000\000\000\000\000\001\168x\000\000\156V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\1582\000\000\000\000\000\001\136\214\000\000\000\000\000\000\152\252\000\000\024\144\000\000\027\210\000\001\136\214\000\000\000\000\000\001\160\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001_X\000\001\168x\000\000\000\000\000\000\000\000\000\000\000\000\000\001\1582\000\000 p\000\000\000\000\000\000 r\000\000\000\000\000\001_X\000\001\168x\000\000\000\000\000\000\000\000\000\000 \128\000\000\000\000\000\000\000\000\000\000 t\000\000*\144\000\000\031n\000\000\031n\000\001\146\132\000\000\"\134\000\000\024\144\000\000\000\000\000\001\136\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\198\000\000\"\134\000\000\024\144\000\000\000\000\000\000\019\164\000\001\145\242\000\001\151\234\000\000\000\000\000\001\136\252\000\000\000\000\000\000 v\000\000*\144\000\000\031n\000\001\136\214\000\000\000\000\000\000\031\222\000\000\000\000\000\001}\244\000\000+`\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\001\1664\000\000\031\206\000\001~p\000\000\023D\000\000 X\000\000\031\200\000\001`\018\000\000\023\152\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\001\166|\000\000\157*\000\000\000\000\000\001`\018\000\000\023\174\000\000\000\000\000\000\217 \000\000\031\240\000\000\000\000\000\000#\164\000\000\020\026\000\000$\194\000\001cF\000\000\024\144\000\001aT\000\000\140\158\000\000\141\188\000\000\031\236\000\000\216:\000\000\023\206\000\000 \140\000\000\000\177\000\000 \206\000\000\000\000\000\000\000\000\000\000\020\026\000\000%\224\000\001cF\000\000\024\144\000\001aT\000\000\142\218\000\000\143\248\000\000 \252\000\001aT\000\000\145\022\000\000\000\000\000\000 \210\000\000\000\000\000\000%H\000\001\162`\000\000\t\138\000\000\012\172\000\000\024\144\000\001\1276\000\000\000\000\000\000\000\000\000\000\030\196\000\001\147x\000\000\000\000\000\000\000\000\000\000 L\000\000\000\000\000\000\015\228\000\001`\018\000\000\023\214\000\000\023\132\000\001`\018\000\001\003\000\000\001:\170\000\000\000\000\000\001\145<\000\001\003\250\000\001;\164\000\000 \178\000\001`\018\000\001\004\244\000\001<\158\000\000\000\000\000\001\145<\000\001\005\238\000\001=\152\000\000\018H\000\000 \226\000\000\000\000\000\000\000\000\000\001\153\152\000\000\000\000\000\000\000\000\000\001\147\156\000\000\000\000\000\001\136\252\000\000\000\000\000\000 \214\000\000*\144\000\000 T\000\000\158R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\130\000\001\135\180\000\001\158\154\000\001\147\156\000\000\000\000\000\001\136\252\000\000\000\000\000\000 \218\000\000*\144\000\000 T\000\000\158R\000\000\000\000\000\000 T\000\000\000\000\000\000+x\000\000\000\000\000\000\017\002\000\001`\018\000\000\024\194\000\000\024\196\000\001`\018\000\001\006\232\000\001>\146\000\000\000\000\000\001\145<\000\001\007\226\000\001?\140\000\000 \210\000\001`\018\000\001\b\220\000\001@\134\000\000\000\000\000\001\145<\000\001\t\214\000\001A\128\000\000\025$\000\001`\018\000\001\n\208\000\001Bz\000\000\000\000\000\001\145<\000\001\011\202\000\001Ct\000\000 \216\000\001`\018\000\001\012\196\000\001Dn\000\000\000\000\000\001\145<\000\001\r\190\000\001Eh\000\001\169\n\000\001\155\196\000\000\017\174\000\001`\018\000\000\025z\000\000\025:\000\001`\018\000\001\014\184\000\001Fb\000\000\000\000\000\001\145<\000\001\015\178\000\001G\\\000\000 \240\000\001`\018\000\001\016\172\000\001HV\000\000\000\000\000\001\145<\000\001\017\166\000\001IP\000\000\025\192\000\001`\018\000\001\018\160\000\001JJ\000\000\000\000\000\001\145<\000\001\019\154\000\001KD\000\000 \248\000\001`\018\000\001\020\148\000\001L>\000\000\000\000\000\001\145<\000\001\021\142\000\001M8\000\000\031\252\000\001\155b\000\000\015\252\000\001`\018\000\001\022\136\000\001N2\000\000\000\000\000\001\145<\000\001\023\130\000\001O,\000\000 \250\000\001`\018\000\001\024|\000\001P&\000\000\000\000\000\001\145<\000\001\025v\000\001Q \000\000!\026\000\001\155b\000\000\228\186\000\001`\018\000\001\026p\000\001R\026\000\000\000\000\000\001\145<\000\001\027j\000\001S\020\000\000!\014\000\001`\018\000\001\028d\000\001T\014\000\000\000\000\000\001\145<\000\001\029^\000\001U\b\000\001r&\000\000\023\204\000\000\000\000\000\000\007\184\000\000\000\000\000\000\004.\000\000\226\136\000\000\007\184\000\000\000\000\000\000\016\254\000\001r\220\000\000\025j\000\000\000\000\000\000\025N\000\000\000\000\000\001\167R\000\000\230\004\000\000\007\184\000\000\000\000\000\000\004.\000\000\226\140\000\000\007\184\000\000\000\000\000\000\018D\000\000\004.\000\000\220\144\000\001n\188\000\001\136\214\000\000\000\000\000\000!@\000\000\000\000\000\000\000\003\000\000 \134\000\000\000\003\000\000 \140\000\000\000\000\000\000 \170\000\000\000\000\000\000\000\000\000\000\155|\000\000 \176\000\000\000\000\000\000\000\000\000\000!\170\000\001f\178\000\000!j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\218\000\000\019V\000\001s~\000\000!x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \222\000\000\000\000\000\000\"\134\000\000\000\000\000\000 \224\000\000\000\000\000\001`\018\000\000\000\000\000\000\017\n\000\000\000\000\000\000\000\003\000\000 \246\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\000\000\004^\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\189\000\000\000\000\000\000\027\210\000\000\000\000\000\000\005|\000\000\000\000\000\000\027\230\000\000\000\000\000\000\000\210\000\000\000\000\000\000\019\n\000\000\000\000\000\000 \250\000\000\000\000\000\000\219L\000\000(\166\000\000\000\000\000\000\000\000\000\000\021 \000\000 \252\000\000\000\000\000\000\000\000\000\000 \248\000\000\021\146\000\000\147>\000\000\004.\000\001\150~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001k\016\000\000\004.\000\001\150\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001rF\000\000\000\000\000\000\000\000\000\000!\186\000\000\000\000\000\001{\196\000\000\000\000\000\000\024\168\000\000!\192\000\000\000\000\000\000!\200\000\000\000\000\000\000\148J\000\000\148J\000\001\168\136\000\001\168\136\000\000\000\000\000\000\000\000\000\001r\252\000\001\168\136\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\252\000\001\168\136\000\000!\026\000\000\000\000\000\000!\028\000\000\000\000"), (16, "\004A\000\006\004A\004\178\004A\003r\003v\003z\004A\003~\003J\004A\003\138\004A-{\bF\004A\bJ\nA\004A\004A\004A\014f\004A\004A\004A\001\234\004\186\002]\002]\bN\004A\t>\tB\019\002\004A\003\150\004A\tb\b\018\bR\001\006\tf\001\190\004A\004A\004A\t\146\t\150\004A\t\154\t\166\t\178\t\182\t\190\r~\000\n\004A\004A\003j\006\249\006\249\t\174\014\226\004A\004A\004A\014\230\014\234\014\246\015\002\015\022\030\242\004A\n:\004A\004A\004A\004A\004A\004A\004A\004A\004A\015&\004A\nR\nV\002]\014\254\004A\004\210\004A\004A\004A\001f\001^\0152\015J\017\142\nj\nn\004A\017\162\004A\004A\r\214\004A\004A\004A\004A\015\014\001v\015\018\001\134\027f\004A\029R\004A\004A\000\242\004A\004A\004A\004A\004A\004A\004A\nr\015\026\004A\004A\004A\017\"\007\134\004A\004A\017\166\002]\004A\004A\004A\004A\019\133\004a\019\133\004\178\019\133\015Z\019\133\019\133\019\133\014R\019\133\019\133\019\133\019\133\001\230\019\133\019\133\025f\004a\019\133\019\133\019\133\000\n\019\133\019\133\019\133\019\133\004\186\019\133\000\242\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\026\214\002]\019\133\002]\019\133\r:\019\133\019\133\019\133\019\133\019\133\019\133\015^\019\133\015\222\019\133\002]\019\133\t\186\019\133\019\133\019\133\003\194\029\234\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133-\155\019\133\011\194\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\001\229\019\133\019\133\019\133\019\133\019\133\019\133\006\030\019\133\019\133\019\133\001b\004\178\004^\004\165\019\133\019\133\019\133\019\133\ti\019\133\019\133\001n\019\133\019\133\019\133\019\133\019\133\019\133\019\133\025~\019\133\019\133\000\242\019\133\019\133\004\186\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\026b\001r\019\133\019\133\019\133\019\133\001\229\001\229\001\229\006\249\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\019M\000\242\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\019M\001\229\001\229\006\178\001\229\r:\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\012\177\001\229\027.\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\004\178\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001b\001\229\001\229\001\229\004\165\004\186\000\242\004\245\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\n\218\017B\001\229 \130\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\014\133\002\170\014\133\006\249\014\133\006\249\014\133\014\133\014\133\012\177\014\133\014\133\014\133\014\133\001~\014\133\014\133\r2\000\242\014\133\014\133\014\133\002\210\014\133\014\133\014\133\014\133\003\142\014\133)&\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\006\249\004\245\014\133\001\142\014\133\002\234\014\133\014\133\014\133\014\133\014\133\014\133\006\249\014\133\006\249\014\133\006\249\014\133\tq\014\133\014\133\014\133\r*\005\230\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\004&\014\133\012\241\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\006\249\014\133\014\133\014\133\014\133\014\133\014\133\001\130\014\133\014\133\014\133\001\186\000\242\000\242\001\230\014\133\014\133\014\133\014\133\012\229\014\133\014\133\000\242\014\133\014\133\014\133\014\133\014\133\017\198\014\133\001\242\018.\014\133\000\242\014\133\014\133\005\005\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\n\017\014\133\014\133\014\133\014\133\014\133\005%\003\194\005%\005\178\005%\000\242\005%\005%\005%\006\249\005%\005%\005%\005%\006\249\005%\005%\001\246\005\234\005%\005%\005%\000\242\005%\005%\005%\005%\005\186\005%\012\241\005%\005%\005%\005%\005%\005%\005%\005%\005V\003\210\005%\b2\005%\bB\005%\005%\005%\005%\005%\005%\003\210\005%\n\025\005%\003\218\005%\n\025\005%\005%\005%\012\229\005\005\005%\005%\005%\005%\005%\005%\005%\005%\002R\005%\n\029\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\003\210\017\182\005%\005%\017\190\005%\018&\r:\005%\005%\005%-k\025f\003\210\000\242\005%\005%\005%\005%\003\222\005%\005%\001\198\005%\005%\005%\005%\005%\017\198\005%\003\234\018.\005%\026\234\005%\005%\004\253\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\n\025\005%\005%\005%\005%\005%\005\021\n\029\005\021\003\006\005\021\003\222\005\021\005\021\005\021\014\186\005\021\005\021\005\021\005\021\014\242\005\021\005\021\019Q\004\018\005\021\005\021\005\021\000\242\005\021\005\021\005\021\005\021\002V\005\021\002\002\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\019Q\014\174\005\021\bj\005\021(\178\005\021\005\021\005\021\005\021\005\021\005\021\025~\005\021\n1\005\021\000\242\005\021\n1\005\021\005\021\005\021\004\178\004\253\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\004Z\005\021\016>\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\004\186\017\182\005\021\005\021\017\190\005\021\018&\r:\005\021\005\021\005\021-\139\001b\004\165\002\006\005\021\005\021\005\021\005\021\003\n\005\021\005\021\003\146\005\021\005\021\005\021\005\021\005\021\017\198\005\021\014\190\018.\005\021\000\242\005\021\005\021\006\145\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\n*\005\021\005\021\005\021\005\021\005\021\014%\002\182\014%\ty\014%\015v\014%\014%\014%\b\193\014%\014%\014%\014%\0252\014%\014%\001\230\r\218\014%\014%\014%\000\242\014%\014%\014%\014%\004\134\014%\003\026\014%\014%\014%\014%\014%\014%\014%\014%\001\146\b\193\014%\b\193\014%\r:\014%\014%\014%\014%\014%\014%\003\"\014%\019-\014%\014\022\014%\023b\014%\014%\014%\004\178\006\145\014%\014%\014%\014%\014%\014%\014%\014%\025:\014%\004\178\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\004\186\014%\014%\014%\014%\014%\014%\r:\014%\014%\014%\017\002\004\186\003\210\005j\014%\014%\014%\014%\007n\014%\014%\018\134\014%\014%\014%\014%\014%\014%\014%\016\006\014%\014%\003\226\014%\014%\006\137\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\002\026\001\242\014%\014%\014%\014%\0145\030\234\0145\b\002\0145\015\170\0145\0145\0145\019-\0145\0145\0145\0145\002\218\0145\0145\0166\004r\0145\0145\0145\000\242\0145\0145\0145\0145\b\134\0145\b\154\0145\0145\0145\0145\0145\0145\0145\0145\005j\002\030\0145\001\246\0145\007~\0145\0145\0145\0145\0145\0145\nI\0145\004\238\0145\nI\0145\023\134\0145\0145\0145\002\"\006\137\0145\0145\0145\0145\0145\0145\0145\0145\004*\0145\006\165\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\025f\0145\0145\0145\0145\0145\0145\r:\0145\0145\0145\004\190\nI\000\242\006\249\0145\0145\0145\0145\003\150\0145\0145\b\018\0145\0145\0145\0145\0145\0145\0145\007\134\0145\0145\000\242\0145\0145\006\249\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\004\242\006\249\0145\0145\0145\0145\014-\006\249\014-\004\178\014-\006\249\014-\014-\014-\b\253\014-\014-\014-\014-\000\242\014-\014-\025f\000\242\014-\014-\014-\029~\014-\014-\014-\014-\004\186\014-\005\190\014-\014-\014-\014-\014-\014-\014-\014-\025~\015\238\014-\016\"\014-\r:\014-\014-\014-\014-\014-\014-\005\206\014-&\202\014-\011\017\014-\023\170\014-\014-\014-\019)\026\130\014-\014-\014-\014-\014-\014-\014-\014-\004\198\014-\006\161\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\004&\014-\014-\014-\014-\014-\014-\016R\014-\014-\014-\012\173\004\178\000\242\006\249\014-\014-\014-\014-\b\253\014-\014-\r\154\014-\014-\014-\014-\014-\014-\014-\025~\014-\014-\000\242\014-\014-\004\186\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\030\166\000\242\014-\014-\014-\014-\014\025\000\242\014\025\004\178\014\025\005\n\014\025\014\025\014\025\030\214\014\025\014\025\014\025\014\025&\206\014\025\014\025\019)\025\002\014\025\014\025\014\025\002\246\014\025\014\025\014\025\014\025\004\186\014\025\006\249\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025!N\014\174\014\025\016\138\014\025\r:\014\025\014\025\014\025\014\025\014\025\014\025\012\173\014\025\001\230\014\025\000\242\014\025\023\210\014\025\014\025\014\025\004\178\r\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\004\206\014\025\004\178\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\004\186\014\025\014\025\014\025\014\025\014\025\014\025\016\170\014\025\014\025\014\025\004&\004\186\003\210\0032\014\025\014\025\014\025\014\025\023\018\014\025\014\025\tz\014\025\014\025\014\025\014\025\014\025\014\025\014\025\030\218\014\025\014\025\025\006\014\025\014\025\016\146\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\b\218\b\222\014\025\014\025\014\025\014\025\014!\t\198\014!\012\174\014!\021\202\014!\014!\014!\r\158\014!\014!\014!\014!\001\230\014!\014!\022\150\nN\014!\014!\014!\000\242\014!\014!\014!\014!\t\226\014!\t\246\014!\014!\014!\014!\014!\014!\014!\014!\006\249\006\249\014!\b\230\014!\007\246\014!\014!\014!\014!\014!\014!\006&\014!\006\186\014!\006\249\014!\023\246\014!\014!\014!\003\202\021\178\014!\014!\014!\014!\014!\014!\014!\014!\002}\014!\016\178\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!!\142\014!\014!\014!\014!\014!\014!\r:\014!\014!\014!\000\242\004\178\000\242\000\242\014!\014!\014!\014!\006*\014!\014!\r\154\014!\014!\014!\014!\014!\014!\014!\007\250\014!\014!\000\242\014!\014!\004\186\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\007\154\014^\014!\014!\014!\014!\014\029\005\138\014\029\b\234\014\029\014f\014\029\014\029\014\029\007\158\014\029\014\029\014\029\014\029\014j\014\029\014\029\029\002\005\194\014\029\014\029\014\029\000\242\014\029\014\029\014\029\014\029\bz\014\029\007\214\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\029\n\014\174\014\029\029r\014\029\r:\014\029\014\029\014\029\014\029\014\029\014\029\004&\014\029\003\226\014\029\000\242\014\029\024\026\014\029\014\029\014\029\004\178\021\210\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029)\138\014\029\000\242\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\004\186\014\029\014\029\014\029\014\029\014\029\014\029\r:\014\029\014\029\014\029\n\150\025f\n\170\003\238\014\029\014\029\014\029\014\029\007\158\014\029\014\029\n\r\014\029\014\029\014\029\014\029\014\029\014\029\014\029\017f\014\029\014\029\028\146\014\029\014\029!\254\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\b\150\r\021\014\029\014\029\014\029\014\029\014)\007\141\014)\"\006\014)\030\n\014)\014)\014)\025f\014)\014)\014)\014)\012*\014)\014)\025f\007a\014)\014)\014)\000\242\014)\014)\014)\014)\011=\014)\005\202\014)\014)\014)\014)\014)\014)\014)\014)\028\166\000\242\014)\025f\014)\016\226\014)\014)\014)\014)\014)\014)\025~\014)\003\226\014)\017\202\014)\024F\014)\014)\014)\004\178\022\026\014)\014)\014)\014)\014)\014)\014)\014)\024\226\014)\024\238\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\004\186\014)\014)\014)\014)\014)\014)\r:\014)\014)\014)\011\026!\134\011.\003\194\014)\014)\014)\014)\006j\014)\014)\025~\014)\014)\014)\014)\014)\014)\014)\025~\014)\014)\005\214\014)\014)\t\214\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\026\158\025~\014)\014)\014)\014)\0149\b\162\0149\019\185\0149 >\0149\0149\0149\025f\0149\0149\0149\0149\001\230\0149\0149\019\185\030\190\0149\0149\0149\000\242\0149\0149\0149\0149\b\174\0149\005\222\0149\0149\0149\0149\0149\0149\0149\0149\003z\011\146\0149\011\166\0149\005&\0149\0149\0149\0149\0149\0149\004&\0149\t\242\0149\023\022\0149\024j\0149\0149\0149\t\030\022\158\0149\0149\0149\0149\0149\0149\0149\0149\023.\0149\023:\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\tr\0149\0149\0149\0149\0149\0149\r:\0149\0149\0149\006J%\002\000\242!\210\0149\0149\0149\0149\006\190\0149\0149\025~\0149\0149\0149\0149\0149\0149\0149\003\150\0149\0149\b\018\0149\0149%\"\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\026\182!\218\0149\0149\0149\0149\0141\012\134\0141\012\154\0141\b\169\0141\0141\0141\025f\0141\0141\0141\0141\n9\0141\0141%*\n\029\0141\0141\0141\n\029\0141\0141\0141\0141\b\149\0141\007\230\0141\0141\0141\0141\0141\0141\0141\0141\0246\0122\0141\tz\0141\t\245\0141\0141\0141\0141\0141\0141\004&\0141\007\238\0141\023V\0141\024\142\0141\0141\0141\004\178\005j\0141\0141\0141\0141\0141\0141\0141\0141\023z\0141\023\158\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\004\186\0141\0141\0141\0141\0141\0141+\182\0141\0141\0141\012\186%J\012\206\rz\0141\0141\0141\0141\014\242\0141\0141\025~\0141\0141\0141\0141\0141\0141\0141\003\150\0141\0141\b\018\0141\0141%\174\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\028\190\007\158\0141\0141\0141\0141\014q\006\254\014q%\182\014q)\182\014q\014q\014q\025f\014q\014q\014q\014q\006\138\014q\014q\b\182\007\158\014q\014q\014q\028\026\014q\014q\014q\014q\0115\014q\006\222\014q\014q\014q\014q\014q\014q\014q\014q\004&\006\249\014q\007\030\014q\b\194\014q\014q\014q\014q\014q\014q\017\002\014q\012\253\014q\024:\014q\024\170\014q\014q\014q\004\178\018\134\014q\014q\014q\014q\014q\014q\014q\014q\024^\014q\024\130\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\004\186\014q\014q\014q\014q\014q\014q\004&\014q\014q\014q\003z\014\026\000\242\000\242\014q\014q\014q\014q\000\242\014q\014q\025~\014q\014q\014q\014q\014q\014q\014q\t~\014q\014q\t~\014q\014q\t.\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\028\214\007\017\014q\014q\014q\014q\005\017-K\005\017\004\178\005\017*\142\005\017\005\017\005\017\012\253\005\017\005\017\005\017\005\017\001\230\005\017\005\017\t\130 \134\005\017\005\017\005\017\"2\005\017\005\017\005\017\005\017\004\186\005\017\004:\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\b\218\b\222\005\017\012\242\005\017\r\006\005\017\005\017\005\017\005\017\005\017\005\017\n\166\005\017\007\017\005\017\031\182\005\017\004]\005\017\005\017\005\017\nB\r\154\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\007\222\005\017\r\t\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\r\230\017\182\005\017\005\017\017\190\005\017\018&+\"\005\017\005\017\005\017\000\242\029Z\003\210\003\226\005\017\005\017\005\017\005\017\r\238\005\017\005\017\b\157\005\017\005\017\005\017\005\017\005\017\017\198\005\017\">\018.\005\017\000\242\005\017\005\017\011*\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\b&\005\017\005\017\005\017\005\017\005\017\014\t\nB\014\t\014f\014\t\029^\014\t\014\t\014\t\b*\014\t\014\t\014\t\014\t\002\138\014\t\014\t\000\242\0142\014\t\014\t\014\t\000\242\014\t\014\t\014\t\014\t\011\162\014\t\r\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\b\218 \250\014\t\r\"\014\t\rf\014\t\014\t\014\t\014\t\014\t\014\t\012\150\014\t\0146\014\t!\n\014\t\014\n\014\t\014\t\014\t\001\246\017\138\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\b6\014\t\000\242\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\021\234\017\182\014\t\014\t\017\190\014\t\018&\001\230\014\t\014\t\014\t\000\242-\006\b>\001\246\014\t\014\t\014\t\014\t\012\202\014\t\014\t\r\154\014\t\014\t\014\t\014\t\014\t\017\198\014\t\r:\018.\014\t\bn\014\t\014\t\r\002\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t(f\014\t\014\t\014\t\014\t\014\t\002\141\rn\002\141\030r\002\141\000\242\003v\003z\002\141\br\003J\002\141\017\254\002\141\027\022\bF\002\141!B\rM\002\141\002\141\002\141\000\242\002\141\002\141\002\141\001\234\015\238\018\022\016\002\bN\002\141\002\141\002\141\002\141\002\141\018\030\002\141!N\006\249\bR\014\"\tf\b~\002\141\002\141\002\141\002\141\002\141\002\141\b\138\t\166\014\238\001\190\017\n\002\141\017\026\002\141\002\141\003j\014J\022^\t\174\014\226\002\141\002\141\002\141\014\230\014\234\014\246\018\002\023J\018\018\002\141\n:\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\022\182\017\182\nR\nV\017\190\014\254\018&\028r\002\141\002\141\002\141\018J\"\002\018Z\000\242\002\141\nj\nn\002\141\018\154\002\141\002\141\000\242\002\141\002\141\002\141\002\141\015\014\023R\015\018\r:\023\194\002\141\003\210\002\141\002\141\011E\002\141\002\141\002\141\002\141\002\141\002\141\002\141\nr\015\026\002\141\002\141\002\141\017\"\007\134\002\141\002\141\"\146\003z\002\141\002\141\002\141\002\141\014]\021\018\014]\021\"\014]\029\150\003v\003z\014]\004\225\003J\014]\014]\014]\030\002\bF\014]\021Z\b\142\014]\014]\014]&B\014]\014]\014]\001\234\022N\014]\022b\bN\014]\014]\014]\014]\014]\014]\014]#6\001\006\bR\001\190\tf\b\242\014]\014]\014]\014]\014]\014]!\154\t\166\t~\001\190\027\218\014]\027\234\014]\014]\003j!\214\003V\t\174\014\226\014]\014]\014]\014\230\014\234\014\246\b\177\014]\028j\014]\n:\014]\014]\014]\014]\014]\014]\014]\014]\014]\b\246\014]\nR\nV\014]\014\254\014]\003V\014]\014]\014]\"J\001\006\t\202\001\190\014]\nj\nn\014]\t\206\014]\014]\"v\014]\014]\014]\014]\015\014\014]\015\018\002V\014]\014]\t\218\014]\014]\t\230\014]\014]\014]\014]\014]\014]\014]\nr\015\026\014]\014]\014]\017\"\007\134\014]\014]%j\014f\014]\014]\014]\014]\014Y\r5\014Y&v\014Y!\158\003v\003z\014Y\nI\003J\014Y\014Y\014Y%\178\bF\014Y\014\238\0115\014Y\014Y\014Y\029B\014Y\014Y\014Y\001\234!\194\014Y&N\bN\014Y\014Y\014Y\014Y\014Y\014Y\014Y\019\205\029~\bR!\222\tf\t\234\014Y\014Y\014Y\014Y\014Y\014Y\"R\t\166\011z\001\190&Z\014Y\r9\014Y\014Y\003j\021Z\014f\t\174\014\226\014Y\014Y\014Y\014\230\014\234\014\246\"\n\014Y\000\242\014Y\n:\014Y\014Y\014Y\014Y\014Y\014Y\014Y\014Y\014Y\n\022\014Y\nR\nV\014Y\014\254\014Y\b\173\014Y\014Y\014Y\t\253$\246\0036\000\242\014Y\nj\nn\014Y\n\142\014Y\014Y\b\149\014Y\014Y\014Y\014Y\015\014\014Y\015\018&\174\014Y\014Y\003\210\014Y\014Y\011A\014Y\014Y\014Y\014Y\014Y\014Y\014Y\nr\015\026\014Y\014Y\014Y\017\"\007\134\014Y\014Y%\138%&\014Y\014Y\014Y\014Y\002\229\n\154\002\229\014f\002\229\019\193\003v\003z\002\229\"R\003J\002\229\017\254\002\229\001\230\bF\002\229\n\158\011\030\002\229\002\229\002\229\000\242\002\229\002\229\002\229\001\234(\190\018\022(\210\bN\002\229\002\229\002\229\002\229\002\229\018\030\002\229-\002(\206\bR%.\tf\011\"\002\229\002\229\002\229\002\229\002\229\002\229(\246\t\166\n\021\001\190)\194\002\229\n\021\002\229\002\229\003j*N%\234\t\174\014\226\002\229\002\229\002\229\014\230\014\234\014\246)\190\023J\006\249\002\229\n:\002\229\002\229\002\229\002\229\002\229\002\229\002\229\002\229\002\229\000\242\002\229\nR\nV\007\170\014\254\002\229\b\153\002\229\002\229\002\229\000\242)2\011b)B\002\229\nj\nn\002\229%\186\002\229\002\229\011n\002\229\002\229\002\229\002\229\015\014\006\249\015\018\011~\000\242\002\229\006\249\002\229\002\229\006\249\002\229\002\229\002\229\002\229\002\229\002\229\002\229\nr\015\026\002\229\002\229\002\229\017\"\007\134\002\229\002\229\n\021\006\249\002\229\002\229\002\229\002\229\006\249\004&\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\0119\006\249\000\242\006\249\006\249\n\030\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\007\017\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\000\242*\150\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249*\154\006\249\006\249\006\249\006\249\t.\006\249\006\249\006\249\011\150\006\249\006\249\006\249\006\249\006\249\006\249\007\186\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\000\242\000\242\006\249\006\249\002j\011\154\006\249\011\222\006\249\006\249\011\246,r\012F\bF\006\249*\218\006\249\002]\006\249\r\025\012R\006\249\006\249\006\249\006\249,j+.\006\249\006\249\006\249\012\138\n\194\006\249+*\000\165\006\249\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\n\000\165\n\198\000\165\000\165,>\000\165\000\165\000\165&\022\012\142\000\165\000\165\004&\000\165\000\165\000\165\000\165\000\242\000\165\012\178\000\165\000\165$\238%b\000\165\000\165\000\165\n:\000\165\000\165\000\165\002]\000\165\000\242\012\190\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\031\254\r\025\000\165\000\165+n\t~\000\165\000\165\000\165\nj\000\165\000\165\000\165\000\165\000\165\000\165\004&\000\165\000\165\000\165\000\165\011\021,v\000\165\012\194\012\234\000\165\004&\000\165\000\165\000\165\000\165\012\246\000\165\000\165\012\250\r&\nr\rZ\r\025\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\017F\001\202\001\190\000\165\014\174 \174\000\165,F\000\165\rb\000\226\025R\026\134\003z\000\165\000\242\026\186\026\238\026\250\000\242\r\166\000\165\000\165\000\165\000\165\012.\003z\000\165\000\165\000\165\rQ\002\201\000\165\002\201\001\206\002\201\014\222\003v\003z\002\201\r\178\003J\002\201\007e\002\201\004&\bF\002\201\001\210\r&\002\201\002\201\002\201\r\202\002\201\002\201\002\201\001\234\014\162\tr\015\146\bN\002\201\002\201\002\201\002\201\002\201\015\154\002\201\015\206\011\138\bR\tr\tf\011N\002\201\002\201\002\201\002\201\002\201\002\201\011\198\t\166\015\218\014\250\015\242\002\201\011\206\002\201\002\201\003j\015\246\015\254\t\174\014\226\002\201\002\201\002\201\014\230\014\234\014\246\016\014\016\026\016b\002\201\n:\002\201\002\201\002\201\002\201\002\201\002\201\002\201\002\201\002\201\016j\017\182\nR\nV\017\190\014\254\018&\016r\002\201\002\201\002\201\016\190\016\198\016\238\017\014\002\201\nj\nn\002\201\017\022\002\201\002\201\017\186\002\201\002\201\002\201\002\201\015\014\017\198\015\018\018\006\018.\002\201\018\014\002\201\002\201\t\169\002\201\002\201\002\201\002\201\002\201\002\201\002\201\nr\015\026\002\201\002\201\002\201\017\"\007\134\002\201\002\201\r\214\014\174\002\201\002\201\002\201\002\201\011\161\018\026\011\161\018*\011\161\018:\b\254\003z\011\161\018N\000\242\011\161\018V\011\161\t\002\0316\011\161\002\138\021\022\011\161\011\161\011\161\021\030\011\161\011\161\011\161\001\234\028\234\002\142\021n\b\162\011\161\011\161\011\161\011\161\011\161\001\234\011\161\021\138\021\170\014R\001\157\b\166\b\170\011\161\011\161\011\161\011\161\011\161\011\161\021\190\tV\021\222\001\137\b\238\011\161\b\174\011\161\011\161\003j\000\242\r\170\001\157\001\246\011\161\011\161\011\161\019\017\019\017\003j\021\246\019\017\022\006\011\161\001\137\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\017\182\017\182\022&\017\190\017\190\018&\018&\r\214\011\161\011\161\011\161\0222\r\146\022R\022V\011\161\022\170\022\194\011\161\022\210\011\161\011\161\r\182\011\161\011\161\011\161\011\161\017\198\017\198\000\242\018.\018.\011\161\031:\011\161\011\161\027\210\011\161\011\161\011\161\011\161\011\161\011\161\011\161\022\254\023\n\011\161\011\161\011\161\023\030\0236\011\161\011\161\014R\001\157\011\161\011\161\011\161\011\161\002\245\023B\002\245\023^\002\245\023\130\001\230\001\137\002\245\019\017\023\166\002\245\023\206\002\245\000\242\007f\002\245\017\002\001\157\002\245\002\245\002\245\023\242\002\245\002\245\002\245\001\157\b\026\018\134\017\002\001\137\002\245\002\245\002\245\002\245\002\245\001\157\002\245\001\137\019\017\018\134\025f\024\022\024B\002\245\002\245\002\245\002\245\002\245\002\245\025\002\003z\003\194\029\018\024f\002\245\024\138\002\245\002\245\017\222\r%\024\222\r%\r%\002\245\002\245\002\245\024\234\019\025\019\025\024\246\025\018\019\025\002\245\025\026\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\025N\017\182\026v\019A\017\190\005V\018&\026\170\002\245\002\245\002\245\0182\019A\tr\026\222\002\245\026\246\027&\002\245\027Z\002\245\002\245\027z\002\245\002\245\002\245\002\245\022\246\017\198\023\002\000\242\018.\002\245\027\202\002\245\002\245\027\222\002\245\002\245\002\245\002\245\002\245\002\245\002\245\027\230\028N\002\245\002\245\002\245\019A\028z\002\245\002\245\028\154\025~\002\245\002\245\002\245\002\245\002\241\028\202\002\241\029\030\002\241\029F\025\006\003\226\002\241\n\006\019\025\002\241\002]\002\241\029f\002]\002\241\017\002\r%\002\241\002\241\002\241\002r\002\241\002\241\002\241\r%\019A\018\134\029j\029\130\002\241\002\241\002\241\002\241\002\241\029\166\002\241\029\198\000\n\019\025\001\165\030\018\030\"\002\241\002\241\002\241\002\241\002\241\002\241\0306\004\022\030b\003\194\030n\002\241\002]\002\241\002\241\030\178\003\154\003\166\001\165\003\190\002\241\002\241\002\241\003\178\002]\002]\031\142\002]\002]\002\241\b\182\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002]\017\182\b\186\b\190\017\190\003\182\018&\030\250\002\241\002\241\002\241\031\002\000\n \018\001\230\002\241\b\194 \022\002\241 6\002\241\002\241\002]\002\241\002\241\002\241\002\241)\158\017\198 N R\018.\002\241\011\218\002\241\002\241!\018\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002]!*\002\241\002\241\002\241!\170!\174\002\241\002\241!\230\001\165\002\241\002\241\002\241\002\241\011\181\003\194\011\181!\234\011\181\"\018\"\022\003\226\011\181\".\"\166\011\181\"\214\011\181\"\218\"\254\011\181\017\002\001\165\011\181\011\181\011\181#\002\011\181\011\181\011\181\001\165#\018\018\134\019U#\"\011\181\011\181\011\181\011\181\011\181\001\165\011\181\005V#.\029:\001\149\007\145\003J\011\181\011\181\011\181\011\181\011\181\011\181\019U\004\022#j#:#n\011\181\002\198\011\181\011\181#\218\003\154\003\166\001\149$\n\011\181\011\181\011\181\003\178\019\021\019\021$\018\002\202\019\021\011\181$\"\011\181\011\181\011\181\011\181\011\181\011\181\011\181\011\181\011\181\029>\017\182$r\001\230\017\190\003\182\018&$\146\011\181\011\181\011\181$\210\007v$\254%\014\011\181\029J%6\011\181%:\011\181\011\181%F\011\181\011\181\011\181\011\181\001\230\017\198%V\000\242\018.\011\181%r\011\181\011\181+\174\011\181\011\181\011\181\011\181\011\181\011\181\011\181%\130%\150\011\181\011\181\011\181\003\194\nn\011\181\011\181%\194\001\149\011\181\011\181\011\181\011\181\011\201%\198\011\201%\210\011\201%\226%\246\019\t\011\201&\214\019\021\011\201\029:\011\201\003\194\003J\011\201\017\002\001\149\011\201\011\201\011\201(\030\011\201\011\201\011\201\001\149\005V\018\134&\226'\018\011\201\011\201\011\201\011\201\011\201\001\149\011\201'6'^\019\021\001\189'\234'\242\011\201\011\201\011\201\011\201\011\201\011\201(\n\005V(\022(~(\146\011\201\029>\011\201\011\201(\182(\194(\198\001\189)\002\011\201\011\201\011\201\nA\002]\002] \214\nA\029J\011\201)*\011\201\011\201\011\201\011\201\011\201\011\201\011\201\011\201\011\201\002]\017\182)6)>\017\190)f\018&)v\011\201\011\201\011\201)\174\000\n\019\t)\226\011\201*\006*.\011\201*j\011\201\011\201\nn\011\201\011\201\011\201\011\201\001\230\017\198*~*\186\018.\011\201*\250\011\201\011\201+\246\011\201\011\201\011\201\011\201\011\201\011\201\011\201\002]+N\011\201\011\201\011\201+\142+\214\011\201\011\201$>\001\189\011\201\011\201\011\201\011\201\011\221,\030\011\221,\178\011\221,\190,\198\019\t\011\221\nA\003z\011\221,\207\011\221\003\194,\223\011\221\017\002\001\189\011\221\011\221\011\221,\242\011\221\011\221\011\221\001\189\003\150\018\134-\014\b\018\011\221\011\221\011\221\011\221\011\221\001\189\011\221-+-;\002\138\001\181\004\237\003J\011\221\011\221\011\221\011\221\011\221\011\221-W\005V-\171-\199\023\198\011\221\tr\011\221\011\221-\210.'\029Z\001\181.;\011\221\011\221\011\221.C.\127.\135\023\234\b\157\024\014\011\221\000\000\011\221\011\221\011\221\011\221\011\221\011\221\011\221\011\221\011\221,\234\017\182\001\246\000\000\017\190\000\000\018&\000\000\011\221\011\221\011\221\000\000\000\000\019\t\000\000\011\221\029J\000\000\011\221\000\000\011\221\011\221\000\000\011\221\011\221\011\221\011\221\000\000\017\198\029^\000\000\018.\011\221\t\181\011\221\011\221\000\000\011\221\011\221\011\221\011\221\011\221\011\221\011\221\000\000\000\000\011\221\011\221\011\221\000\000\nn\011\221\011\221\000\000\001\181\011\221\011\221\011\221\011\221\002\205\000\000\002\205\000\000\002\205\000\000\000\000\003z\002\205\000\000\003J\002\205\000\000\002\205\000\000\000\000\002\205\017\002\001\181\002\205\002\205\002\205\000\000\002\205\002\205\002\205\001\181\b\182\018\134\000\000\000\000\002\205\002\205\002\205\002\205\002\205\001\181\002\205\000\000\b\186\b\190\001\173\000\000\000\000\002\205\002\205\002\205\002\205\002\205\002\205\000\000 z\000\000\b\194\000\000\002\205\000\000\002\205\002\205\000\000\000\000\000\000\001\173\000\000\002\205\002\205\002\205\029J\r\214\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\000\000\017\182\000\000\000\000\017\190\014\146\018&\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\002\205\000\000\nn\002\205\000\000\002\205\002\205\000\000\002\205\002\205\002\205\002\205\bQ\017\198\000\000\014R\018.\002\205\000\000\002\205\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\002\205\002\205\002\205\000\000\000\242\002\205\002\205\r\214\001\173\002\205\002\205\002\205\002\205\002\233\000\000\002\233\000\000\002\233\000\000\r\214\t~\002\233\000\000\000\000\002\233\000\000\002\233\000\000\031b\002\233\017\002\001\173\002\233\002\233\002\233\bQ\002\233\002\233\002\233\001\173\014\154\018\134\000\000\000\000\002\233\002\233\002\233\002\233\002\233\001\173\002\233\000\000\000\000\014R \254\000\000\bQ\002\233\002\233\002\233\002\233\002\233\002\233\000\000\017F\014R\0272\000\000\002\233\000\000\002\233\002\233\000\000\000\242\000\000\025R\026\134\002\233\002\233\002\233\026\186\026\238\026\250\002]\000\000\000\242\002\233\000\000\002\233\002\233\002\233\002\233\002\233\002\233\002\233\002\233\002\233\000\000\002\233\000\000\000\000\017\190\n\213\002\233\000\000\002\233\002\233\002\233\000\000\000\000\000\000\000\000\002\233\000\000\000\n\002\233\000\000\002\233\002\233\000\000\002\233\002\233\002\233\002\233\000\000\017\198\000\000\000\000\018.\002\233\031f\002\233\002\233\002]\002\233\002\233\002\233\002\233\002\233\002\233\002\233\n\213\000\000\002\233\002\233\002\233\002]\002]\002\233\002\233\r\214\031\030\002\233\002\233\002\233\002\233\012\005\n\213\012\005\000\000\012\005\n\213\017\130\t~\012\005\000\000\000\000\012\005\n\213\012\005\000\000\014\198\012\005\000\000\n\213\012\005\012\005\012\005\000\000\012\005\012\005\012\005\000\000\000\000\000\000\000\000\000\000\012\005\012\005\012\005\012\005\012\005\000\000\012\005\000\000\000\000\014R\000\000\000\000\000\000\012\005\012\005\012\005\012\005\012\005\012\005\000\000\n\222\000\000\000\000\000\000\012\005\000\000\012\005\012\005\000\000\000\242\000\000\t\250\t\254\012\005\012\005\012\005\011\234\000\000\n\n\027\002\000\000\000\000\012\005\019A\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\000\000\017\182\000\000\019A\017\190\nZ\018&\000\000\012\005\012\005\012\005\017\002\000\000\031\"\000\000\012\005\031.\000\000\012\005\000\000\012\005\012\005\018\134\012\005\012\005\012\005\012\005\000\000\017\198\000\000\000\000\018.\012\005\000\000\012\005\012\005\019A\012\005\012\005\012\005\012\005\012\005\012\005\012\005\000\000\000\000\012\005\012\005\012\005\000\000\000\000\012\005\012\005\000\000\000\000\012\005\012\005\012\005\012\005\011\241\000\000\011\241\000\000\011\241\r\214\r\214\000\000\011\241\002r\000\000\011\241\017\182\011\241\019A\017\190\011\241\018&\019A\011\241\011\241\011\241\000\000\011\241\011\241\011\241\017n\030\226\000\000\000\000\000\000\011\241\011\241\011\241\011\241\011\241\000\000\011\241\000\000\017\198\000\000!\202\018.\000\000\011\241\011\241\011\241\011\241\011\241\011\241)~\014R\014R\000\000\000\000\011\241\000\000\011\241\011\241\000\000\000\000\000\000\t:\000\000\011\241\011\241\011\241\000\000\r\214\000\000\000\000\000\242\000\242\011\241\000\000\011\241\011\241\011\241\011\241\011\241\011\241\011\241\011\241\011\241\000\000\017\182!\246\000\000\017\190\031*\018&\000\000\011\241\011\241\011\241\031\238\000\000\000\000\000\000\011\241\000\000 \006\011\241\000\000\011\241\011\241\000\000\011\241\011\241\011\241\011\241\000\000\017\198\"\"\014R\018.\011\241\000\000\011\241\011\241\000\000\011\241\011\241\011\241\011\241\011\241\011\241\011\241\000\000\000\000\011\241\011\241\011\241\000\000\000\242\011\241\011\241\000\000\000\000\011\241\011\241\011\241\011\241\000\006\000\000\0075\n\005\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\"\134\bF\001\n\bJ\000\000\000\000\n%\003V\000\000\000\000\n%\n\005\001\234\000\000\000\000\000\000\t\170\001\018\017N\017R\001\030\001\"\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\030\198\001&\000\000\017r\017v\n\005\t\154\t\166\t\178\t\182\017z\r~\000\000\0016\n\005\003j\000\000\r\214\t\174\014\226\n\005\n\005\000\242\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\n\005\n\005\001:\001>\001B\001F\001J\031B\000\000\015&\000\000\nR\nV\001N\014\254\000\000\000\000\n%\000\000\001R\000\000\000\000\0152\015J\017\142\nj\nn\000\000\017\162\000\000\001V\011)\014R\n\005\000\000\011)\015\014\001Z\015\018\000\000\000\000\000\000\000\000\000\000\n\005\000\000\017\002\000\000\000\000\001\150\011z\019I\000\242\nr\015\026\000\000\001\154\018\134\025F\007\134\001\162\001\166\017\166&\222\001\170\000\006\001\174\001\178\001\245\003r\003v\003z\019I\003~\003J\002\162\003\138\011)\002\166\bF\001\n\bJ\000\000\000\000\000\000\017J\000\000\000\000\000\000\001\245\001\234\000\000\000\000\002\178\t\170\001\018\017N\017R\001\030\001\"\000\000\000\000\tb\000\000\bR\011)\tf\000\000\017V\001&\000\000\017r\017v\001\245\t\154\t\166\t\178\t\182\017z\r~\000\000\0016\001\245\003j\002\190\000\000\t\174\014\226\001\245\001\245\000\242\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\001\245\001\245\001:\001>\001B\001F\001J\011)\000\000\015&\005\174\nR\nV\001N\014\254\000\000\000\000\011\254\011\230\001R\rA\000\000\0152\015J\017\142\nj\nn\000\000\017\162\000\000\001V\000\000\000\000\001\245\000\000\000\000\015\014\001Z\015\018\002\194\000\000\000\000\000\000\000\000\001\245\000\000\000\000\000\000\000\000\001\150\011\218\n5\011\134\nr\015\026\n5\001\154\000\000\025F\007\134\001\162\001\166\017\166\000\242\001\170\000\242\001\174\001\178\002\133\000\000\002\133\000\000\002\133\000\000\000\000\000\000\002\133\000\000\000\000\002\133\025\150\002\133\025\242\000\000\002\133\000\000\000\000\002\133\002\133\002\133\000\000\002\133\002\133\002\133\000\000\000\000\000\000\000\242\000\000\002\133\002\133\002\133\002\133\002\133\026\n\002\133-\183\000\000\000\000\000\000\000\000\000\000\002\133\002\133\002\133\002\133\002\133\002\133\011\138\rA\011\138\000\000\011N\002\133\011N\002\133\002\133\rA\000\000\011\198\000\000\011\198\002\133\002\133\002\133\011\206\017\158\011\206\000\000\000\000\000\000\002\133\000\000\002\133\002\133\002\133\002\133\002\133\002\133\002\133\002\133\002\133\011\138\002\133\000\000\000\000\011N\011\186\002\133\r\214\002\133\002\133\002\133\011\198\000\000\000\000\000\000\002\133\000\000\011\206\002\133\000\000\002\133\002\133\000\000\002\133\002\133\002\133\002\133\000\000\031V\000\000\000\000\000\000\002\133\000\000\002\133\002\133\000\000\017\002\002\133\002\133\002\133\002\133\002\133\002\133\000\000\002\237\002\133\002\133\018\134\000\000\028B\002\133\002\133\014R\000\000\002\133\002\133\002\133\002\133\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\002\237\000\000\000\000\002\237\000\000\002\237\000\242\002\237\002\237\002\237\002\237\002\237\002\237\002\237\000\000\002\237\002\237\002\237\000\000\002\237\000\000\000\000\000\000\002\237\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\0115\000\000\000\000\0115\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\000\000\000\000%j\000\000\002\237\002\237\002\237\r\214\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\0115\002\237\000\000\000\000\031n\000\242\002\237\018B\002\237\002\237\002\237\002\237\000\000\000\000\000\000\002\237\0115\002\237\002\237\000\000\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\014R\000\000\000\000\002\237\000\000\002\237\002\237\000\000\018B\002\237\002\237\002\237\002\237\002\237\002\237\006\t\000\000\002\237\002\237\002\237\000\242\0115\002\237\002\237\r\214\000\000\002\237\002\237\002\237\002\237\011\157\006\t\011\157\000\000\011\157\012j\r\214\000\000\011\157\000\000\000\000\011\157\006\t\011\157\000\000(\158\011\157\000\000\006\t\011\157\011\157\011\157\0115\011\157\011\157\011\157\000\000*\134\000\000\n\233\000\000\011\157\011\157\011\157\011\157\011\157\000\000\011\157\000\000\000\000\014R\000\000\000\000\012\145\011\157\011\157\011\157\011\157\011\157\011\157\000\000\000\000\014R\000\000\000\000\011\157\000\000\011\157\011\157\000\000\000\242\000\000\000\000\000\000\011\157\011\157\011\157\000\000\n\233\000\000\000\000\000\000\000\242\011\157\000\000\011\157\011\157\011\157\011\157\011\157\011\157\011\157\011\157\011\157\n\233\011\157\012\145\000\000\011N\000\000\011\157\000\000\011\157\011\157\011\157\n\233\000\000\000\000\000\000\011\157\000\000\n\233\011\157\000\000\011\157\011\157\000\000\011\157\011\157\011\157\011\157\000\000\000\000\000\000\012\145\000\000\011\157\000\000\011\157\011\157\000\000\017\002\011\157\011\157\011\157\011\157\011\157\011\157\000\000\000\000\011\157\011\157\018\134\000\000\000\000\011\157\011\157\000\000\000\242\011\157\011\157\011\157\011\157\004=\000\000\004=\000\000\004=\000\000\000\000\000\000\004=\012\145\000\000\004=\025\182\004=\000\000\005\174\018\170\000\000\012\145\004=\018\254\004=\000\000\004=\004=\004=\000\000\000\000\000\000\012)\000\000\019\018\019r\019\138\019*\019\162\000\000\004=\000\000\000\000\000\000\000\000\000\000\012\141\004=\019B\004=\019\186\019\210\004=\011\138\000\000\000\000\000\000\011N\004=\000\000\019\234\004=\000\000\000\000\011\198\000\000\000\000\004=\004=\000\242\011\206\012)\000\000\000\000\000\000\000\000\004=\000\000\004=\004=\018\194\019Z\020\002\020\026\020z\004=\004=\012~\004=\012\141\000\000\012)\000\000\004=\000\000\004=\004=\020\146\012)\000\000\000\000\000\000\004=\000\000\012)\004=\000\000\004=\020\170\000\000\004=\004=\004=\004=\000\000\000\000\000\000\012\141\000\000\004=\000\000\004=\004=\000\000\021\n\004=\004=\021B\0202\004=\004=\000\000\000\000\004=\020\194\004=\000\000\000\000\020J\020b\000\000\000\242\004=\004=\020\218\020\242\003e\000\000\003e\000\000\003e\000\000\000\000\000\000\003e\012\141\000\000\003e\025\214\003e\000\000\005\174\003e\000\000\012\141\003e\003e\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\242\000\000\003e\003e\003e\003e\003e\000\000\003e\000\000\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\003e\003e\003e\011\138\000\000\000\000\000\000\011N\003e\000\000\003e\003e\000\000\000\000\011\198\000\000\000\000\003e\003e\003e\011\206\005\201\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\003e\003e\003e\003e\003e\003e\003e\005\201\003e\000\000\000\000\012j\000\242\003e\000\000\003e\003e\003e\005\201\000\000\000\000\000\000\003e\000\000\005\201\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\017\002\003e\003e\003e\003e\003e\003e\005\249\000\000\003e\003e\018\134\000\000\000\000\003e\003e\000\000\000\000\003e\003e\003e\003e\003a\005\249\003a\000\000\003a\012j\000\000\000\000\003a\000\000\000\000\003a\005\249\003a\000\000\000\000\003a\000\000\005\249\003a\003a\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\242\000\000\003a\003a\003a\003a\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\000\000\005\233\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\018\194\003a\003a\003a\003a\003a\003a\005\233\003a\000\000\000\000\012j\000\242\003a\000\000\003a\003a\003a\005\233\000\000\000\000\000\000\003a\000\000\005\233\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\003a\003a\003a\022>\000\000\003a\003a\003a\000\000\000\000\003a\003a\000\000\000\000\003a\003a\003a\003a\0035\022F\0035\000\000\0035\012j\000\000\000\000\0035\000\000\000\000\0035\022v\0035\000\000\000\000\0035\000\000\022~\0035\0035\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\242\000\000\0035\0035\0035\0035\0035\000\000\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\000\000\005\217\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\0035\0035\0035\0035\0035\0035\0035\005\217\0035\000\000\000\000\012j\000\242\0035\000\000\0035\0035\0035\005\217\000\000\000\000\000\000\0035\000\000\005\217\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\017\002\0035\0035\0035\0035\0035\0035\n\249\000\000\0035\0035\018\134\000\000\000\000\0035\0035\000\000\000\000\0035\0035\0035\0035\0031\011\138\0031\000\000\0031\011N\000\000\000\000\0031\000\000\000\000\0031\n\249\0031\000\000\000\000\0031\000\000\n\249\0031\0031\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\242\000\000\0031\0031\0031\0031\0031\000\000\0031\000\000\000\000\000\000\001\129\000\000\000\000\0031\0031\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\000\000\000\000\001\129\000\000\0031\0031\0031\000\000\025&\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\018\194\0031\0031\0031\0031\0031\0031\022F\0031\000\000\000\000\012j\000\000\0031\000\000\0031\0031\0031\022v\000\000\000\000\000\000\0031\000\000\022~\0031\000\000\0031\0031\000\000\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\0031\0031\0031\0031\0031\0031\0031\000\000\000\000\0031\0031\0031\000\000\000\000\0031\0031\000\000\001\129\0031\0031\0031\0031\003M\000\000\003M\000\000\003M\000\000\000\000\000\000\003M\000\000\000\000\003M\000\000\003M\000\000\000\000\003M\000\000\001\129\003M\003M\003M\000\000\003M\003M\003M\001\129\000\000\000\000\000\000\000\000\003M\003M\003M\003M\003M\025\134\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\003M\003M\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\000\000\000\000\000\000\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\003M\003M\003M\003M\003M\003M\003M\000\000\003M\000\000\011%\000\000\000\000\003M\011%\003M\003M\003M\000\000\000\000\000\000\000\000\003M\000\000\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\017\002\003M\003M\003M\003M\003M\003M\000\000\000\000\003M\003M\018\134\011%\000\000\003M\003M\000\000\000\000\003M\003M\003M\003M\003I\000\000\003I\000\000\003I\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\000\000\000\000\018\170\000\000\011%\003I\003I\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\019*\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\019B\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\011%\000\000\000\000\005\174\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\018\194\019Z\003I\003I\003I\003I\003I\000\000\003I\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\003I\000\000\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\003I\003I\003I\003I\003I\003I\003I\000\000\000\000\003I\003I\003I\000\000\000\000\003I\003I\000\000\000\000\003I\003I\003I\003I\003m\000\000\003m\000\000\003m\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\000\000\000\000\003m\000\000\000\000\003m\003m\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\003m\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\003m\003m\003m\003m\003m\003m\003m\000\000\003m\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\017\002\003m\003m\003m\003m\003m\003m\000\000\000\000\003m\003m\018\134\000\000\000\000\003m\003m\000\000\000\000\003m\003m\003m\003m\003i\000\000\003i\000\000\003i\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\000\000\000\000\003i\000\000\000\000\003i\003i\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003i\000\000\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\018\194\003i\003i\003i\003i\003i\003i\000\000\003i\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\003i\003i\003i\000\000\000\000\003i\003i\003i\000\000\000\000\003i\003i\000\000\000\000\003i\003i\003i\003i\003-\000\000\003-\000\000\003-\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\000\000\000\000\003-\000\000\000\000\003-\003-\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\003-\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\003-\003-\003-\003-\003-\003-\003-\000\000\003-\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\017\002\003-\003-\003-\003-\003-\003-\000\000\000\000\003-\003-\018\134\000\000\000\000\003-\003-\000\000\000\000\003-\003-\003-\003-\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\000\000\000\000\003)\000\000\000\000\003)\003)\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\018\194\003)\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\003)\000\000\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\003)\003)\003)\003)\003)\003)\003)\000\000\000\000\003)\003)\003)\000\000\000\000\003)\003)\000\000\000\000\003)\003)\003)\003)\003%\000\000\003%\000\000\003%\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\000\000\000\000\003%\000\000\000\000\003%\003%\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\003%\003%\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\003%\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\003%\003%\003%\003%\003%\003%\003%\000\000\003%\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\017\002\003%\003%\003%\003%\003%\003%\000\000\000\000\003%\003%\018\134\000\000\000\000\003%\003%\000\000\000\000\003%\003%\003%\003%\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\000\000\000\000\003!\000\000\000\000\003!\003!\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\018\194\003!\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\003!\000\000\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\003!\003!\003!\003!\003!\003!\003!\000\000\000\000\003!\003!\003!\000\000\000\000\003!\003!\000\000\000\000\003!\003!\003!\003!\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\000\000\000\000\003E\000\000\000\000\003E\003E\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\003E\003E\003E\003E\003E\003E\003E\000\000\003E\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\017\002\003E\003E\003E\003E\003E\003E\000\000\000\000\003E\003E\018\134\000\000\000\000\003E\003E\000\000\000\000\003E\003E\003E\003E\003A\000\000\003A\000\000\003A\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\000\000\000\000\018\170\000\000\000\000\003A\003A\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\019*\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\019B\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\018\194\019Z\003A\003A\003A\003A\003A\000\000\003A\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\003A\000\000\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\003A\003A\003A\003A\003A\003A\003A\000\000\000\000\003A\003A\003A\000\000\000\000\003A\003A\000\000\000\000\003A\003A\003A\003A\003=\000\000\003=\000\000\003=\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\000\000\000\000\003=\000\000\000\000\003=\003=\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\003=\003=\003=\003=\003=\003=\003=\000\000\003=\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\017\002\003=\003=\003=\003=\003=\003=\000\000\000\000\003=\003=\018\134\000\000\000\000\003=\003=\000\000\000\000\003=\003=\003=\003=\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\000\000\000\000\018\170\000\000\000\000\0039\0039\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\019*\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\019B\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\018\194\019Z\0039\0039\0039\0039\0039\000\000\0039\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\0039\000\000\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\0039\0039\0039\0039\0039\0039\0039\000\000\000\000\0039\0039\0039\000\000\000\000\0039\0039\000\000\000\000\0039\0039\0039\0039\003\141\000\000\003\141\000\000\003\141\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\000\000\000\000\003\141\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\003\141\003\141\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\003\141\003\141\003\141\003\141\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\017\002\003\141\003\141\003\141\003\141\003\141\003\141\000\000\000\000\003\141\003\141\018\134\000\000\000\000\003\141\003\141\000\000\000\000\003\141\003\141\003\141\003\141\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\000\000\000\000\018\170\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\019B\003\137\019\186\019\210\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\019\234\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\018\194\019Z\020\002\020\026\020z\003\137\003\137\000\000\003\137\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\020\146\000\000\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\020\170\000\000\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\003\137\003\137\003\137\003\137\0202\003\137\003\137\000\000\000\000\003\137\020\194\003\137\000\000\000\000\020J\020b\000\000\000\000\003\137\003\137\020\218\020\242\003]\000\000\003]\000\000\003]\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\000\000\000\000\003]\000\000\000\000\003]\003]\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\003]\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\003]\003]\003]\003]\003]\003]\003]\000\000\003]\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\017\002\003]\003]\003]\003]\003]\003]\000\000\000\000\003]\003]\018\134\000\000\000\000\003]\003]\000\000\000\000\003]\003]\003]\003]\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\000\000\000\000\018\170\000\000\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\019*\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\019B\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\018\194\019Z\003Y\003Y\003Y\003Y\003Y\000\000\003Y\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\003Y\003Y\003Y\000\000\000\000\003Y\003Y\000\000\000\000\003Y\003Y\003Y\003Y\003U\000\000\003U\000\000\003U\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\000\000\000\000\003U\000\000\000\000\003U\003U\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\003U\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\003U\003U\003U\003U\003U\003U\003U\000\000\003U\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\017\002\003U\003U\003U\003U\003U\003U\000\000\000\000\003U\003U\018\134\000\000\000\000\003U\003U\000\000\000\000\003U\003U\003U\003U\003Q\000\000\003Q\000\000\003Q\000\000\000\000\000\000\003Q\000\000\000\000\003Q\000\000\003Q\000\000\000\000\018\170\000\000\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\019*\003Q\000\000\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\019B\003Q\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\018\194\019Z\003Q\003Q\003Q\003Q\003Q\000\000\003Q\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\003Q\000\000\000\000\003Q\000\000\003Q\003Q\000\000\003Q\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\000\000\003Q\003Q\003Q\003Q\003Q\003Q\003Q\000\000\000\000\003Q\003Q\003Q\000\000\000\000\003Q\003Q\000\000\000\000\003Q\003Q\003Q\003Q\003}\000\000\003}\000\000\003}\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\000\000\000\000\003}\000\000\000\000\003}\003}\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\003}\003}\000\000\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\003}\003}\003}\003}\003}\003}\003}\000\000\003}\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\003}\000\000\003}\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\000\000\017\002\003}\003}\003}\003}\003}\003}\000\000\000\000\003}\003}\018\134\000\000\000\000\003}\003}\000\000\000\000\003}\003}\003}\003}\003y\000\000\003y\000\000\003y\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\000\000\000\000\018\170\000\000\000\000\003y\003y\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\019B\003y\019\186\019\210\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\018\194\019Z\020\002\020\026\003y\003y\003y\000\000\003y\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\0202\003y\003y\000\000\000\000\003y\003y\003y\000\000\000\000\020J\020b\000\000\000\000\003y\003y\003y\003y\003\029\000\000\003\029\000\000\003\029\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\000\000\000\000\003\029\000\000\000\000\003\029\003\029\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\003\029\003\029\003\029\003\029\003\029\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\017\002\003\029\003\029\003\029\003\029\003\029\003\029\000\000\000\000\003\029\003\029\018\134\000\000\000\000\003\029\003\029\000\000\000\000\003\029\003\029\003\029\003\029\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\000\000\000\000\018\170\000\000\000\000\003\025\003\025\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\019*\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\019B\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\018\194\019Z\003\025\003\025\003\025\003\025\003\025\000\000\003\025\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\003\025\000\000\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\003\025\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\003\025\003\025\003\025\000\000\000\000\003\025\003\025\000\000\000\000\003\025\003\025\003\025\003\025\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\003\021\000\000\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\003\021\003\021\003\021\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\017\002\003\021\003\021\003\021\003\021\003\021\003\021\000\000\000\000\003\021\003\021\018\134\000\000\000\000\003\021\003\021\000\000\000\000\003\021\003\021\003\021\003\021\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\000\000\000\000\018\170\000\000\000\000\003\017\003\017\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\019B\003\017\019\186\019\210\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\018\194\019Z\020\002\020\026\003\017\003\017\003\017\000\000\003\017\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\003\017\000\000\003\017\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\003\017\003\017\003\017\003\017\0202\003\017\003\017\000\000\000\000\003\017\003\017\003\017\000\000\000\000\020J\020b\000\000\000\000\003\017\003\017\003\017\003\017\003\189\000\000\003\189\000\000\003\189\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\000\000\000\000\003\189\000\000\000\000\003\189\003\189\003\189\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\003\189\003\189\003\189\003\189\003\189\000\000\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\003\189\003\189\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\000\000\000\000\000\000\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\003\189\003\189\003\189\003\189\003\189\003\189\003\189\000\000\003\189\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\017\002\003\189\003\189\003\189\003\189\003\189\003\189\000\000\000\000\003\189\003\189\018\134\000\000\000\000\003\189\003\189\000\000\000\000\003\189\003\189\003\189\003\189\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\000\000\000\000\018\170\000\000\000\000\003\185\003\185\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\019B\003\185\019\186\019\210\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\018\194\019Z\020\002\003\185\003\185\003\185\003\185\000\000\003\185\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\0202\003\185\003\185\000\000\000\000\003\185\003\185\003\185\000\000\000\000\003\185\003\185\000\000\000\000\003\185\003\185\003\185\003\185\003\r\000\000\003\r\000\000\003\r\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\000\000\000\000\003\r\000\000\000\000\003\r\003\r\003\r\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\003\r\003\r\003\r\003\r\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\003\r\003\r\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\000\000\003\r\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\017\002\003\r\003\r\003\r\003\r\003\r\003\r\000\000\000\000\003\r\003\r\018\134\000\000\000\000\003\r\003\r\000\000\000\000\003\r\003\r\003\r\003\r\003\t\000\000\003\t\000\000\003\t\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\000\000\000\000\018\170\000\000\000\000\003\t\003\t\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\019B\003\t\019\186\019\210\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\003\t\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\018\194\019Z\020\002\020\026\003\t\003\t\003\t\000\000\003\t\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\003\t\000\000\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\003\t\003\t\003\t\003\t\0202\003\t\003\t\000\000\000\000\003\t\003\t\003\t\000\000\000\000\020J\020b\000\000\000\000\003\t\003\t\003\t\003\t\003\005\000\000\003\005\000\000\003\005\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\000\000\000\000\003\005\000\000\000\000\003\005\003\005\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\017\002\003\005\003\005\003\005\003\005\003\005\003\005\000\000\000\000\003\005\003\005\018\134\000\000\000\000\003\005\003\005\000\000\000\000\003\005\003\005\003\005\003\005\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\018\170\000\000\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\019B\003\001\019\186\019\210\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\018\194\019Z\020\002\020\026\003\001\003\001\003\001\000\000\003\001\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\0202\003\001\003\001\000\000\000\000\003\001\003\001\003\001\000\000\000\000\020J\020b\000\000\000\000\003\001\003\001\003\001\003\001\002\253\000\000\002\253\000\000\002\253\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\000\000\000\000\002\253\000\000\000\000\002\253\002\253\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\002\253\002\253\000\000\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\000\000\002\253\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\002\253\000\000\002\253\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\017\002\002\253\002\253\002\253\002\253\002\253\002\253\000\000\000\000\002\253\002\253\018\134\000\000\000\000\002\253\002\253\000\000\000\000\002\253\002\253\002\253\002\253\002\249\000\000\002\249\000\000\002\249\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\000\000\000\000\018\170\000\000\000\000\002\249\002\249\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\002\249\000\000\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\019B\002\249\019\186\019\210\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\002\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\018\194\019Z\020\002\020\026\002\249\002\249\002\249\000\000\002\249\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\0202\002\249\002\249\000\000\000\000\002\249\002\249\002\249\000\000\000\000\020J\020b\000\000\000\000\002\249\002\249\002\249\002\249\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\000\000\000\000\003\133\000\000\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\003\133\003\133\003\133\003\133\003\133\003\133\003\133\000\000\003\133\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\017\002\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\003\133\003\133\018\134\000\000\000\000\003\133\003\133\000\000\000\000\003\133\003\133\003\133\003\133\003\129\000\000\003\129\000\000\003\129\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\000\000\000\000\018\170\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003\129\000\000\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\019B\003\129\019\186\019\210\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\018\194\019Z\020\002\020\026\003\129\003\129\003\129\000\000\003\129\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\0202\003\129\003\129\000\000\000\000\003\129\003\129\003\129\000\000\000\000\020J\020b\000\000\000\000\003\129\003\129\003\129\003\129\003u\000\000\003u\000\000\003u\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\000\000\000\000\003u\000\000\000\000\003u\003u\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\003u\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\003u\003u\003u\003u\003u\003u\003u\000\000\003u\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\017\002\003u\003u\003u\003u\003u\003u\000\000\000\000\003u\003u\018\134\000\000\000\000\003u\003u\000\000\000\000\003u\003u\003u\003u\003q\000\000\003q\000\000\003q\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\000\000\000\000\018\170\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\019B\003q\019\186\019\210\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\018\194\019Z\020\002\020\026\003q\003q\003q\000\000\003q\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\0202\003q\003q\000\000\000\000\003q\003q\003q\000\000\000\000\020J\020b\000\000\000\000\003q\003q\003q\003q\003\149\000\000\003\149\000\000\003\149\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\000\000\000\000\003\149\000\000\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\003\149\003\149\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\003\149\003\149\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\003\149\003\149\003\149\003\149\003\149\003\149\003\149\000\000\003\149\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\017\002\003\149\003\149\003\149\003\149\003\149\003\149\000\000\000\000\003\149\003\149\018\134\000\000\000\000\003\149\003\149\000\000\000\000\003\149\003\149\003\149\003\149\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\000\000\000\000\018\170\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\019B\003\145\019\186\019\210\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\019\234\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\018\194\019Z\020\002\020\026\020z\003\145\003\145\000\000\003\145\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\020\146\000\000\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\020\170\000\000\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\003\145\003\145\003\145\003\145\0202\003\145\003\145\000\000\000\000\003\145\020\194\003\145\000\000\000\000\020J\020b\000\000\000\000\003\145\003\145\020\218\020\242\003\157\000\000\003\157\000\000\003\157\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\000\000\000\000\003\157\000\000\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\003\157\003\157\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\003\157\003\157\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\000\000\003\157\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\017\002\003\157\003\157\003\157\003\157\003\157\003\157\000\000\000\000\003\157\003\157\018\134\000\000\000\000\003\157\003\157\000\000\000\000\003\157\003\157\003\157\003\157\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\000\000\000\000\018\170\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\019B\003\153\019\186\019\210\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\019\234\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\018\194\019Z\020\002\020\026\020z\003\153\003\153\000\000\003\153\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\020\146\000\000\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\020\170\000\000\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\0202\003\153\003\153\000\000\000\000\003\153\003\153\003\153\000\000\000\000\020J\020b\000\000\000\000\003\153\003\153\020\218\020\242\003\165\000\000\003\165\000\000\003\165\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\000\000\000\000\003\165\000\000\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\003\165\003\165\003\165\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\003\165\003\165\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\000\000\003\165\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\017\002\003\165\003\165\003\165\003\165\003\165\003\165\000\000\000\000\003\165\003\165\018\134\000\000\000\000\003\165\003\165\000\000\000\000\003\165\003\165\003\165\003\165\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\000\000\000\000\018\170\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\019B\003\161\019\186\019\210\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\019\234\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\018\194\019Z\020\002\020\026\020z\003\161\003\161\000\000\003\161\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\020\146\000\000\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\020\170\000\000\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\003\161\003\161\003\161\003\161\0202\003\161\003\161\000\000\000\000\003\161\003\161\003\161\000\000\000\000\020J\020b\000\000\000\000\003\161\003\161\020\218\020\242\011\177\000\000\011\177\000\000\011\177\000\000\000\000\000\000\011\177\000\000\000\000\011\177\000\000\011\177\000\000\000\000\011\177\000\000\000\000\011\177\011\177\011\177\000\000\011\177\011\177\011\177\000\000\000\000\000\000\000\000\000\000\011\177\011\177\011\177\011\177\011\177\000\000\011\177\000\000\000\000\000\000\000\000\000\000\000\000\011\177\011\177\011\177\011\177\011\177\011\177\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\000\000\000\000\000\000\000\000\000\000\011\177\011\177\011\177\000\000\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\011\177\011\177\011\177\011\177\011\177\011\177\011\177\000\000\011\177\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\011\177\000\000\000\000\000\000\000\000\011\177\000\000\000\000\011\177\000\000\011\177\011\177\000\000\011\177\011\177\011\177\011\177\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\000\000\017\002\011\177\011\177\011\177\011\177\011\177\011\177\000\000\000\000\011\177\011\177\018\134\000\000\000\000\011\177\011\177\000\000\000\000\011\177\011\177\011\177\011\177\011\173\000\000\011\173\000\000\011\173\000\000\000\000\000\000\011\173\000\000\000\000\011\173\000\000\011\173\000\000\000\000\018\170\000\000\000\000\011\173\011\173\011\173\000\000\011\173\011\173\011\173\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\011\173\000\000\000\000\000\000\000\000\000\000\000\000\011\173\019B\011\173\019\186\019\210\011\173\000\000\000\000\000\000\000\000\000\000\011\173\000\000\019\234\011\173\000\000\000\000\000\000\000\000\000\000\011\173\011\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\018\194\019Z\020\002\020\026\020z\011\173\011\173\000\000\011\173\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\020\146\000\000\000\000\000\000\000\000\011\173\000\000\000\000\011\173\000\000\011\173\020\170\000\000\011\173\011\173\011\173\011\173\000\000\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\000\000\011\173\011\173\011\173\011\173\0202\011\173\011\173\000\000\000\000\011\173\020\194\011\173\000\000\000\000\020J\020b\000\000\000\000\011\173\011\173\020\218\020\242\003\173\000\000\003\173\000\000\003\173\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\000\000\000\000\003\173\000\000\000\000\003\173\003\173\003\173\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\003\173\003\173\003\173\003\173\003\173\000\000\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\003\173\003\173\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\000\000\000\000\000\000\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\000\000\003\173\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\003\173\000\000\003\173\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\017\002\003\173\003\173\003\173\003\173\003\173\003\173\000\000\000\000\003\173\003\173\018\134\000\000\000\000\003\173\003\173\000\000\000\000\003\173\003\173\003\173\003\173\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\000\000\000\000\018\170\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\019B\003\169\019\186\019\210\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\019\234\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\018\194\019Z\020\002\020\026\020z\003\169\003\169\000\000\003\169\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\020\146\000\000\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\020\170\000\000\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\021\n\003\169\003\169\021B\0202\003\169\003\169\000\000\000\000\003\169\020\194\003\169\000\000\000\000\020J\020b\000\000\000\000\003\169\003\169\020\218\020\242\011\153\000\000\011\153\000\000\011\153\000\000\000\000\000\000\011\153\000\000\000\000\011\153\000\000\011\153\000\000\000\000\018\170\000\000\000\000\011\153\011\153\011\153\000\000\011\153\011\153\011\153\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\011\153\000\000\000\000\000\000\000\000\000\000\000\000\011\153\019B\011\153\019\186\019\210\011\153\000\000\000\000\000\000\000\000\000\000\011\153\000\000\019\234\011\153\000\000\000\000\000\000\000\000\000\000\011\153\011\153\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\153\000\000\011\153\011\153\018\194\019Z\020\002\020\026\020z\011\153\011\153\000\000\011\153\000\000\000\000\000\000\000\000\011\153\000\000\011\153\011\153\020\146\000\000\000\000\000\000\000\000\011\153\000\000\000\000\011\153\000\000\011\153\020\170\000\000\011\153\011\153\011\153\011\153\000\000\000\000\000\000\000\000\000\000\011\153\000\000\011\153\011\153\000\000\011\153\011\153\011\153\011\153\0202\011\153\011\153\000\000\000\000\011\153\020\194\011\153\000\000\000\000\020J\020b\000\000\000\000\011\153\011\153\020\218\020\242\003\237\000\000\003\237\000\000\003\237\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\000\000\000\000\003\237\000\000\000\000\003\237\003\237\003\237\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\003\237\003\237\003\237\003\237\000\000\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\003\237\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\000\000\003\237\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\003\237\000\000\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\017\002\003\237\003\237\003\237\003\237\003\237\003\237\000\000\000\000\003\237\003\237\018\134\000\000\000\000\003\237\003\237\000\000\000\000\003\237\003\237\003\237\003\237\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\000\000\000\000\018\170\000\000\000\000\003\233\003\233\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\019B\003\233\019\186\019\210\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\019\234\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\018\194\019Z\020\002\020\026\020z\003\233\003\233\000\000\003\233\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\020\146\000\000\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\020\170\000\000\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\021\n\003\233\003\233\021B\0202\003\233\003\233\000\000\000\000\003\233\020\194\003\233\000\000\000\000\020J\020b\000\000\000\000\003\233\003\233\020\218\020\242\004\r\000\000\004\r\000\000\004\r\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\000\000\000\000\004\r\000\000\000\000\004\r\004\r\004\r\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\004\r\004\r\004\r\004\r\004\r\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\004\r\004\r\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\000\000\000\000\000\000\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\004\r\004\r\004\r\004\r\004\r\004\r\004\r\000\000\004\r\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\004\r\000\000\004\r\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\017\002\004\r\004\r\004\r\004\r\004\r\004\r\000\000\000\000\004\r\004\r\018\134\000\000\000\000\004\r\004\r\000\000\000\000\004\r\004\r\004\r\004\r\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\000\000\000\000\018\170\000\000\000\000\004\t\004\t\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\019B\004\t\019\186\019\210\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\019\234\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\018\194\019Z\020\002\020\026\020z\004\t\004\t\000\000\004\t\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\020\146\000\000\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\020\170\000\000\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\021\n\004\t\004\t\021B\0202\004\t\004\t\000\000\000\000\004\t\020\194\004\t\000\000\000\000\020J\020b\000\000\000\000\004\t\004\t\020\218\020\242\003\253\000\000\003\253\000\000\003\253\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\000\000\000\000\003\253\000\000\000\000\003\253\003\253\003\253\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\003\253\003\253\003\253\003\253\003\253\000\000\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\003\253\003\253\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\000\000\000\000\000\000\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\003\253\003\253\003\253\003\253\003\253\003\253\003\253\000\000\003\253\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\003\253\000\000\003\253\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\017\002\003\253\003\253\003\253\003\253\003\253\003\253\000\000\000\000\003\253\003\253\018\134\000\000\000\000\003\253\003\253\000\000\000\000\003\253\003\253\003\253\003\253\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\000\000\000\000\018\170\000\000\000\000\003\249\003\249\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\019B\003\249\019\186\019\210\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\019\234\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\018\194\019Z\020\002\020\026\020z\003\249\003\249\000\000\003\249\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\020\146\000\000\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\020\170\000\000\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\021\n\003\249\003\249\021B\0202\003\249\003\249\000\000\000\000\003\249\020\194\003\249\000\000\000\000\020J\020b\000\000\000\000\003\249\003\249\020\218\020\242\003\213\000\000\003\213\000\000\003\213\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\000\000\000\000\003\213\000\000\000\000\003\213\003\213\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\003\213\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\003\213\003\213\003\213\003\213\003\213\003\213\003\213\000\000\003\213\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\017\002\003\213\003\213\003\213\003\213\003\213\003\213\000\000\000\000\003\213\003\213\018\134\000\000\000\000\003\213\003\213\000\000\000\000\003\213\003\213\003\213\003\213\003\209\000\000\003\209\000\000\003\209\000\000\000\000\000\000\003\209\000\000\000\000\003\209\000\000\003\209\000\000\000\000\018\170\000\000\000\000\003\209\003\209\003\209\000\000\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\209\000\000\000\000\000\000\000\000\000\000\000\000\003\209\019B\003\209\019\186\019\210\003\209\000\000\000\000\000\000\000\000\000\000\003\209\000\000\019\234\003\209\000\000\000\000\000\000\000\000\000\000\003\209\003\209\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\018\194\019Z\020\002\020\026\020z\003\209\003\209\000\000\003\209\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\020\146\000\000\000\000\000\000\000\000\003\209\000\000\000\000\003\209\000\000\003\209\020\170\000\000\003\209\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\000\000\021\n\003\209\003\209\021B\0202\003\209\003\209\000\000\000\000\003\209\020\194\003\209\000\000\000\000\020J\020b\000\000\000\000\003\209\003\209\020\218\020\242\003\229\000\000\003\229\000\000\003\229\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\000\000\000\000\003\229\000\000\000\000\003\229\003\229\003\229\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\003\229\003\229\003\229\003\229\000\000\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\003\229\003\229\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\000\000\003\229\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\003\229\000\000\003\229\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\017\002\003\229\003\229\003\229\003\229\003\229\003\229\000\000\000\000\003\229\003\229\018\134\000\000\000\000\003\229\003\229\000\000\000\000\003\229\003\229\003\229\003\229\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\000\000\000\000\018\170\000\000\000\000\003\225\003\225\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\019B\003\225\019\186\019\210\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\019\234\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\018\194\019Z\020\002\020\026\020z\003\225\003\225\000\000\003\225\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\020\146\000\000\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\020\170\000\000\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\021\n\003\225\003\225\021B\0202\003\225\003\225\000\000\000\000\003\225\020\194\003\225\000\000\000\000\020J\020b\000\000\000\000\003\225\003\225\020\218\020\242\003\221\000\000\003\221\000\000\003\221\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\000\000\000\000\003\221\000\000\000\000\003\221\003\221\003\221\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\003\221\003\221\003\221\003\221\003\221\000\000\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\003\221\003\221\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\000\000\000\000\000\000\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\000\000\003\221\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\003\221\000\000\003\221\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\017\002\003\221\003\221\003\221\003\221\003\221\003\221\000\000\000\000\003\221\003\221\018\134\000\000\000\000\003\221\003\221\000\000\000\000\003\221\003\221\003\221\003\221\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\000\000\000\000\018\170\000\000\000\000\003\217\003\217\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\019B\003\217\019\186\019\210\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\019\234\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\018\194\019Z\020\002\020\026\020z\003\217\003\217\000\000\003\217\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\020\146\000\000\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\020\170\000\000\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\021\n\003\217\003\217\021B\0202\003\217\003\217\000\000\000\000\003\217\020\194\003\217\000\000\000\000\020J\020b\000\000\000\000\003\217\003\217\020\218\020\242\003\245\000\000\003\245\000\000\003\245\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\000\000\000\000\003\245\000\000\000\000\003\245\003\245\003\245\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\003\245\003\245\003\245\003\245\000\000\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\003\245\003\245\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\003\245\003\245\003\245\003\245\003\245\003\245\003\245\000\000\003\245\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\003\245\000\000\003\245\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\017\002\003\245\003\245\003\245\003\245\003\245\003\245\000\000\000\000\003\245\003\245\018\134\000\000\000\000\003\245\003\245\000\000\000\000\003\245\003\245\003\245\003\245\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\000\000\000\000\018\170\000\000\000\000\003\241\003\241\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\019B\003\241\019\186\019\210\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\019\234\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\018\194\019Z\020\002\020\026\020z\003\241\003\241\000\000\003\241\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\020\146\000\000\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\020\170\000\000\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\021\n\003\241\003\241\021B\0202\003\241\003\241\000\000\000\000\003\241\020\194\003\241\000\000\000\000\020J\020b\000\000\000\000\003\241\003\241\020\218\020\242\004\021\000\000\004\021\000\000\004\021\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\000\000\000\000\004\021\000\000\000\000\004\021\004\021\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\004\021\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\004\021\004\021\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\004\021\004\021\004\021\004\021\004\021\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\004\021\000\000\004\021\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\017\002\004\021\004\021\004\021\004\021\004\021\004\021\000\000\000\000\004\021\004\021\018\134\000\000\000\000\004\021\004\021\000\000\000\000\004\021\004\021\004\021\004\021\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\000\000\000\000\018\170\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\019B\004\017\019\186\019\210\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\019\234\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\018\194\019Z\020\002\020\026\020z\004\017\004\017\000\000\004\017\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\020\146\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\020\170\000\000\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\021\n\004\017\004\017\021B\0202\004\017\004\017\000\000\000\000\004\017\020\194\004\017\000\000\000\000\020J\020b\000\000\000\000\004\017\004\017\020\218\020\242\004\005\000\000\004\005\000\000\004\005\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\000\000\000\000\004\005\000\000\000\000\004\005\004\005\004\005\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\004\005\004\005\004\005\004\005\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\004\005\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\004\005\004\005\004\005\004\005\004\005\004\005\004\005\000\000\004\005\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\004\005\000\000\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\017\002\004\005\004\005\004\005\004\005\004\005\004\005\000\000\000\000\004\005\004\005\018\134\000\000\000\000\004\005\004\005\000\000\000\000\004\005\004\005\004\005\004\005\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\000\000\000\000\018\170\000\000\000\000\004\001\004\001\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\019B\004\001\019\186\019\210\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\019\234\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\018\194\019Z\020\002\020\026\020z\004\001\004\001\000\000\004\001\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\020\146\000\000\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\020\170\000\000\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\021\n\004\001\004\001\021B\0202\004\001\004\001\000\000\000\000\004\001\020\194\004\001\000\000\000\000\020J\020b\000\000\000\000\004\001\004\001\020\218\020\242\003\205\000\000\003\205\000\000\003\205\000\000\000\000\000\000\003\205\000\000\000\000\003\205\000\000\003\205\000\000\000\000\003\205\000\000\000\000\003\205\003\205\003\205\000\000\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\003\205\003\205\003\205\003\205\003\205\000\000\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\205\003\205\003\205\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\000\000\000\000\000\000\000\000\000\000\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\003\205\003\205\003\205\003\205\003\205\003\205\003\205\000\000\003\205\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\003\205\000\000\000\000\000\000\000\000\003\205\000\000\000\000\003\205\000\000\003\205\003\205\000\000\003\205\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\000\000\017\002\003\205\003\205\003\205\003\205\003\205\003\205\000\000\000\000\003\205\003\205\018\134\000\000\000\000\003\205\003\205\000\000\000\000\003\205\003\205\003\205\003\205\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\000\000\000\000\018\170\000\000\000\000\003\201\003\201\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\019B\003\201\019\186\019\210\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\019\234\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\018\194\019Z\020\002\020\026\020z\003\201\003\201\000\000\003\201\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\020\146\000\000\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\020\170\000\000\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\021\n\003\201\003\201\021B\0202\003\201\003\201\000\000\000\000\003\201\020\194\003\201\000\000\000\000\020J\020b\000\000\000\000\003\201\003\201\020\218\020\242\011\197\000\000\011\197\000\000\011\197\000\000\000\000\000\000\011\197\000\000\000\000\011\197\000\000\011\197\000\000\000\000\011\197\000\000\000\000\011\197\011\197\011\197\000\000\011\197\011\197\011\197\000\000\000\000\000\000\000\000\000\000\011\197\011\197\011\197\011\197\011\197\000\000\011\197\000\000\000\000\000\000\000\000\000\000\000\000\011\197\011\197\011\197\011\197\011\197\011\197\000\000\000\000\000\000\000\000\000\000\011\197\000\000\011\197\011\197\000\000\000\000\000\000\000\000\000\000\011\197\011\197\011\197\000\000\000\000\000\000\000\000\000\000\000\000\011\197\000\000\011\197\011\197\011\197\011\197\011\197\011\197\011\197\011\197\011\197\000\000\011\197\000\000\000\000\000\000\000\000\011\197\000\000\011\197\011\197\011\197\000\000\000\000\000\000\000\000\011\197\000\000\000\000\011\197\000\000\011\197\011\197\000\000\011\197\011\197\011\197\011\197\000\000\000\000\000\000\000\000\000\000\011\197\000\000\011\197\011\197\000\000\017\002\011\197\011\197\011\197\011\197\011\197\011\197\000\000\000\000\011\197\011\197\018\134\000\000\000\000\011\197\011\197\000\000\000\000\011\197\011\197\011\197\011\197\011\193\000\000\011\193\000\000\011\193\000\000\000\000\000\000\011\193\000\000\000\000\011\193\000\000\011\193\000\000\000\000\018\170\000\000\000\000\011\193\011\193\011\193\000\000\011\193\011\193\011\193\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\011\193\000\000\000\000\000\000\000\000\000\000\000\000\011\193\019B\011\193\019\186\019\210\011\193\000\000\000\000\000\000\000\000\000\000\011\193\000\000\019\234\011\193\000\000\000\000\000\000\000\000\000\000\011\193\011\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\193\000\000\011\193\011\193\018\194\019Z\020\002\020\026\020z\011\193\011\193\000\000\011\193\000\000\000\000\000\000\000\000\011\193\000\000\011\193\011\193\020\146\000\000\000\000\000\000\000\000\011\193\000\000\000\000\011\193\000\000\011\193\020\170\000\000\011\193\011\193\011\193\011\193\000\000\000\000\000\000\000\000\000\000\011\193\000\000\011\193\011\193\000\000\011\193\011\193\011\193\011\193\0202\011\193\011\193\000\000\000\000\011\193\020\194\011\193\000\000\000\000\020J\020b\000\000\000\000\011\193\011\193\020\218\020\242\r]\000\000\r]\000\000\r]\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\r]\000\000\000\000\r]\000\000\000\000\r]\r]\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\r]\r]\000\000\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\r]\r]\r]\r]\r]\r]\r]\000\000\r]\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\r]\r]\000\000\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\000\000\017\002\r]\r]\r]\r]\r]\r]\000\000\000\000\r]\r]\018\134\000\000\000\000\r]\r]\000\000\000\000\r]\r]\r]\r]\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\000\000\002\189\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\002\189\000\000\002\189\002\189\027\142\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\017\002\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\002\189\002\189\018\134\000\000\000\000\002\189\002\189\000\000\000\000\002\189\002\189\002\189\002\189\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\002\181\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\017\002\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\002\181\002\181\018\134\000\000\000\000\002\181\002\181\000\000\000\000\002\181\002\181\002\181\002\181\002\177\000\000\002\177\000\000\002\177\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\018\170\000\000\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\019B\002\177\019\186\019\210\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\019\234\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\018\194\019Z\020\002\020\026\020z\002\177\002\177\000\000\002\177\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\020\146\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\020\170\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\021\n\002\177\002\177\021B\0202\002\177\002\177\000\000\000\000\002\177\020\194\002\177\000\000\000\000\020J\020b\000\000\000\000\002\177\002\177\020\218\020\242\002\185\000\000\002\185\000\000\002\185\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\018\170\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\019B\002\185\019\186\019\210\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\019\234\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\018\194\019Z\020\002\020\026\020z\002\185\002\185\000\000\002\185\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\020\146\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\020\170\000\000\002\185\002\185\027\170\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\021\n\002\185\002\185\021B\0202\002\185\002\185\000\000\000\000\002\185\020\194\002\185\000\000\000\000\020J\020b\000\000\000\000\002\185\002\185\020\218\020\242\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\002\173\000\000\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\017\002\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\002\173\018\134\000\000\000\000\002\173\002\173\000\000\000\000\002\173\002\173\002\173\002\173\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\018\170\000\000\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\019B\002\169\019\186\019\210\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\019\234\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\018\194\019Z\020\002\020\026\020z\002\169\002\169\000\000\002\169\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\020\146\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\020\170\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\021\n\002\169\002\169\021B\0202\002\169\002\169\000\000\000\000\002\169\020\194\002\169\000\000\000\000\020J\020b\000\000\000\000\002\169\002\169\020\218\020\242\011\217\000\000\011\217\000\000\011\217\000\000\000\000\000\000\011\217\000\000\000\000\011\217\000\000\011\217\000\000\000\000\011\217\000\000\000\000\011\217\011\217\011\217\000\000\011\217\011\217\011\217\000\000\000\000\000\000\000\000\000\000\011\217\011\217\011\217\011\217\011\217\000\000\011\217\000\000\000\000\000\000\000\000\000\000\000\000\011\217\011\217\011\217\011\217\011\217\011\217\000\000\000\000\000\000\000\000\000\000\011\217\000\000\011\217\011\217\000\000\000\000\000\000\000\000\000\000\011\217\011\217\011\217\000\000\000\000\000\000\000\000\000\000\000\000\011\217\000\000\011\217\011\217\011\217\011\217\011\217\011\217\011\217\011\217\011\217\000\000\011\217\000\000\000\000\000\000\000\000\011\217\000\000\011\217\011\217\011\217\000\000\000\000\000\000\000\000\011\217\000\000\000\000\011\217\000\000\011\217\011\217\000\000\011\217\011\217\011\217\011\217\000\000\000\000\000\000\000\000\000\000\011\217\000\000\011\217\011\217\000\000\017\002\011\217\011\217\011\217\011\217\011\217\011\217\000\000\000\000\011\217\011\217\018\134\000\000\000\000\011\217\011\217\000\000\000\000\011\217\011\217\011\217\011\217\011\213\000\000\011\213\000\000\011\213\000\000\000\000\000\000\011\213\000\000\000\000\011\213\000\000\011\213\000\000\000\000\018\170\000\000\000\000\011\213\011\213\011\213\000\000\011\213\011\213\011\213\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\011\213\000\000\000\000\000\000\000\000\000\000\000\000\011\213\019B\011\213\019\186\019\210\011\213\000\000\000\000\000\000\000\000\000\000\011\213\000\000\019\234\011\213\000\000\000\000\000\000\000\000\000\000\011\213\011\213\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\213\000\000\011\213\011\213\018\194\019Z\020\002\020\026\020z\011\213\011\213\000\000\011\213\000\000\000\000\000\000\000\000\011\213\000\000\011\213\011\213\020\146\000\000\000\000\000\000\000\000\011\213\000\000\000\000\011\213\000\000\011\213\020\170\000\000\011\213\011\213\011\213\011\213\000\000\000\000\000\000\000\000\000\000\011\213\000\000\011\213\011\213\000\000\011\213\011\213\011\213\011\213\0202\011\213\011\213\000\000\000\000\011\213\020\194\011\213\000\000\000\000\020J\020b\000\000\000\000\011\213\011\213\020\218\020\242\003\197\000\000\003\197\000\000\003\197\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\000\000\000\000\003\197\000\000\000\000\003\197\003\197\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\003\197\003\197\003\197\003\197\000\000\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\003\197\003\197\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\000\000\003\197\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\003\197\000\000\003\197\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\017\002\003\197\003\197\003\197\003\197\003\197\003\197\000\000\000\000\003\197\003\197\018\134\000\000\000\000\003\197\003\197\000\000\000\000\003\197\003\197\003\197\003\197\003\193\000\000\003\193\000\000\003\193\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\000\000\000\000\018\170\000\000\000\000\003\193\003\193\003\193\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\019B\003\193\019\186\019\210\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\019\234\003\193\000\000\000\000\000\000\000\000\000\000\003\193\003\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\018\194\019Z\020\002\020\026\020z\003\193\003\193\000\000\003\193\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\020\146\000\000\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\020\170\000\000\003\193\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\021\n\003\193\003\193\021B\0202\003\193\003\193\000\000\000\000\003\193\020\194\003\193\000\000\000\000\020J\020b\000\000\000\000\003\193\003\193\020\218\020\242\002\161\000\000\002\161\000\000\002\161\000\000\000\000\000\000\002\161\000\000\000\000\002\161\000\000\002\161\000\000\000\000\002\161\000\000\000\000\002\161\002\161\002\161\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\161\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\002\161\002\161\002\161\002\161\002\161\002\161\002\161\000\000\002\161\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\002\161\000\000\000\000\002\161\000\000\002\161\002\161\000\000\002\161\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\002\161\002\161\002\161\002\161\002\161\002\161\002\161\000\000\000\000\002\161\002\161\018\134\000\000\000\000\002\161\002\161\000\000\000\000\002\161\002\161\002\161\002\161\012\001\000\000\012\001\000\000\012\001\000\000\000\000\000\000\012\001\000\000\000\000\012\001\000\000\012\001\000\000\000\000\012\001\000\000\000\000\012\001\012\001\012\001\000\000\012\001\012\001\012\001\000\000\000\000\000\000\000\000\000\000\012\001\012\001\012\001\012\001\012\001\000\000\012\001\000\000\000\000\000\000\000\000\000\000\000\000\012\001\012\001\012\001\012\001\012\001\012\001\000\000\000\000\000\000\000\000\000\000\012\001\000\000\012\001\012\001\000\000\000\000\000\000\000\000\000\000\012\001\012\001\012\001\000\000\000\000\000\000\000\000\000\000\000\000\012\001\000\000\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\000\000\012\001\000\000\000\000\000\000\000\000\012\001\000\000\012\001\012\001\012\001\000\000\000\000\000\000\000\000\012\001\000\000\000\000\012\001\000\000\012\001\012\001\000\000\012\001\012\001\012\001\012\001\000\000\000\000\000\000\000\000\000\000\012\001\000\000\012\001\012\001\000\000\017\002\012\001\012\001\012\001\012\001\012\001\012\001\000\000\000\000\012\001\012\001\018\134\000\000\000\000\012\001\012\001\000\000\000\000\012\001\012\001\012\001\012\001\011\253\000\000\011\253\000\000\011\253\000\000\000\000\000\000\011\253\000\000\000\000\011\253\000\000\011\253\000\000\000\000\018\170\000\000\000\000\011\253\011\253\011\253\000\000\011\253\011\253\011\253\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\011\253\000\000\000\000\000\000\000\000\000\000\000\000\011\253\019B\011\253\019\186\019\210\011\253\000\000\000\000\000\000\000\000\000\000\011\253\000\000\019\234\011\253\000\000\000\000\000\000\000\000\000\000\011\253\011\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\253\000\000\011\253\011\253\018\194\019Z\020\002\020\026\020z\011\253\011\253\000\000\011\253\000\000\000\000\000\000\000\000\011\253\000\000\011\253\011\253\020\146\000\000\000\000\000\000\000\000\011\253\000\000\000\000\011\253\000\000\011\253\020\170\000\000\011\253\011\253\011\253\011\253\000\000\000\000\000\000\000\000\000\000\011\253\000\000\011\253\011\253\000\000\011\253\011\253\011\253\011\253\0202\011\253\011\253\000\000\000\000\011\253\020\194\011\253\000\000\000\000\020J\020b\000\000\000\000\011\253\011\253\020\218\020\242\011\237\000\000\011\237\000\000\011\237\000\000\000\000\000\000\011\237\000\000\000\000\011\237\000\000\011\237\000\000\000\000\011\237\000\000\000\000\011\237\011\237\011\237\000\000\011\237\011\237\011\237\000\000\000\000\000\000\000\000\000\000\011\237\011\237\011\237\011\237\011\237\000\000\011\237\000\000\000\000\000\000\000\000\000\000\000\000\011\237\011\237\011\237\011\237\011\237\011\237\000\000\000\000\000\000\000\000\000\000\011\237\000\000\011\237\011\237\000\000\000\000\000\000\000\000\000\000\011\237\011\237\011\237\000\000\000\000\000\000\000\000\000\000\000\000\011\237\000\000\011\237\011\237\011\237\011\237\011\237\011\237\011\237\011\237\011\237\000\000\011\237\000\000\000\000\000\000\000\000\011\237\000\000\011\237\011\237\011\237\000\000\000\000\000\000\000\000\011\237\000\000\000\000\011\237\000\000\011\237\011\237\000\000\011\237\011\237\011\237\011\237\000\000\000\000\000\000\000\000\000\000\011\237\000\000\011\237\011\237\000\000\017\002\011\237\011\237\011\237\011\237\011\237\011\237\000\000\000\000\011\237\011\237\018\134\000\000\000\000\011\237\011\237\000\000\000\000\011\237\011\237\011\237\011\237\011\233\000\000\011\233\000\000\011\233\000\000\000\000\000\000\011\233\000\000\000\000\011\233\000\000\011\233\000\000\000\000\018\170\000\000\000\000\011\233\011\233\011\233\000\000\011\233\011\233\011\233\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\011\233\000\000\000\000\000\000\000\000\000\000\000\000\011\233\019B\011\233\019\186\019\210\011\233\000\000\000\000\000\000\000\000\000\000\011\233\000\000\019\234\011\233\000\000\000\000\000\000\000\000\000\000\011\233\011\233\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\233\000\000\011\233\011\233\018\194\019Z\020\002\020\026\020z\011\233\011\233\000\000\011\233\000\000\000\000\000\000\000\000\011\233\000\000\011\233\011\233\020\146\000\000\000\000\000\000\000\000\011\233\000\000\000\000\011\233\000\000\011\233\020\170\000\000\011\233\011\233\011\233\011\233\000\000\000\000\000\000\000\000\000\000\011\233\000\000\011\233\011\233\000\000\011\233\011\233\011\233\011\233\0202\011\233\011\233\000\000\000\000\011\233\020\194\011\233\000\000\000\000\020J\020b\000\000\000\000\011\233\011\233\020\218\020\242\002\165\000\000\002\165\000\000\002\165\000\000\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\000\000\000\000\002\165\000\000\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\002\165\002\165\002\165\002\165\000\000\002\165\000\000\000\000\000\000\002]\000\000\000\000\002\165\002\165\002\165\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\000\000\000\000\002]\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\n\000\000\002\165\000\000\002\165\002\165\002\165\002\165\002\165\002\165\002\165\002\165\002\165\000\000\002\165\002]\000\000\002]\000\000\002\165\000\000\002\165\002\165\002\165\002]\000\000\000\000\000\000\002\165\015F\002]\002\165\002]\002\165\002\165\000\000\002\165\002\165\002\165\002\165\000\000\002]\002]\000\000\000\000\002\165\000\000\002\165\002\165\000\000\002\165\002\165\002\165\002\165\002\165\002\165\002\165\000\000\000\000\002\165\002\165\018\134\000\000\000\000\002\165\002\165\000\000\000\000\002\165\002\165\002\165\002\165\000\006\027b\002]\000\250\003r\003v\003z\t\n\003~\003J\000\000\003\138\000\000\002]\bF\000\000\bJ\000\000\t6\000\000\000\000\000\242\007%\000\000\t:\001\234\000\000\031\246\002]\bN\000\000\t>\tB!z\000\000\000\000\tF\tb\000\000\bR\000\000\tf\000\000\031\138\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\031\238\003j\000\n\000\000\t\174\014\226 \006\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000 \014\n:\000\000\000\000\011\138\000\000\002]\000\000\011N \030\000\000\015&\000\000\nR\nV\011\198\014\254\000\000\000\000\002]\002]\011\206\000\000\000\000\0152\015J\017\142\nj\nn &\017\162 f\000\000\000\000\007%\007%\000\000\000\000\015\014\000\000\015\018\tZ\000\000\b\254\003z\000\000\000\000\000\000\000\000\000\000\000\000\t\002\000\000 \162$\190\nr\015\026\000\000\014\178\000\000\017\"\007\134\000\006\001\234\017\166\000\250\003r\003v\003z\t\n\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\007E\000\000\000\000\000\000\000\000\000\000\t:\001\234\tV\000\000\000\000\bN\000\000\t>\tB\000\000\003j\000\000\tF\tb\000\000\bR\000\000\tf\000\000\031\138\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\031\238\003j\000\000\000\000\t\174\014\226 \006\000\000\000\000\014\230\014\234\014\246\015\002\015\022\r\146 \014\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \030\000\000\015&-\218\nR\nV\000\000\014\254-\250\000\000\000\000\000\000\000\000\000\000\000\000\0152\015J\017\142\nj\nn &\017\162 f\000\000\000\000.\027\027\194\000\000\000\000\015\014\000\000\015\018\000\000\000\000\000\000\001\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\190\nr\015\026\000\000\000\000\000\000\017\"\007\134\000\006\001\234\017\166\000\250\003r\003v\003z\t\n\003~\003J\000\000\003\138\000\000\000\000\bF!\178\bJ\000\000.J\000\000\000\000\000\000\000\000\000\000\t:\001\234\000\000\000\000\003\202\bN\"*\t>\tB\000\000\003j\000\000\tF\tb\000\000\bR\000\000\tf\"B\031\138\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\031\238\003j\000\000\000\000\t\174\014\226 \006\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000 \014\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \030\000\000\015&-\218\nR\nV\000\000\014\254-\250\000\000\000\000\000\000\000\000\000\000\000\000\0152\015J\017\142\nj\nn &\017\162 f\000\000\000\000\007M\000\000\000\000\000\000\015\014\000\000\015\018\001\202\bb\003z\015\234\000\000\003J\000\000\bf\000\000\000\000\bF\001\n\000\000$\190\nr\015\026\003V\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\001\014\001\018\001\022\b\202\001\030\001\"\015\t\000\000\001\206\000\000\000\000\000\000\000\000\000\000\b\206\001&\000\000\001*\011v\000\000\000\000\015f\001\210\001\190\0012\000\000\000\000\0016\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\n^\000\000\000\000\n:\015\t\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\n>\nR\nV\001N\nZ\nb\015\t\000\000\000\000\001R\015\t\022\018\000\000\000\000\000\000\nj\nn\015\t\000\000\n\230\001V\004&\000\000\015\t\000\000\004\157\004\157\001Z\000\000\000\000\000\000\000\000\000\000\004\157\000\000\000\000\000\000\004\157\000\000\001\150\011z\000\000\006\129\nr\000\000\004\157\001\154\000\000\001\158\007\134\001\162\001\166\000\000\004\157\001\170\000\000\001\174\001\178\000\181\000\000\003v\003z\000\181\004\157\003J\000\000\017\254\000\000\000\000\bF\004\157\000\000\004\157\000\181\000\000\000\181\000\000\000\181\004\157\000\181\001\234\000\000\018\022\000\000\bN\004\157\000\000\000\242\000\000\000\000\018\030\000\181\000\153\000\000\bR\000\000\tf\000\000\000\181\000\000\000\000\000\153\000\000\000\181\000\000\t\166\000\153\001\190\000\000\000\181\000\000\000\000\000\181\003j\000\000 \"\t\174\014\226\000\181\000\181\000\181\014\230\014\234\014\246\000\000\023J\006\129\000\181\n:\000\181\000\181\000\153\000\000\000\000\000\000\000\000\000\181\000\000\000\153\000\181\nR\nV\011\138\014\254\000\181\000\000\011N\015\162\000\000\000\000\000\000\000\153\000\000\011\198\nj\nn\000\181\004&\000\181\011\206\000\000\000\181\000\181\000\153\000\000\015\014\000\000\015\018\000\000\000\000\000\000\000\000\000\153\000\181\000\000\000\153\000\000\000\153\000\000\000\000\000\181\000\181\nr\015\026\000\000\000\000\000\000\017\"\007\134\000\000\000\000\000\000\000\181\000\205\000\181\003v\003z\000\205\000\000\003J\000\000\017\254\000\153\000\000\bF\000\000\000\153\000\000\000\205\000\153\000\205\002\022\000\205\000\000\000\205\001\234\000\000\018\022\000\000\bN\000\000\000\153\000\153\000\153\000\000\018\030\000\205\000\149\000\000\bR\000\000\tf\000\000\000\205\000\000\000\000\000\149\000\000\000\205\000\000\t\166\000\149\001\190\012\022\000\205\000\000\000\153\000\205\003j\000\000\000\000\t\174\014\226\000\205\000\205\000\205\014\230\014\234\014\246\000\000\023J\000\000\000\205\n:\000\205\000\205\000\149\000\000\000\000\000\000\000\000\000\205\000\000\000\149\000\205\nR\nV\000\153\014\254\000\205\000\000\000\000\002^\000\000\000\000\000\000\000\149\000\000\n\205\nj\nn\000\205\000\153\000\205\000\153\000\000\000\205\000\205\000\000\000\000\015\014\000\000\015\018\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\149\000\000\000\000\000\000\000\000\000\205\000\205\nr\015\026\000\000\000\000\000\000\017\"\007\134\bb\003z\011^\000\205\003J\000\205\bf\000\000\000\000\bF\001\n\000\000\000\000\000\000\000\000\003V\000\000\000\149\000\000\n\205\001\234\000\000\002:\n\205\001\014\001\018\001\022\b\202\001\030\001\"\n\205\000\000\000\149\000\000\000\149\000\000\n\205\000\000\b\206\001&\000\000\001*\011v\000\000\000\000\b\198\000\000\001\190\0012\000\000\000\000\0016\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\n^\000\000\000\000\n:\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\n>\nR\nV\001N\nZ\nb\000\000\000\000\000\000\001R\002]\002]\000\000\000\000\000\000\nj\nn\000\000\002]\n\230\001V\000\000\000\000\000\000\000\000\002]\002]\001Z\000\000\000\000\002]\000\000\000\000\002]\000\000\000\000\000\000\002]\000\n\001\150\011z\000\000\000\000\nr\000\000\002]\001\154\000\000\001\158\007\134\001\162\001\166\000\000\000\n\001\170\002]\001\174\001\178\006\029\000\000\bb\003z\006\029\002]\003J\000\000\r\030\000\000\000\000\bF\002]\000\000\002]\006\029\000\000\000\000\000\000\006\029\002]\006\029\001\234\000\000\rj\000\000\000\000\002]\000\000\b\158\000\000\000\000\015V\006\029\000\000\000\000\000\000\000\000\000\000\000\000\006\029\000\000\002]\000\000\b\178\000\000\011\134\015\230\000\000\001\190\000\000\006\029\000\000\000\000\006\029\003j\000\000\002]\t\250\t\254\006\029\006\029\015\005\n\002\000\000\n\n\000\000\016v\000\000\006\029\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\029\006\029\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\000\000\000\000\000\242\000\000\000\000\tJ\000\000\nj\nn\006\029\000\000\006\029\021r\000\000\006\029\006\029\000\000\000\000\002]\002]\011\134\000\000\000\000\000\000\000\000\000\000\002]\000\000\015\005\000\000\003\150\000\000\015\005\021\158\006\029\nr\000\000\000\000\002]\015\005\000\000\007\134\000\000\004&\000\006\015\005\000\n\006\029\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\011\138\bF\000\000\bJ\011N\015n\002]\r)\000\242\r)\r)\011\198\001\234\000\000\002]\004&\bN\011\206\t>\tB\000\000\002]\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\007\017\002]\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\011\138\000\000\000\000\000\000\011N\016.\000\000\015&\007\017\nR\nV\011\198\014\254\000\000\000\000\004&\000\000\011\206\000\000\000\000\017\206\015J\017\142\nj\nn\r\134\017\162\000\000\000\000\000\000\000\000\000\000\007\017\000\000\015\014\000\000\015\018\000\000\000\000\000\000\000\000\007\017\000\000\000\000\000\000\r)\000\000\007\017\t.\000\242\000\000\nr\015\026\r)\000\000\000\000\017\"\007\134\000\006\007\017\017\166\000\250\003r\003v\003z\002\150\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000 \166\000\000\r!\000\000\r!\r!\t:\001\234\000\000\000\000\000\000\bN\000\000\t>\tB\007\017\000\000\000\000 \170\tb\000\000\bR\000\000\tf\000\000 \210\007\017\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\031\238\003j\000\000\000\000\t\174\014\226 \006\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000 \014\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \030\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\206\015J\017\142\nj\nn &\017\162!f\000\000\000\000\007\025\007\025\000\000\002]\015\014\000\000\015\018\002]\002]\002]\000\000\002]\002]\000\000\002]\r!\000\000\002]\000\000\002]!v\nr\015\026\r!\002]\000\000\017\"\007\134\002]\002]\017\166\000\000\002]\000\000\002]\002]\000\n\000\000\000\000\r\130\002]\000\000\002]\002]\002]\000\000\028\242\000\000\000\000\002]\002]\000\000\002]\002]\002]\002]\002]\002]\000\000\000\000\000\000\002]\000\000\000\000\002]\002]\000\000\000\000\002]\002]\002]\002]\002]\002]\003z\000\000\002]\000\000\000\000\000\000\000\000\002]\000\000\000\000\000\000\000\000\002]\002]\002]\002]\000\000\002]\002]\001\234\000\000\000\000\000\000\000\000\000\000\002]\002]\002]\002]\002]\000\000\002]\029.$\222\000\000\000\000\002]\000\000\000\000\002]\000\000\002]\001\021\000\000&\030\000\000\tr\000\000&\"\000\000\000\000\000\000\003j\000\000\000\000(\234\002]\002]\000\000\000\000&R\002]\002]\001\021\000\000\002]\000\014\000\018\000\022\000\026\000\030\000\000\000\000\000\"\000&\000*\000.\0002\000\000\0006\000:\000\000\000\000\000\000\000>\000\000\000\000\001\021\000B\b^\000\000&b\000\000\000\000\000\000\000F\001\021\000\000\000\000\000\000\000\242\000J\001\021\000N\000\000\000R\000V\000Z\000^\000b\000f\000\000\000\000\001\021\001\021\000j\000n\000\000\000r\000v\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000~\000\000\000\000\000\000\000\000\000\130\000\134\000\000\000\000\000\000\001\021\000\000\000\138\000\142\000\146\000\000\000\000\000\000\000\000\011\138\000\000\001\021\000\000\011N(\238\000\000\000\150\000\154\000\158\000\162\011\198\000\166\000\170\000\000\000\174\000\000\011\206\000\000\000\178\000\182\000\186\000\000\000\000\000\000\000\000\000\000\000\190\000\006\000\194\000\198\007\017\003r\003v\003z\007\017\003~\003J\000\202\003\138\000\206\000\000\bF\000\000\bJ\000\000\007\017\000\000\000\210\000\214\007\017\000\218\007\017\001\234\000\000\000\000\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\007\017\tb\000\000\bR\000\000\tf\000\000\007\017\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\007\017\003j\000\000\000\000\t\174\014\226\007\017\t.\000\000\014\230\014\234\014\246\015\002\015\022\000\000\007\017\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\029:\000\000\000\000\003J\000\000\030\146\015J\017\142\nj\nn\007\017\017\162\007\017\000\000\000\000\007\017\007\017\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\030\170\000\000\bF\000\000\bJ\007\017\nr\015\026\000\000\000\000$>\017\"\007\134\001\234\029>\017\166\000\000\bN\007\017\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\029J\000\000$j\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\nn\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254$v\000\000\000\000\000\000\000\000\000\000\000\000\028\170\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000$*\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\029:\000\000\bF\003J\bJ\000\000\nr\015\026\028\194\000\000\n\006\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000$f\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\029>\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\029J\n:$\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028~\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\nn\000\000\000\000\000A\015\014\000\000\015\018\000A\000A\000A\000\000\000A\000A$\150\000A\000\000\000\000\000A\000\000\000A\000\000\nr\015\026\t\173\000\000\000\000\017\"\007\134\000A\000\000\017\166$*\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000A\000\000\000A\000\000\000A\000\000\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000=\000A\000\000\000A\000=\000=\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000=\000\000\000=\000\000\000A\000A\t\169\000\000\000\000\000A\000A\000=\000\000\000A\000\000\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000=\000\000\000=\000\000\000=\000\000\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\000\000\000=\000=\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000=\000\000\000=\018\181\018\181\018\181\000\000\018\181\018\181\000\000\018\181\000\000\000\000\018\181\000\000\018\181\000\000\000=\000=\t\185\000\000\000\000\000=\000=\018\181\000\000\000=\000\000\018\181\000\000\018\181\018\181\000\000\000\000\000\000\000\000\018\181\000\000\018\181\000\000\018\181\000\000\000\000\000\000\000\000\018\181\018\181\000\000\018\181\018\181\018\181\018\181\018\181\018\181\000\000\000\000\000\000\018\181\000\000\000\000\018\181\018\181\000\000\000\000\000\000\018\181\018\181\018\181\018\181\018\181\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\018\181\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\018\181\018\181\018\181\018\181\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\018\177\018\181\000\000\018\181\018\177\018\177\018\177\000\000\018\177\018\177\000\000\018\177\000\000\000\000\018\177\000\000\018\177\000\000\018\181\018\181\t\181\000\000\000\000\018\181\018\181\018\177\000\000\018\181\000\000\018\177\000\000\018\177\018\177\000\000\000\000\000\000\000\000\018\177\000\000\018\177\000\000\018\177\000\000\000\000\000\000\000\000\018\177\018\177\000\000\018\177\018\177\018\177\018\177\018\177\018\177\000\000\000\000\000\000\018\177\000\000\000\000\018\177\018\177\000\000\000\000\000\000\018\177\018\177\018\177\018\177\018\177\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\018\177\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\018\177\018\177\018\177\018\177\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\006\018\177\000\000\018\177\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\018\177\018\177\000\000\000\000\000\000\018\177\018\177\001\234\000\000\018\177\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025V\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\026n\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\138\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\026\162\000\000\026\190\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\194\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\b.\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002)\n\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\018\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\014\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030z\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028R\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028.\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\n\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\242\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\017\006\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\017\030\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027>\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\230\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\018F\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\018^\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018v\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\174\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\198\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\234\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\022\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019.\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019F\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019^\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019v\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\142\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\166\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\190\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\214\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\238\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\006\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\030\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020N\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020~\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\150\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\174\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\198\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\222\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\246\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\021\014\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\021&\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021.\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021F\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023f\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\138\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\174\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\214\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\250\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\030\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024J\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024n\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\146\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\174\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025j\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\154\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\186\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\218\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\246\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\014\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\"\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026>\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027~\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\146\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\003\138\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\015\022\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\174\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000\027\214\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002\027\238\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\246\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015\014\000\000\015\018\003r\003v\003z\000\000\003~\003J\000\000).\000\000\000\000\bF\000\000\bJ\000\000\nr\015\026\000\000\000\000\000\000\017\"\007\134\001\234\000\000\017\166\000\000\bN\000\000\t>\tB\000\000\000\000\000\000\000\000\tb\000\000\bR\000\000\tf\000\000\000\000\000\000\000\000\t\146\t\150\000\000\t\154\t\166\t\178\t\182\t\190\r~\000\000\019\133\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\015\002)F\000\000\000\000\n:\000\000\000\000\007\245\000\000\000\000\000\000\007\245\000\000\000\000\015&\000\000\nR\nV\000\000\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000)N\015J\017\142\nj\nn\000\000\017\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\014\000\000\015\018\000\000\000\000\000\000\r\185\000\000$\234\000\000\r\185\r\185\000\000\000\000\r\185\000\000\r\185\nr\015\026\r\185\000\000\000\000\017\"\007\134\r\185\r\185\017\166\r\185\r\185\t:\r\185\019\133\r\185\000\000\019\133\000\000\019\133\r\185\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\007\245\r\185%^\000\000\r\185\000\000\r\185\019\133\000\000\000\000\019\133\031\238\r\185\000\000\000\000\r\185\r\185 \006\007\245\r\185\r\185\007\245\r\185\000\000\r\185\000\000\000\000\r\185&\002&\018\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\r\185\r\185\r\185\000\000\r\185\r\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\r\185\000\000\000\000\000\000\r\185\000\000\r\185\007=\000\000\000\000\000\000\000\000\000\000\n\190\000\000\000\000\000\000\000\000&\254\000\000\r\185\r\185\r\185\000\000\r\185\r\185\000\000\r\185\000\000\r\185\000\000\r\185\019A\r\185\000\000\r\185\019A\r\185\000\000\019A\019A\000\000\000\000\019A\019A\000\000\000\000\019A\019A\000\000\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\000\000\000\000\019A\000\000\000\000\000\000\019A\000\000\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\019A\019A\019A\000\000\019A\019A\019A\019A\019A\019A\002r\019A\000\000\000\000\002r\019A\000\000\000\000\002r\019A\000\000\000\000\000\000\019A\000\000\000\000\000\000\019A\000\000\019A\019A\019A\019A\019A\019A\019A\019A\019A\019A\000\000\019A\019A\000\000\000\000\019A\000\000\019A\000\000\019A\019A\019A\002v\019A\019A\019A\005N\019A\019A\000\000\005r\019A\019A\000\000\019A\019A\019A\019A\019A\019A\019A\019A\019A\015)\019A\019A\025\142\bb\003z\000\000\000\000\003J\000\000\bf\000\000\000\000\bF\000\000\000\000\000\000\000\000\015)\015)\000\000\015)\015)\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\149\000\000\025\174\000\000\000\000\000\000\000\000\000\000\000\000\000\149\015)\006\157\b\178\000\000\000\149\b\198\025\206\001\190\000\000\000\000\012q\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\015)\n\002\000\000\n\n\n.\n^\000\000\000\000\n:\000\149\000\000\000\000\000\000\000\000\012q\000\000\000\149\015)\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\242\000\000\000\000\000\149\000\000\000\000\000\000\000\000\nj\nn\000\000\000\000\n\230\015)\000\000\015)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149\000\000\015)\015)\000\000\000\000\015)\015)\000\000\nr\000\000\015)\011\134\015)\000\000\007\134\015%\015)\000\000\015)\bb\003z\000\000\000\000\003J\012q\bf\000\000\011\138\bF\000\000\000\149\011N\016J\015%\015%\002:\015%\015%\011\198\001\234\000\000\000\000\004&\000\000\011\206\000\149\b\158\000\149\000\000\000\149\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\149\015%\000\000\b\178\000\000\000\149\011Z\000\000\001\190\000\000\000\000\012q\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\015%\n\002\000\000\n\n\n.\n^\000\000\000\000\n:\000\149\000\000\000\000\000\000\000\000\012q\000\000\000\149\015%\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\000\000\000\000\000\149\000\000\000\000\011\138\000\000\nj\nn\011N\016\130\n\230\015%\000\000\015%\000\000\011\198\000\000\000\000\000\000\004&\000\000\011\206\000\000\000\000\000\000\000\149\000\000\015%\015%\000\000\000\000\015%\015%\000\000\nr\000\000\015%\000\000\015%\019\t\007\134\000\000\015%\019\t\015%\000\000\001\230\019\t\000\000\000\000\012q\000\000\000\000\000\250\000\000\005F\000\149\002\150\019\t\019\t\019\t\029\250\019\t\019\t\019\t\000\000\000\000\000\000 \166\000\000\000\000\000\149\007\025\000\149\t:\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\019\t\019\t\019\t \170\000\000\019\t\000\000\000\000\000\000\003\194 \210\019\t\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\019\t\019\t\019\t\000\000\031\238\000\000\000\000\000\000\000\000\019\t \006\019\t\019\t\000\000\000\000\000\000\000\000\000\000\019\t \014\000\000\019\t\000\000\000\000\000\000\000\000\005V\000\000 \030\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\019\t\000\000\019\t\019\t\000\000\000\000\000\000 &\000\000!f\000\000\000\000\007\025\007\025\019\t\000\000\019\t\000\000\019\t\019\t\000\000\012\217\019\t\000\000\000\000\012\217\000\000\019\t\001\230\012\217\019\t\019\t!v\019\t\000\000\019\t\019\t\012\217\000\000\000\000\012\217\012\217\012\217\000\000\012\217\012\217\012\217\000\000\019I\0191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\217\000\000\000\000\000\000\000\000\000\000\000\000\012\217\012\217\012\217\000\000\019I\012\217\000\000\002\162\000\000\003\194\002\166\012\217\019I\0191\012\217\000\000\000\000\000\000\002\174\000\000\012\217\012\217\012\217\000\000\000\000\002\178\000\000\000\000\002\186\012\217\0191\012\217\012\217\019I\000\000\000\000\002\162\000\000\012\217\002\166\000\000\012\217\000\000\000\000\000\000\000\000\005V\t\022\000\000\000\000\012\217\000\000\000\000\000\000\002\178\000\000\002\190\002\186\012\217\0191\012\217\012\217\000\000\012\217\012\217\000\000\016\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\217\000\000\012\217\000\000\012\217\012\217\000\000\012\225\012\217\000\000\002\190\012\225\000\000\012\217\001\230\012\225\012\217\012\217\000\000\012\217\000\000\012\217\012\217\012\225\000\000\000\000\012\225\012\225\012\225\000\000\012\225\012\225\012\225\000\000\000\000\002\194\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\225\000\000\000\000\000\000\000\000\000\000\000\000\012\225\012\225\012\225\000\000\000\000\012\225\000\000\000\000\000\000\003\194\000\153\012\225\000\000\002\194\012\225\000\000\000\000\000\000\000\000\000\153\012\225\012\225\012\225\000\000\000\153\000\000\000\000\000\000\000\000\012\225\000\000\012\225\012\225\000\000\000\000\000\000\000\000\000\000\012\225\000\000\011\138\012\225\000\000\000\000\011N\016\162\005V\000\000\000\000\000\153\012\225\011\198\000\000\000\000\000\000\004&\000\153\011\206\012\225\000\000\012\225\012\225\000\000\012\225\012\225\000\000\015\005\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\012\225\000\000\012\225\000\000\012\225\012\225\000\000\012\221\012\225\000\000\000\000\012\221\000\000\012\225\001\230\012\221\012\225\012\225\000\153\012\225\000\000\012\225\012\225\012\221\000\000\000\000\012\221\012\221\012\221\000\000\012\221\012\221\012\221\000\000\000\000\000\000\015\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\221\000\000\000\000\000\000\000\000\000\153\000\000\012\221\012\221\012\221\004\142\000\000\012\221\000\000\000\000\000\000\003\194\000\149\012\221\000\000\000\153\012\221\000\153\000\000\000\000\000\000\000\149\012\221\012\221\012\221\000\000\000\149\000\000\000\000\000\000\000\000\012\221\000\000\012\221\012\221\000\000\000\000\000\000\000\000\000\000\012\221\000\000\015\005\012\221\000\000\000\000\015\005\015\005\005V\000\000\019\133\000\149\012\221\015\005\000\000\000\000\000\000\004&\000\149\015\005\012\221\000\000\012\221\012\221\000\000\012\221\012\221\000\000\000\000\000\000\007\249\000\149\000\000\000\000\007\249\000\000\000\000\012\221\000\000\012\221\000\000\012\221\012\221\000\000\012\213\012\221\000\000\000\000\012\213\000\000\012\221\001\230\012\213\012\221\012\221\000\149\012\221\000\000\012\221\012\221\012\213\000\000\000\000\012\213\012\213\012\213\000\000\012\213\012\213\012\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\001\029\000\000\000\000\000\149\000\000\012\213\012\213\012\213\004\158\000\000\012\213\000\000\019\133\000\000\003\194\019\133\012\213\019\133\000\149\012\213\000\149\001\029\000\000\000\000\000\000\012\213\012\213\012\213\000\000\000\000\000\000\000\000\007\249\000\000\012\213\000\000\012\213\012\213\000\000\019\133\000\000\000\000\019\133\012\213\000\000\001\029\012\213!\186\000\000\000\000\007\249\005V\000\000\007\249\001\029\012\213\000\000\000\000\000\157\000\000\001\029\000\157\000\157\012\213\000\000\012\213\012\213\000\000\012\213\012\213\000\157\000\000\001\029\000\157\000\157\000\157\000\000\000\157\000\157\000\157\012\213\012u\012\213\000\000\012\213\012\213\000\000\000\000\012\213\000\000\000\000\000\157\000\000\012\213\000\000\000\000\012\213\012\213\000\157\012\213\000\157\012\213\012\213\000\157\001\029\012u\000\000\000\157\000\149\000\157\000\000\000\000\000\157\000\000\000\000\001\029\000\000\000\149\000\157\000\157\000\157\000\000\000\149\000\000\000\149\000\000\000\149\000\157\000\000\000\157\000\157\000\000\000\000\000\149\000\000\000\149\000\157\000\157\000\149\000\157\000\149\000\000\000\000\007\017\000\157\000\000\000\000\000\149\000\157\000\000\000\000\000\149\000\000\000\000\000\149\000\149\000\157\000\000\000\157\000\157\000\000\000\157\000\157\000\149\007\017\000\149\000\149\000\149\000\149\012u\000\149\000\149\000\149\000\157\012q\000\157\000\000\000\157\000\000\000\000\000\000\000\157\000\000\000\149\000\149\000\149\000\157\000\000\007\017\000\157\000\157\000\149\000\157\000\149\000\157\000\000\000\149\007\017\012q\000\000\000\149\000\000\000\149\007\017\t.\000\149\000\000\000\149\000\000\000\149\000\000\000\149\000\149\000\149\007\017\007\017\000\000\000\000\000\000\000\000\000\149\000\000\000\149\000\149\000\000\000\000\000\000\006\002\000\000\000\149\000\149\000\000\000\149\000\000\000\000\000\000\000\000\000\149\000\149\000\149\000\149\000\149\000\000,V\000\000,\142\000\000\007\017\000\000\000\149\000\000\000\149\000\149\000\149\000\149\000\149\000\000\000\149\007\017\000\000\000\000\000\000\012q\000\000\000\000\000\000\000\149\002\138\000\000\000\000\000\149\000\000\019\r\000\000\000\149\000\000\019\r\000\000\002\142\000\149\019\r\r\174\000\149\000\149\000\000\000\149\001\234\000\149\005j\000\000\000\000\019\r\019\r\019\r\000\000\019\r\019\r\019\r\000\000\000\000\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\019\r\000\000\r\170\000\000\001\246\000\000\000\000\019\r\019\r\019\r\003j\000\000\019\r\000\000\000\000\000\000\000\000\000\153\019\r\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\153\019\r\019\r\019\r\000\000\000\153\000\000\000\000\000\000\000\000\019\r\000\000\019\r\019\r\000\000\000\000\000\000\000\000\000\000\019\r\000\000\r\182\019\r\000\000\000\000\000\000\000\000\019\r\000\000\000\000\000\153\019\r\000\000\000\000\000\000\000\000\000\000\000\153\000\000\019\r\000\000\019\r\019\r\000\000\019\r\019\r\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\019\r\000\000\019\r\000\000\019\r\019\r\000\000\018a\019\r\000\000\000\000\018a\000\000\019\r\019\145\018a\019\r\019\r\000\153\019\r\000\000\019\r\019\r\005j\000\000\000\000\018a\018a\018a\000\000\018a\018a\018a\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\000\000\000\000\000\000\000\153\000\000\018a\018a+\254\005\242\000\000\018a\000\000\000\000\019\145\000\000\000\000\018a\000\000\000\153\018a\000\153\000\000\019\145\000\000\000\000\018a\018a\018a\019\145\019\145\000\242\000\000\000\000\000\000\018a\000\000\018a\018a\000\000\019\145\019\145\000\000\000\000\018a\000\000\000\000\018a\000\000\000\000\000\000\000\000\018a\000\000\000\000\000\000\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\018a\000\000\018a\018a\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\019\145\018a\018a\004M\000\000\018a\000\000\004M\000\000\000\000\018a\004M\000\000\018a\004&\000\000\018a\000\000\018a\018a\000\000\000\000\004M\004M\004M\000\000\004M\004M\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\004M\004M\004\030\000\153\000\000\004M\000\000\000\000\000\000\000\000\000\000\004M\000\153\000\000\004M\000\000\000\000\000\153\000\000\000\000\004M\004M\004M\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\004M\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\004M\000\153\000\000\000\000\000\000\004M\000\000\000\000\000\153\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\004M\000\153\004M\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\000\000\004M\004M\017\177\000\000\004M\000\000\017\177\000\153\000\000\004M\017\177\000\000\004M\004&\000\000\004M\000\000\004M\004M\000\000\000\000\017\177\017\177\017\177\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\017\177\000\000\000\000\000\000,~\000\000\000\000\017\177\017\177\004\030\000\000\000\000\017\177\000\000\000\153\000\000\000\153\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\000\000\017\177\017\177\b\221\000\000\017\177\000\000\b\221\000\000\000\000\017\177\b\221\000\000\017\177\004&\000\000\017\177\000\000\017\177\017\177\000\000\000\000\b\221\b\221\b\221\000\000\b\221\b\221\b\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\000\000\b\221\b\221\b\221\000\000\000\000\b\221\000\000\000\000\000\000\004*\000\000\b\221\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\b\221\b\221\b\221\000\000\000\000\000\000\000\000\000\000\000\000\b\221\000\000\b\221\b\221\000\000\000\000\000\000\000\000\000\000\b\221\000\000\000\000\b\221\000\000\000\000\000\000\000\000\b\221\000\000\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\221\000\000\b\221\b\221\000\000\b\221\b\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\221\000\000\b\221\000\000\b\221\b\221\017\193\000\000\b\221\000\000\017\193\000\000\000\000\b\221\017\193\000\000\b\221\000\000\000\000\b\221\000\000\b\221\b\221\000\000\000\000\017\193\017\193\017\193\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\017\193\004\030\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\000\000\017\193\017\193\017\209\000\000\017\193\000\000\017\209\000\000\000\000\017\193\017\209\000\000\017\193\004&\000\000\017\193\000\000\017\193\017\193\000\000\000\000\017\209\017\209\017\209\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\017\209\004\030\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\000\000\017\209\017\209\017\217\000\000\017\209\000\000\017\217\000\000\000\000\017\209\017\217\000\000\017\209\004&\000\000\017\209\000\000\017\209\017\209\000\000\000\000\017\217\017\217\017\217\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\017\217\005\n\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\000\000\017\217\017\217\017\241\000\000\017\217\000\000\017\241\000\000\000\000\017\217\017\241\000\000\017\217\004&\000\000\017\217\000\000\017\217\017\217\000\000\000\000\017\241\017\241\017\241\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\017\241\004\030\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\000\000\017\241\017\241\017\249\000\000\017\241\000\000\017\249\000\000\000\000\017\241\017\249\000\000\017\241\004&\000\000\017\241\000\000\017\241\017\241\000\000\000\000\017\249\017\249\017\249\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\017\249\005\n\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\000\000\017\249\017\249\018\001\000\000\017\249\000\000\018\001\000\000\000\000\017\249\018\001\000\000\017\249\004&\000\000\017\249\000\000\017\249\017\249\000\000\000\000\018\001\018\001\018\001\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\018\001\004\030\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\000\000\018\001\018\001\018\t\000\000\018\001\000\000\018\t\000\000\000\000\018\001\018\t\000\000\018\001\004&\000\000\018\001\000\000\018\001\018\001\000\000\000\000\018\t\018\t\018\t\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\018\t\005\n\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\000\000\018\t\018\t\017\225\000\000\018\t\000\000\017\225\000\000\000\000\018\t\017\225\000\000\018\t\004&\000\000\018\t\000\000\018\t\018\t\000\000\000\000\017\225\017\225\017\225\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\017\225\004\030\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\000\000\017\225\017\225\017\233\000\000\017\225\000\000\017\233\000\000\000\000\017\225\017\233\000\000\017\225\004&\000\000\017\225\000\000\017\225\017\225\000\000\000\000\017\233\017\233\017\233\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\017\233\005\n\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\000\000\017\233\017\233\016\145\000\000\017\233\000\000\016\145\000\000\000\000\017\233\016\145\000\000\017\233\004&\000\000\017\233\000\000\017\233\017\233\000\000\000\000\016\145\016\145\016\145\000\000\016\145\016\145\016\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\145\000\000\000\000\000\000\000\000\000\000\000\000\016\145\016\145\004\030\000\000\000\000\016\145\000\000\000\000\000\000\000\000\000\000\016\145\000\000\000\000\016\145\000\000\000\000\000\000\000\000\000\000\016\145\016\145\016\145\000\000\000\000\000\000\000\000\000\000\000\000\016\145\000\000\016\145\016\145\000\000\000\000\000\000\000\000\000\000\016\145\000\000\000\000\016\145\000\000\000\000\000\000\000\000\016\145\000\000\000\000\000\000\016\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\145\000\000\016\145\016\145\000\000\016\145\016\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\145\000\000\016\145\000\000\016\145\016\145\016\153\000\000\016\145\000\000\016\153\000\000\000\000\016\145\016\153\000\000\016\145\004&\000\000\016\145\000\000\016\145\016\145\000\000\000\000\016\153\016\153\016\153\000\000\016\153\016\153\016\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\153\000\000\000\000\000\000\000\000\000\000\000\000\016\153\016\153\005\n\000\000\000\000\016\153\000\000\000\000\000\000\000\000\000\000\016\153\000\000\000\000\016\153\000\000\000\000\000\000\000\000\000\000\016\153\016\153\016\153\000\000\000\000\000\000\000\000\000\000\000\000\016\153\000\000\016\153\016\153\000\000\000\000\000\000\000\000\000\000\016\153\000\000\000\000\016\153\000\000\000\000\000\000\000\000\016\153\000\000\000\000\000\000\016\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\153\000\000\016\153\016\153\000\000\016\153\016\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\153\000\000\016\153\000\000\016\153\016\153\016\161\000\000\016\153\000\000\016\161\000\000\000\000\016\153\016\161\000\000\016\153\004&\000\000\016\153\000\000\016\153\016\153\000\000\000\000\016\161\016\161\016\161\000\000\016\161\016\161\016\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\161\000\000\000\000\000\000\000\000\000\000\000\000\016\161\016\161\004\030\000\000\000\000\016\161\000\000\000\000\000\000\000\000\000\000\016\161\000\000\000\000\016\161\000\000\000\000\000\000\000\000\000\000\016\161\016\161\016\161\000\000\000\000\000\000\000\000\000\000\000\000\016\161\000\000\016\161\016\161\000\000\000\000\000\000\000\000\000\000\016\161\000\000\000\000\016\161\000\000\000\000\000\000\000\000\016\161\000\000\000\000\000\000\016\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\161\000\000\016\161\016\161\000\000\016\161\016\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\161\000\000\016\161\000\000\016\161\016\161\016\169\000\000\016\161\000\000\016\169\000\000\000\000\016\161\016\169\000\000\016\161\004&\000\000\016\161\000\000\016\161\016\161\000\000\000\000\016\169\016\169\016\169\000\000\016\169\016\169\016\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\169\000\000\000\000\000\000\000\000\000\000\000\000\016\169\016\169\005\n\000\000\000\000\016\169\000\000\000\000\000\000\000\000\000\000\016\169\000\000\000\000\016\169\000\000\000\000\000\000\000\000\000\000\016\169\016\169\016\169\000\000\000\000\000\000\000\000\000\000\000\000\016\169\000\000\016\169\016\169\000\000\000\000\000\000\000\000\000\000\016\169\000\000\000\000\016\169\000\000\000\000\000\000\000\000\016\169\000\000\000\000\000\000\016\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\169\000\000\016\169\016\169\000\000\016\169\016\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\169\000\000\016\169\000\000\016\169\016\169\016\177\000\000\016\169\000\000\016\177\000\000\000\000\016\169\016\177\000\000\016\169\004&\000\000\016\169\000\000\016\169\016\169\000\000\000\000\016\177\016\177\016\177\000\000\016\177\016\177\016\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177\000\000\000\000\000\000\000\000\000\000\000\000\016\177\016\177\004\030\000\000\000\000\016\177\000\000\000\000\000\000\000\000\000\000\016\177\000\000\000\000\016\177\000\000\000\000\000\000\000\000\000\000\016\177\016\177\016\177\000\000\000\000\000\000\000\000\000\000\000\000\016\177\000\000\016\177\016\177\000\000\000\000\000\000\000\000\000\000\016\177\000\000\000\000\016\177\000\000\000\000\000\000\000\000\016\177\000\000\000\000\000\000\016\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177\000\000\016\177\016\177\000\000\016\177\016\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177\000\000\016\177\000\000\016\177\016\177\016\185\000\000\016\177\000\000\016\185\000\000\000\000\016\177\016\185\000\000\016\177\004&\000\000\016\177\000\000\016\177\016\177\000\000\000\000\016\185\016\185\016\185\000\000\016\185\016\185\016\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\185\000\000\000\000\000\000\000\000\000\000\000\000\016\185\016\185\005\n\000\000\000\000\016\185\000\000\000\000\000\000\000\000\000\000\016\185\000\000\000\000\016\185\000\000\000\000\000\000\000\000\000\000\016\185\016\185\016\185\000\000\000\000\000\000\000\000\000\000\000\000\016\185\000\000\016\185\016\185\000\000\000\000\000\000\000\000\000\000\016\185\000\000\000\000\016\185\000\000\000\000\000\000\000\000\016\185\000\000\000\000\000\000\016\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\185\000\000\016\185\016\185\000\000\016\185\016\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\185\000\000\016\185\000\000\016\185\016\185\016\193\000\000\016\185\000\000\016\193\000\000\000\000\016\185\016\193\000\000\016\185\004&\000\000\016\185\000\000\016\185\016\185\000\000\000\000\016\193\016\193\016\193\000\000\016\193\016\193\016\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\193\000\000\000\000\000\000\000\000\000\000\000\000\016\193\016\193\004\030\000\000\000\000\016\193\000\000\000\000\000\000\000\000\000\000\016\193\000\000\000\000\016\193\000\000\000\000\000\000\000\000\000\000\016\193\016\193\016\193\000\000\000\000\000\000\000\000\000\000\000\000\016\193\000\000\016\193\016\193\000\000\000\000\000\000\000\000\000\000\016\193\000\000\000\000\016\193\000\000\000\000\000\000\000\000\016\193\000\000\000\000\000\000\016\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\193\000\000\016\193\016\193\000\000\016\193\016\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\193\000\000\016\193\000\000\016\193\016\193\016\201\000\000\016\193\000\000\016\201\000\000\000\000\016\193\016\201\000\000\016\193\004&\000\000\016\193\000\000\016\193\016\193\000\000\000\000\016\201\016\201\016\201\000\000\016\201\016\201\016\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\201\000\000\000\000\000\000\000\000\000\000\000\000\016\201\016\201\005\n\000\000\000\000\016\201\000\000\000\000\000\000\000\000\000\000\016\201\000\000\000\000\016\201\000\000\000\000\000\000\000\000\000\000\016\201\016\201\016\201\000\000\000\000\000\000\000\000\000\000\000\000\016\201\000\000\016\201\016\201\000\000\000\000\000\000\000\000\000\000\016\201\000\000\000\000\016\201\000\000\000\000\000\000\000\000\016\201\000\000\000\000\000\000\016\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\201\000\000\016\201\016\201\000\000\016\201\016\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\201\000\000\016\201\000\000\016\201\016\201\016\209\000\000\016\201\000\000\016\209\000\000\000\000\016\201\016\209\000\000\016\201\004&\000\000\016\201\000\000\016\201\016\201\000\000\000\000\016\209\016\209\016\209\000\000\016\209\016\209\016\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\209\000\000\000\000\000\000\000\000\000\000\000\000\016\209\016\209\004\030\000\000\000\000\016\209\000\000\000\000\000\000\000\000\000\000\016\209\000\000\000\000\016\209\000\000\000\000\000\000\000\000\000\000\016\209\016\209\016\209\000\000\000\000\000\000\000\000\000\000\000\000\016\209\000\000\016\209\016\209\000\000\000\000\000\000\000\000\000\000\016\209\000\000\000\000\016\209\000\000\000\000\000\000\000\000\016\209\000\000\000\000\000\000\016\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\209\000\000\016\209\016\209\000\000\016\209\016\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\209\000\000\016\209\000\000\016\209\016\209\016\217\000\000\016\209\000\000\016\217\000\000\000\000\016\209\016\217\000\000\016\209\004&\000\000\016\209\000\000\016\209\016\209\000\000\000\000\016\217\016\217\016\217\000\000\016\217\016\217\016\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\217\000\000\000\000\000\000\000\000\000\000\000\000\016\217\016\217\005\n\000\000\000\000\016\217\000\000\000\000\000\000\000\000\000\000\016\217\000\000\000\000\016\217\000\000\000\000\000\000\000\000\000\000\016\217\016\217\016\217\000\000\000\000\000\000\000\000\000\000\000\000\016\217\000\000\016\217\016\217\000\000\000\000\000\000\000\000\000\000\016\217\000\000\000\000\016\217\000\000\000\000\000\000\000\000\016\217\000\000\000\000\000\000\016\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\217\000\000\016\217\016\217\000\000\016\217\016\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\217\000\000\016\217\000\000\016\217\016\217\016\225\000\000\016\217\000\000\016\225\000\000\000\000\016\217\016\225\000\000\016\217\004&\000\000\016\217\000\000\016\217\016\217\000\000\000\000\016\225\016\225\016\225\000\000\016\225\016\225\016\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\225\000\000\000\000\000\000\000\000\000\000\000\000\016\225\016\225\004\030\000\000\000\000\016\225\000\000\000\000\000\000\000\000\000\000\016\225\000\000\000\000\016\225\000\000\000\000\000\000\000\000\000\000\016\225\016\225\016\225\000\000\000\000\000\000\000\000\000\000\000\000\016\225\000\000\016\225\016\225\000\000\000\000\000\000\000\000\000\000\016\225\000\000\000\000\016\225\000\000\000\000\000\000\000\000\016\225\000\000\000\000\000\000\016\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\225\000\000\016\225\016\225\000\000\016\225\016\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\225\000\000\016\225\000\000\016\225\016\225\016\233\000\000\016\225\000\000\016\233\000\000\000\000\016\225\016\233\000\000\016\225\004&\000\000\016\225\000\000\016\225\016\225\000\000\000\000\016\233\016\233\016\233\000\000\016\233\016\233\016\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\000\000\000\000\000\000\000\000\000\000\016\233\016\233\005\n\000\000\000\000\016\233\000\000\000\000\000\000\000\000\000\000\016\233\000\000\000\000\016\233\000\000\000\000\000\000\000\000\000\000\016\233\016\233\016\233\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\016\233\016\233\000\000\000\000\000\000\000\000\000\000\016\233\000\000\000\000\016\233\000\000\000\000\000\000\000\000\016\233\000\000\000\000\000\000\016\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\016\233\016\233\000\000\016\233\016\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\016\233\000\000\016\233\016\233\016\241\000\000\016\233\000\000\016\241\000\000\000\000\016\233\016\241\000\000\016\233\004&\000\000\016\233\000\000\016\233\016\233\000\000\000\000\016\241\016\241\016\241\000\000\016\241\016\241\016\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\241\000\000\000\000\000\000\000\000\000\000\000\000\016\241\016\241\004\030\000\000\000\000\016\241\000\000\000\000\000\000\000\000\000\000\016\241\000\000\000\000\016\241\000\000\000\000\000\000\000\000\000\000\016\241\016\241\016\241\000\000\000\000\000\000\000\000\000\000\000\000\016\241\000\000\016\241\016\241\000\000\000\000\000\000\000\000\000\000\016\241\000\000\000\000\016\241\000\000\000\000\000\000\000\000\016\241\000\000\000\000\000\000\016\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\241\000\000\016\241\016\241\000\000\016\241\016\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\241\000\000\016\241\000\000\016\241\016\241\016\249\000\000\016\241\000\000\016\249\000\000\000\000\016\241\016\249\000\000\016\241\004&\000\000\016\241\000\000\016\241\016\241\000\000\000\000\016\249\016\249\016\249\000\000\016\249\016\249\016\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\249\000\000\000\000\000\000\000\000\000\000\000\000\016\249\016\249\005\n\000\000\000\000\016\249\000\000\000\000\000\000\000\000\000\000\016\249\000\000\000\000\016\249\000\000\000\000\000\000\000\000\000\000\016\249\016\249\016\249\000\000\000\000\000\000\000\000\000\000\000\000\016\249\000\000\016\249\016\249\000\000\000\000\000\000\000\000\000\000\016\249\000\000\000\000\016\249\000\000\000\000\000\000\000\000\016\249\000\000\000\000\000\000\016\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\249\000\000\016\249\016\249\000\000\016\249\016\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\249\000\000\016\249\000\000\016\249\016\249\017\001\000\000\016\249\000\000\017\001\000\000\000\000\016\249\017\001\000\000\016\249\004&\000\000\016\249\000\000\016\249\016\249\000\000\000\000\017\001\017\001\017\001\000\000\017\001\017\001\017\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\001\000\000\000\000\000\000\000\000\000\000\000\000\017\001\017\001\004\030\000\000\000\000\017\001\000\000\000\000\000\000\000\000\000\000\017\001\000\000\000\000\017\001\000\000\000\000\000\000\000\000\000\000\017\001\017\001\017\001\000\000\000\000\000\000\000\000\000\000\000\000\017\001\000\000\017\001\017\001\000\000\000\000\000\000\000\000\000\000\017\001\000\000\000\000\017\001\000\000\000\000\000\000\000\000\017\001\000\000\000\000\000\000\017\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\001\000\000\017\001\017\001\000\000\017\001\017\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\001\000\000\017\001\000\000\017\001\017\001\017\t\000\000\017\001\000\000\017\t\000\000\000\000\017\001\017\t\000\000\017\001\004&\000\000\017\001\000\000\017\001\017\001\000\000\000\000\017\t\017\t\017\t\000\000\017\t\017\t\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\000\000\017\t\017\t\005\n\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\017\t\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\017\t\017\t\017\t\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\017\t\017\t\000\000\000\000\000\000\000\000\000\000\017\t\000\000\000\000\017\t\000\000\000\000\000\000\000\000\017\t\000\000\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\017\t\017\t\000\000\017\t\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\017\t\000\000\017\t\017\t\017\201\000\000\017\t\000\000\017\201\000\000\000\000\017\t\017\201\000\000\017\t\004&\000\000\017\t\000\000\017\t\017\t\000\000\000\000\017\201\017\201\017\201\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\017\201\005\n\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\000\000\017\201\017\201\017\185\000\000\017\201\000\000\017\185\000\000\000\000\017\201\017\185\000\000\017\201\004&\000\000\017\201\000\000\017\201\017\201\000\000\000\000\017\185\017\185\017\185\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\017\185\005\n\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\000\000\017\185\017\185\017\145\000\000\017\185\000\000\017\145\000\000\000\000\017\185\017\145\000\000\017\185\004&\000\000\017\185\000\000\017\185\017\185\000\000\000\000\017\145\017\145\017\145\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\017\145\004\030\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\000\000\017\145\017\145\017\153\000\000\017\145\000\000\017\153\000\000\000\000\017\145\017\153\000\000\017\145\004&\000\000\017\145\000\000\017\145\017\145\000\000\000\000\017\153\017\153\017\153\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\017\153\005\n\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\000\000\017\153\017\153\017\161\000\000\017\153\000\000\017\161\000\000\000\000\017\153\017\161\000\000\017\153\004&\000\000\017\153\000\000\017\153\017\153\000\000\000\000\017\161\017\161\017\161\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\017\161\004\030\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\000\000\017\161\017\161\017\169\000\000\017\161\000\000\017\169\000\000\000\000\017\161\017\169\000\000\017\161\004&\000\000\017\161\000\000\017\161\017\161\000\000\000\000\017\169\017\169\017\169\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\017\169\005\n\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\000\000\017\169\017\169\017\017\000\000\017\169\000\000\017\017\000\000\000\000\017\169\017\017\000\000\017\169\004&\000\000\017\169\000\000\017\169\017\169\000\000\000\000\017\017\017\017\017\017\000\000\017\017\017\017\017\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\017\000\000\000\000\000\000\000\000\000\000\000\000\017\017\017\017\004\030\000\000\000\000\017\017\000\000\000\000\000\000\000\000\000\000\017\017\000\000\000\000\017\017\000\000\000\000\000\000\000\000\000\000\017\017\017\017\017\017\000\000\000\000\000\000\000\000\000\000\000\000\017\017\000\000\017\017\017\017\000\000\000\000\000\000\000\000\000\000\017\017\000\000\000\000\017\017\000\000\000\000\000\000\000\000\017\017\000\000\000\000\000\000\017\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\017\000\000\017\017\017\017\000\000\017\017\017\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\017\000\000\017\017\000\000\017\017\017\017\017\025\000\000\017\017\000\000\017\025\000\000\000\000\017\017\017\025\000\000\017\017\004&\000\000\017\017\000\000\017\017\017\017\000\000\000\000\017\025\017\025\017\025\000\000\017\025\017\025\017\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\025\000\000\000\000\000\000\000\000\000\000\000\000\017\025\017\025\005\n\000\000\000\000\017\025\000\000\000\000\000\000\000\000\000\000\017\025\000\000\000\000\017\025\000\000\000\000\000\000\000\000\000\000\017\025\017\025\017\025\000\000\000\000\000\000\000\000\000\000\000\000\017\025\000\000\017\025\017\025\000\000\000\000\000\000\000\000\000\000\017\025\000\000\000\000\017\025\000\000\000\000\000\000\000\000\017\025\000\000\000\000\000\000\017\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\025\000\000\017\025\017\025\000\000\017\025\017\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\025\000\000\017\025\000\000\017\025\017\025\017!\000\000\017\025\000\000\017!\000\000\000\000\017\025\017!\000\000\017\025\004&\000\000\017\025\000\000\017\025\017\025\000\000\000\000\017!\017!\017!\000\000\017!\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\000\000\017!\017!\004\030\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\017!\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\017!\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\000\000\000\000\000\000\000\000\017!\000\000\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\017!\000\000\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\000\000\017!\017!\017)\000\000\017!\000\000\017)\000\000\000\000\017!\017)\000\000\017!\004&\000\000\017!\000\000\017!\017!\000\000\000\000\017)\017)\017)\000\000\017)\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\000\000\017)\017)\005\n\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\017)\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\017)\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\017)\000\000\000\000\000\000\000\000\017)\000\000\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\017)\000\000\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\000\000\017)\017)\0171\000\000\017)\000\000\0171\000\000\000\000\017)\0171\000\000\017)\004&\000\000\017)\000\000\017)\017)\000\000\000\000\0171\0171\0171\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\0171\004\030\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\000\000\0171\0171\0179\000\000\0171\000\000\0179\000\000\000\000\0171\0179\000\000\0171\004&\000\000\0171\000\000\0171\0171\000\000\000\000\0179\0179\0179\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\0179\005\n\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\000\000\0179\0179\017A\000\000\0179\000\000\017A\000\000\000\000\0179\017A\000\000\0179\004&\000\000\0179\000\000\0179\0179\000\000\000\000\017A\017A\017A\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\017A\004\030\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\000\000\017A\017A\017I\000\000\017A\000\000\017I\000\000\000\000\017A\017I\000\000\017A\004&\000\000\017A\000\000\017A\017A\000\000\000\000\017I\017I\017I\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\017I\005\n\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\000\000\017I\017I\017Q\000\000\017I\000\000\017Q\000\000\000\000\017I\017Q\000\000\017I\004&\000\000\017I\000\000\017I\017I\000\000\000\000\017Q\017Q\017Q\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\017Q\004\030\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\000\000\017Q\017Q\017Y\000\000\017Q\000\000\017Y\000\000\000\000\017Q\017Y\000\000\017Q\004&\000\000\017Q\000\000\017Q\017Q\000\000\000\000\017Y\017Y\017Y\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\017Y\005\n\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\000\000\017Y\017Y\017a\000\000\017Y\000\000\017a\000\000\000\000\017Y\017a\000\000\017Y\004&\000\000\017Y\000\000\017Y\017Y\000\000\000\000\017a\017a\017a\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\017a\004\030\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\000\000\017a\017a\017i\000\000\017a\000\000\017i\000\000\000\000\017a\017i\000\000\017a\004&\000\000\017a\000\000\017a\017a\000\000\000\000\017i\017i\017i\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\017i\005\n\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\000\000\017i\017i\017q\000\000\017i\000\000\017q\000\000\000\000\017i\017q\000\000\017i\004&\000\000\017i\000\000\017i\017i\000\000\000\000\017q\017q\017q\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\017q\004\030\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\000\000\017q\017q\017y\000\000\017q\000\000\017y\000\000\000\000\017q\017y\000\000\017q\004&\000\000\017q\000\000\017q\017q\000\000\000\000\017y\017y\017y\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\017y\005\n\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\000\000\017y\017y\017\129\000\000\017y\000\000\017\129\000\000\000\000\017y\017\129\000\000\017y\004&\000\000\017y\000\000\017y\017y\000\000\000\000\017\129\017\129\017\129\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\017\129\004\030\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\000\000\017\129\017\129\017\137\000\000\017\129\000\000\017\137\000\000\000\000\017\129\017\137\000\000\017\129\004&\000\000\017\129\000\000\017\129\017\129\000\000\000\000\017\137\017\137\017\137\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\017\137\005\n\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\000\000\017\137\017\137\018A\000\000\017\137\000\000\018A\000\000\000\000\017\137\018A\000\000\017\137\004&\000\000\017\137\000\000\017\137\017\137\000\000\000\000\018A\018A\018A\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\018A\004\030\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\000\000\018A\018A\018I\000\000\018A\000\000\018I\000\000\000\000\018A\018I\000\000\018A\004&\000\000\018A\000\000\018A\018A\000\000\000\000\018I\018I\018I\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\018I\005\n\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\000\000\018I\018I\018Q\000\000\018I\000\000\018Q\000\000\000\000\018I\018Q\000\000\018I\004&\000\000\018I\000\000\018I\018I\000\000\000\000\018Q\018Q\018Q\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\018Q\004\030\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018Q\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\000\000\000\000\000\000\000\000\018Q\000\000\000\000\018Q\000\000\000\000\000\000\000\000\018Q\000\000\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\000\000\018Q\018Q\018Y\000\000\018Q\000\000\018Y\000\000\000\000\018Q\018Y\000\000\018Q\004&\000\000\018Q\000\000\018Q\018Q\000\000\000\000\018Y\018Y\018Y\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\018Y\005\n\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\000\000\018Y\018Y\018!\000\000\018Y\000\000\018!\000\000\000\000\018Y\018!\000\000\018Y\004&\000\000\018Y\000\000\018Y\018Y\000\000\000\000\018!\018!\018!\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\018!\004\030\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\000\000\018!\018!\018)\000\000\018!\000\000\018)\000\000\000\000\018!\018)\000\000\018!\004&\000\000\018!\000\000\018!\018!\000\000\000\000\018)\018)\018)\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\018)\005\n\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\000\000\018)\018)\0181\000\000\018)\000\000\0181\000\000\000\000\018)\0181\000\000\018)\004&\000\000\018)\000\000\018)\018)\000\000\000\000\0181\0181\0181\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\0181\004\030\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\000\000\0181\0181\0189\000\000\0181\000\000\0189\000\000\000\000\0181\0189\000\000\0181\004&\000\000\0181\000\000\0181\0181\000\000\000\000\0189\0189\0189\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\0189\005\n\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\000\000\0189\0189\017\181\000\000\0189\000\000\017\181\000\000\000\000\0189\017\181\000\000\0189\004&\000\000\0189\000\000\0189\0189\000\000\000\000\017\181\017\181\017\181\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\017\181\004:\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\000\000\017\181\017\181\017\197\000\000\017\181\000\000\017\197\000\000\000\000\017\181\017\197\000\000\017\181\000\000\000\000\017\181\000\000\017\181\017\181\000\000\000\000\017\197\017\197\017\197\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\017\197\004:\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\000\000\017\197\017\197\017\213\000\000\017\197\000\000\017\213\000\000\000\000\017\197\017\213\000\000\017\197\000\000\000\000\017\197\000\000\017\197\017\197\000\000\000\000\017\213\017\213\017\213\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\017\213\004:\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\000\000\017\213\017\213\017\245\000\000\017\213\000\000\017\245\000\000\000\000\017\213\017\245\000\000\017\213\000\000\000\000\017\213\000\000\017\213\017\213\000\000\000\000\017\245\017\245\017\245\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\017\245\004:\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\000\000\017\245\017\245\017\253\000\000\017\245\000\000\017\253\000\000\000\000\017\245\017\253\000\000\017\245\000\000\000\000\017\245\000\000\017\245\017\245\000\000\000\000\017\253\017\253\017\253\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\017\253\005&\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\000\000\017\253\017\253\018\005\000\000\017\253\000\000\018\005\000\000\000\000\017\253\018\005\000\000\017\253\000\000\000\000\017\253\000\000\017\253\017\253\000\000\000\000\018\005\018\005\018\005\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\018\005\004:\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\000\000\018\005\018\005\018\r\000\000\018\005\000\000\018\r\000\000\000\000\018\005\018\r\000\000\018\005\000\000\000\000\018\005\000\000\018\005\018\005\000\000\000\000\018\r\018\r\018\r\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\018\r\005&\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\000\000\018\r\018\r\017\221\000\000\018\r\000\000\017\221\000\000\000\000\018\r\017\221\000\000\018\r\000\000\000\000\018\r\000\000\018\r\018\r\000\000\000\000\017\221\017\221\017\221\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\017\221\005&\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\000\000\017\221\017\221\017\229\000\000\017\221\000\000\017\229\000\000\000\000\017\221\017\229\000\000\017\221\000\000\000\000\017\221\000\000\017\221\017\221\000\000\000\000\017\229\017\229\017\229\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\017\229\004:\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\000\000\017\229\017\229\017\237\000\000\017\229\000\000\017\237\000\000\000\000\017\229\017\237\000\000\017\229\000\000\000\000\017\229\000\000\017\229\017\229\000\000\000\000\017\237\017\237\017\237\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\017\237\005&\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\000\000\017\237\017\237\002\021\000\000\017\237\000\000\002\021\000\000\000\000\017\237\002\021\000\000\017\237\000\000\000\000\017\237\000\000\017\237\017\237\000\000\000\000\002\021\002\021\002\021\000\000\002\021\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\002\021\002\021\002\021\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\002\021\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\002\021\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\002\021\002\021\000\000\000\000\000\000\000\000\000\000\002\021\000\000\000\000\002\021\000\000\000\000\000\000\000\000\002\021\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\002\021\002\021\000\000\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\002\021\000\000\002\021\002\021\016\149\000\000\002\021\000\000\016\149\000\000\000\000\002\021\016\149\000\000\002\021\000\000\000\000\005\174\000\000\002\021\002\021\000\000\000\000\016\149\016\149\016\149\000\000\016\149\016\149\016\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\149\000\000\000\000\000\000\000\000\000\000\000\000\016\149\016\149\004:\000\000\000\000\016\149\000\000\000\000\000\000\000\000\000\000\016\149\000\000\000\000\016\149\000\000\000\000\000\000\000\000\000\000\016\149\016\149\016\149\000\000\000\000\000\000\000\000\000\000\000\000\016\149\000\000\016\149\016\149\000\000\000\000\000\000\000\000\000\000\016\149\000\000\000\000\016\149\000\000\000\000\000\000\000\000\016\149\000\000\000\000\000\000\016\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\149\000\000\016\149\016\149\000\000\016\149\016\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\149\000\000\016\149\000\000\016\149\016\149\016\157\000\000\016\149\000\000\016\157\000\000\000\000\016\149\016\157\000\000\016\149\000\000\000\000\016\149\000\000\016\149\016\149\000\000\000\000\016\157\016\157\016\157\000\000\016\157\016\157\016\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\157\000\000\000\000\000\000\000\000\000\000\000\000\016\157\016\157\005&\000\000\000\000\016\157\000\000\000\000\000\000\000\000\000\000\016\157\000\000\000\000\016\157\000\000\000\000\000\000\000\000\000\000\016\157\016\157\016\157\000\000\000\000\000\000\000\000\000\000\000\000\016\157\000\000\016\157\016\157\000\000\000\000\000\000\000\000\000\000\016\157\000\000\000\000\016\157\000\000\000\000\000\000\000\000\016\157\000\000\000\000\000\000\016\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\157\000\000\016\157\016\157\000\000\016\157\016\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\157\000\000\016\157\000\000\016\157\016\157\016\165\000\000\016\157\000\000\016\165\000\000\000\000\016\157\016\165\000\000\016\157\000\000\000\000\016\157\000\000\016\157\016\157\000\000\000\000\016\165\016\165\016\165\000\000\016\165\016\165\016\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\165\000\000\000\000\000\000\000\000\000\000\000\000\016\165\016\165\004:\000\000\000\000\016\165\000\000\000\000\000\000\000\000\000\000\016\165\000\000\000\000\016\165\000\000\000\000\000\000\000\000\000\000\016\165\016\165\016\165\000\000\000\000\000\000\000\000\000\000\000\000\016\165\000\000\016\165\016\165\000\000\000\000\000\000\000\000\000\000\016\165\000\000\000\000\016\165\000\000\000\000\000\000\000\000\016\165\000\000\000\000\000\000\016\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\165\000\000\016\165\016\165\000\000\016\165\016\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\165\000\000\016\165\000\000\016\165\016\165\016\173\000\000\016\165\000\000\016\173\000\000\000\000\016\165\016\173\000\000\016\165\000\000\000\000\016\165\000\000\016\165\016\165\000\000\000\000\016\173\016\173\016\173\000\000\016\173\016\173\016\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\173\000\000\000\000\000\000\000\000\000\000\000\000\016\173\016\173\005&\000\000\000\000\016\173\000\000\000\000\000\000\000\000\000\000\016\173\000\000\000\000\016\173\000\000\000\000\000\000\000\000\000\000\016\173\016\173\016\173\000\000\000\000\000\000\000\000\000\000\000\000\016\173\000\000\016\173\016\173\000\000\000\000\000\000\000\000\000\000\016\173\000\000\000\000\016\173\000\000\000\000\000\000\000\000\016\173\000\000\000\000\000\000\016\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\173\000\000\016\173\016\173\000\000\016\173\016\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\173\000\000\016\173\000\000\016\173\016\173\016\181\000\000\016\173\000\000\016\181\000\000\000\000\016\173\016\181\000\000\016\173\000\000\000\000\016\173\000\000\016\173\016\173\000\000\000\000\016\181\016\181\016\181\000\000\016\181\016\181\016\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\181\000\000\000\000\000\000\000\000\000\000\000\000\016\181\016\181\004:\000\000\000\000\016\181\000\000\000\000\000\000\000\000\000\000\016\181\000\000\000\000\016\181\000\000\000\000\000\000\000\000\000\000\016\181\016\181\016\181\000\000\000\000\000\000\000\000\000\000\000\000\016\181\000\000\016\181\016\181\000\000\000\000\000\000\000\000\000\000\016\181\000\000\000\000\016\181\000\000\000\000\000\000\000\000\016\181\000\000\000\000\000\000\016\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\181\000\000\016\181\016\181\000\000\016\181\016\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\181\000\000\016\181\000\000\016\181\016\181\016\189\000\000\016\181\000\000\016\189\000\000\000\000\016\181\016\189\000\000\016\181\000\000\000\000\016\181\000\000\016\181\016\181\000\000\000\000\016\189\016\189\016\189\000\000\016\189\016\189\016\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\189\000\000\000\000\000\000\000\000\000\000\000\000\016\189\016\189\005&\000\000\000\000\016\189\000\000\000\000\000\000\000\000\000\000\016\189\000\000\000\000\016\189\000\000\000\000\000\000\000\000\000\000\016\189\016\189\016\189\000\000\000\000\000\000\000\000\000\000\000\000\016\189\000\000\016\189\016\189\000\000\000\000\000\000\000\000\000\000\016\189\000\000\000\000\016\189\000\000\000\000\000\000\000\000\016\189\000\000\000\000\000\000\016\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\189\000\000\016\189\016\189\000\000\016\189\016\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\189\000\000\016\189\000\000\016\189\016\189\016\197\000\000\016\189\000\000\016\197\000\000\000\000\016\189\016\197\000\000\016\189\000\000\000\000\016\189\000\000\016\189\016\189\000\000\000\000\016\197\016\197\016\197\000\000\016\197\016\197\016\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\197\000\000\000\000\000\000\000\000\000\000\000\000\016\197\016\197\004:\000\000\000\000\016\197\000\000\000\000\000\000\000\000\000\000\016\197\000\000\000\000\016\197\000\000\000\000\000\000\000\000\000\000\016\197\016\197\016\197\000\000\000\000\000\000\000\000\000\000\000\000\016\197\000\000\016\197\016\197\000\000\000\000\000\000\000\000\000\000\016\197\000\000\000\000\016\197\000\000\000\000\000\000\000\000\016\197\000\000\000\000\000\000\016\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\197\000\000\016\197\016\197\000\000\016\197\016\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\197\000\000\016\197\000\000\016\197\016\197\016\205\000\000\016\197\000\000\016\205\000\000\000\000\016\197\016\205\000\000\016\197\000\000\000\000\016\197\000\000\016\197\016\197\000\000\000\000\016\205\016\205\016\205\000\000\016\205\016\205\016\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\205\000\000\000\000\000\000\000\000\000\000\000\000\016\205\016\205\005&\000\000\000\000\016\205\000\000\000\000\000\000\000\000\000\000\016\205\000\000\000\000\016\205\000\000\000\000\000\000\000\000\000\000\016\205\016\205\016\205\000\000\000\000\000\000\000\000\000\000\000\000\016\205\000\000\016\205\016\205\000\000\000\000\000\000\000\000\000\000\016\205\000\000\000\000\016\205\000\000\000\000\000\000\000\000\016\205\000\000\000\000\000\000\016\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\205\000\000\016\205\016\205\000\000\016\205\016\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\205\000\000\016\205\000\000\016\205\016\205\016\213\000\000\016\205\000\000\016\213\000\000\000\000\016\205\016\213\000\000\016\205\000\000\000\000\016\205\000\000\016\205\016\205\000\000\000\000\016\213\016\213\016\213\000\000\016\213\016\213\016\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\213\000\000\000\000\000\000\000\000\000\000\000\000\016\213\016\213\004:\000\000\000\000\016\213\000\000\000\000\000\000\000\000\000\000\016\213\000\000\000\000\016\213\000\000\000\000\000\000\000\000\000\000\016\213\016\213\016\213\000\000\000\000\000\000\000\000\000\000\000\000\016\213\000\000\016\213\016\213\000\000\000\000\000\000\000\000\000\000\016\213\000\000\000\000\016\213\000\000\000\000\000\000\000\000\016\213\000\000\000\000\000\000\016\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\213\000\000\016\213\016\213\000\000\016\213\016\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\213\000\000\016\213\000\000\016\213\016\213\016\221\000\000\016\213\000\000\016\221\000\000\000\000\016\213\016\221\000\000\016\213\000\000\000\000\016\213\000\000\016\213\016\213\000\000\000\000\016\221\016\221\016\221\000\000\016\221\016\221\016\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\221\000\000\000\000\000\000\000\000\000\000\000\000\016\221\016\221\005&\000\000\000\000\016\221\000\000\000\000\000\000\000\000\000\000\016\221\000\000\000\000\016\221\000\000\000\000\000\000\000\000\000\000\016\221\016\221\016\221\000\000\000\000\000\000\000\000\000\000\000\000\016\221\000\000\016\221\016\221\000\000\000\000\000\000\000\000\000\000\016\221\000\000\000\000\016\221\000\000\000\000\000\000\000\000\016\221\000\000\000\000\000\000\016\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\221\000\000\016\221\016\221\000\000\016\221\016\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\221\000\000\016\221\000\000\016\221\016\221\016\229\000\000\016\221\000\000\016\229\000\000\000\000\016\221\016\229\000\000\016\221\000\000\000\000\016\221\000\000\016\221\016\221\000\000\000\000\016\229\016\229\016\229\000\000\016\229\016\229\016\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\229\000\000\000\000\000\000\000\000\000\000\000\000\016\229\016\229\004:\000\000\000\000\016\229\000\000\000\000\000\000\000\000\000\000\016\229\000\000\000\000\016\229\000\000\000\000\000\000\000\000\000\000\016\229\016\229\016\229\000\000\000\000\000\000\000\000\000\000\000\000\016\229\000\000\016\229\016\229\000\000\000\000\000\000\000\000\000\000\016\229\000\000\000\000\016\229\000\000\000\000\000\000\000\000\016\229\000\000\000\000\000\000\016\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\229\000\000\016\229\016\229\000\000\016\229\016\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\229\000\000\016\229\000\000\016\229\016\229\016\237\000\000\016\229\000\000\016\237\000\000\000\000\016\229\016\237\000\000\016\229\000\000\000\000\016\229\000\000\016\229\016\229\000\000\000\000\016\237\016\237\016\237\000\000\016\237\016\237\016\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\237\000\000\000\000\000\000\000\000\000\000\000\000\016\237\016\237\005&\000\000\000\000\016\237\000\000\000\000\000\000\000\000\000\000\016\237\000\000\000\000\016\237\000\000\000\000\000\000\000\000\000\000\016\237\016\237\016\237\000\000\000\000\000\000\000\000\000\000\000\000\016\237\000\000\016\237\016\237\000\000\000\000\000\000\000\000\000\000\016\237\000\000\000\000\016\237\000\000\000\000\000\000\000\000\016\237\000\000\000\000\000\000\016\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\237\000\000\016\237\016\237\000\000\016\237\016\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\237\000\000\016\237\000\000\016\237\016\237\016\245\000\000\016\237\000\000\016\245\000\000\000\000\016\237\016\245\000\000\016\237\000\000\000\000\016\237\000\000\016\237\016\237\000\000\000\000\016\245\016\245\016\245\000\000\016\245\016\245\016\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\245\000\000\000\000\000\000\000\000\000\000\000\000\016\245\016\245\004:\000\000\000\000\016\245\000\000\000\000\000\000\000\000\000\000\016\245\000\000\000\000\016\245\000\000\000\000\000\000\000\000\000\000\016\245\016\245\016\245\000\000\000\000\000\000\000\000\000\000\000\000\016\245\000\000\016\245\016\245\000\000\000\000\000\000\000\000\000\000\016\245\000\000\000\000\016\245\000\000\000\000\000\000\000\000\016\245\000\000\000\000\000\000\016\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\245\000\000\016\245\016\245\000\000\016\245\016\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\245\000\000\016\245\000\000\016\245\016\245\016\253\000\000\016\245\000\000\016\253\000\000\000\000\016\245\016\253\000\000\016\245\000\000\000\000\016\245\000\000\016\245\016\245\000\000\000\000\016\253\016\253\016\253\000\000\016\253\016\253\016\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\253\000\000\000\000\000\000\000\000\000\000\000\000\016\253\016\253\005&\000\000\000\000\016\253\000\000\000\000\000\000\000\000\000\000\016\253\000\000\000\000\016\253\000\000\000\000\000\000\000\000\000\000\016\253\016\253\016\253\000\000\000\000\000\000\000\000\000\000\000\000\016\253\000\000\016\253\016\253\000\000\000\000\000\000\000\000\000\000\016\253\000\000\000\000\016\253\000\000\000\000\000\000\000\000\016\253\000\000\000\000\000\000\016\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\253\000\000\016\253\016\253\000\000\016\253\016\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\253\000\000\016\253\000\000\016\253\016\253\017\005\000\000\016\253\000\000\017\005\000\000\000\000\016\253\017\005\000\000\016\253\000\000\000\000\016\253\000\000\016\253\016\253\000\000\000\000\017\005\017\005\017\005\000\000\017\005\017\005\017\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\005\000\000\000\000\000\000\000\000\000\000\000\000\017\005\017\005\004:\000\000\000\000\017\005\000\000\000\000\000\000\000\000\000\000\017\005\000\000\000\000\017\005\000\000\000\000\000\000\000\000\000\000\017\005\017\005\017\005\000\000\000\000\000\000\000\000\000\000\000\000\017\005\000\000\017\005\017\005\000\000\000\000\000\000\000\000\000\000\017\005\000\000\000\000\017\005\000\000\000\000\000\000\000\000\017\005\000\000\000\000\000\000\017\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\005\000\000\017\005\017\005\000\000\017\005\017\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\005\000\000\017\005\000\000\017\005\017\005\017\r\000\000\017\005\000\000\017\r\000\000\000\000\017\005\017\r\000\000\017\005\000\000\000\000\017\005\000\000\017\005\017\005\000\000\000\000\017\r\017\r\017\r\000\000\017\r\017\r\017\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\r\000\000\000\000\000\000\000\000\000\000\000\000\017\r\017\r\005&\000\000\000\000\017\r\000\000\000\000\000\000\000\000\000\000\017\r\000\000\000\000\017\r\000\000\000\000\000\000\000\000\000\000\017\r\017\r\017\r\000\000\000\000\000\000\000\000\000\000\000\000\017\r\000\000\017\r\017\r\000\000\000\000\000\000\000\000\000\000\017\r\000\000\000\000\017\r\000\000\000\000\000\000\000\000\017\r\000\000\000\000\000\000\017\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\r\000\000\017\r\017\r\000\000\017\r\017\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\r\000\000\017\r\000\000\017\r\017\r\017\205\000\000\017\r\000\000\017\205\000\000\000\000\017\r\017\205\000\000\017\r\000\000\000\000\017\r\000\000\017\r\017\r\000\000\000\000\017\205\017\205\017\205\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\017\205\005&\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\000\000\017\205\017\205\017\189\000\000\017\205\000\000\017\189\000\000\000\000\017\205\017\189\000\000\017\205\000\000\000\000\017\205\000\000\017\205\017\205\000\000\000\000\017\189\017\189\017\189\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\017\189\005&\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\000\000\017\189\017\189\017\149\000\000\017\189\000\000\017\149\000\000\000\000\017\189\017\149\000\000\017\189\000\000\000\000\017\189\000\000\017\189\017\189\000\000\000\000\017\149\017\149\017\149\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\017\149\004:\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\000\000\017\149\017\149\017\157\000\000\017\149\000\000\017\157\000\000\000\000\017\149\017\157\000\000\017\149\000\000\000\000\017\149\000\000\017\149\017\149\000\000\000\000\017\157\017\157\017\157\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\017\157\005&\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\000\000\017\157\017\157\017\165\000\000\017\157\000\000\017\165\000\000\000\000\017\157\017\165\000\000\017\157\000\000\000\000\017\157\000\000\017\157\017\157\000\000\000\000\017\165\017\165\017\165\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\017\165\004:\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\000\000\017\165\017\165\017\173\000\000\017\165\000\000\017\173\000\000\000\000\017\165\017\173\000\000\017\165\000\000\000\000\017\165\000\000\017\165\017\165\000\000\000\000\017\173\017\173\017\173\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\017\173\005&\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\000\000\017\173\017\173\017\021\000\000\017\173\000\000\017\021\000\000\000\000\017\173\017\021\000\000\017\173\000\000\000\000\017\173\000\000\017\173\017\173\000\000\000\000\017\021\017\021\017\021\000\000\017\021\017\021\017\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\021\000\000\000\000\000\000\000\000\000\000\000\000\017\021\017\021\004:\000\000\000\000\017\021\000\000\000\000\000\000\000\000\000\000\017\021\000\000\000\000\017\021\000\000\000\000\000\000\000\000\000\000\017\021\017\021\017\021\000\000\000\000\000\000\000\000\000\000\000\000\017\021\000\000\017\021\017\021\000\000\000\000\000\000\000\000\000\000\017\021\000\000\000\000\017\021\000\000\000\000\000\000\000\000\017\021\000\000\000\000\000\000\017\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\021\000\000\017\021\017\021\000\000\017\021\017\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\021\000\000\017\021\000\000\017\021\017\021\017\029\000\000\017\021\000\000\017\029\000\000\000\000\017\021\017\029\000\000\017\021\000\000\000\000\017\021\000\000\017\021\017\021\000\000\000\000\017\029\017\029\017\029\000\000\017\029\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\000\000\017\029\017\029\005&\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\017\029\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\017\029\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\017\029\000\000\000\000\000\000\000\000\017\029\000\000\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\017\029\000\000\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\000\000\017\029\017\029\017%\000\000\017\029\000\000\017%\000\000\000\000\017\029\017%\000\000\017\029\000\000\000\000\017\029\000\000\017\029\017\029\000\000\000\000\017%\017%\017%\000\000\017%\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\000\000\017%\017%\004:\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\017%\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\017%\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\017%\000\000\000\000\000\000\000\000\017%\000\000\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\017%\000\000\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\000\000\017%\017%\017-\000\000\017%\000\000\017-\000\000\000\000\017%\017-\000\000\017%\000\000\000\000\017%\000\000\017%\017%\000\000\000\000\017-\017-\017-\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\017-\005&\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\000\000\017-\017-\0175\000\000\017-\000\000\0175\000\000\000\000\017-\0175\000\000\017-\000\000\000\000\017-\000\000\017-\017-\000\000\000\000\0175\0175\0175\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\0175\004:\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\000\000\0175\0175\017=\000\000\0175\000\000\017=\000\000\000\000\0175\017=\000\000\0175\000\000\000\000\0175\000\000\0175\0175\000\000\000\000\017=\017=\017=\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\017=\005&\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\000\000\017=\017=\017E\000\000\017=\000\000\017E\000\000\000\000\017=\017E\000\000\017=\000\000\000\000\017=\000\000\017=\017=\000\000\000\000\017E\017E\017E\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\017E\004:\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\000\000\017E\017E\017M\000\000\017E\000\000\017M\000\000\000\000\017E\017M\000\000\017E\000\000\000\000\017E\000\000\017E\017E\000\000\000\000\017M\017M\017M\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\017M\005&\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\000\000\017M\017M\017U\000\000\017M\000\000\017U\000\000\000\000\017M\017U\000\000\017M\000\000\000\000\017M\000\000\017M\017M\000\000\000\000\017U\017U\017U\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\017U\004:\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\000\000\017U\017U\017]\000\000\017U\000\000\017]\000\000\000\000\017U\017]\000\000\017U\000\000\000\000\017U\000\000\017U\017U\000\000\000\000\017]\017]\017]\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\017]\005&\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\017]\017]\017e\000\000\017]\000\000\017e\000\000\000\000\017]\017e\000\000\017]\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\017e\017e\017e\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\017e\004:\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\000\000\017e\017e\017m\000\000\017e\000\000\017m\000\000\000\000\017e\017m\000\000\017e\000\000\000\000\017e\000\000\017e\017e\000\000\000\000\017m\017m\017m\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\017m\005&\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\000\000\017m\017m\017u\000\000\017m\000\000\017u\000\000\000\000\017m\017u\000\000\017m\000\000\000\000\017m\000\000\017m\017m\000\000\000\000\017u\017u\017u\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\017u\004:\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\000\000\017u\017u\017}\000\000\017u\000\000\017}\000\000\000\000\017u\017}\000\000\017u\000\000\000\000\017u\000\000\017u\017u\000\000\000\000\017}\017}\017}\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\017}\005&\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\000\000\017}\017}\017\133\000\000\017}\000\000\017\133\000\000\000\000\017}\017\133\000\000\017}\000\000\000\000\017}\000\000\017}\017}\000\000\000\000\017\133\017\133\017\133\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\017\133\004:\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\000\000\017\133\017\133\017\141\000\000\017\133\000\000\017\141\000\000\000\000\017\133\017\141\000\000\017\133\000\000\000\000\017\133\000\000\017\133\017\133\000\000\000\000\017\141\017\141\017\141\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\017\141\005&\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\000\000\017\141\017\141\018E\000\000\017\141\000\000\018E\000\000\000\000\017\141\018E\000\000\017\141\000\000\000\000\017\141\000\000\017\141\017\141\000\000\000\000\018E\018E\018E\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\018E\004:\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\000\000\018E\018E\018M\000\000\018E\000\000\018M\000\000\000\000\018E\018M\000\000\018E\000\000\000\000\018E\000\000\018E\018E\000\000\000\000\018M\018M\018M\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\018M\005&\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018M\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\000\000\000\000\000\000\000\000\018M\000\000\000\000\018M\000\000\000\000\000\000\000\000\018M\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\000\000\018M\018M\018U\000\000\018M\000\000\018U\000\000\000\000\018M\018U\000\000\018M\000\000\000\000\018M\000\000\018M\018M\000\000\000\000\018U\018U\018U\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\018U\004:\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\000\000\018U\018U\018]\000\000\018U\000\000\018]\000\000\000\000\018U\018]\000\000\018U\000\000\000\000\018U\000\000\018U\018U\000\000\000\000\018]\018]\018]\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\018]\005&\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\018]\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000\000\000\000\000\000\000\000\000\018]\000\000\000\000\018]\000\000\000\000\000\000\000\000\018]\000\000\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\000\000\018]\018]\018%\000\000\018]\000\000\018%\000\000\000\000\018]\018%\000\000\018]\000\000\000\000\018]\000\000\018]\018]\000\000\000\000\018%\018%\018%\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\018%\004:\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\000\000\018%\018%\018-\000\000\018%\000\000\018-\000\000\000\000\018%\018-\000\000\018%\000\000\000\000\018%\000\000\018%\018%\000\000\000\000\018-\018-\018-\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\018-\005&\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\000\000\018-\018-\0185\000\000\018-\000\000\0185\000\000\000\000\018-\0185\000\000\018-\000\000\000\000\018-\000\000\018-\018-\000\000\000\000\0185\0185\0185\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\0185\004:\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\000\000\0185\0185\018=\000\000\0185\000\000\018=\000\000\000\000\0185\018=\000\000\0185\000\000\000\000\0185\000\000\0185\0185\000\000\000\000\018=\018=\018=\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\001\202\001\226\001\230\018=\018=\005&\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\001\234\002&\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\001\206\018=\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\002z\001\210\003\194\018=\000\000\000\000\003Z\018=\003j\003\154\003\166\000\000\000\000\000\000\000\000\018=\003\178\018=\018=\000\000\018=\018=\bb\003z\000\000\000\000\003J\000\000\r\030\000\000\000\000\bF\018=\000\000\018=\000\000\018=\018=\003\182\003\198\018=\000\000\001\234\000\000\rj\018=\000\000\000\000\018=\b\158\000\000\018=\015V\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\015\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\015\005\n\002\000\000\n\n\000\000\016v\000\000\000\000\n:\000\000\000\000\006\241\000\000\000\000\000\000\006\241\000\000\006\189\000\000\n>\nR\nV\000\000\nZ\nb\000\000\006\241\000\000\000\000\000\000\006\241\000\000\006\241\000\000\nj\nn\001\202\b\233\b\233\021r\000\000\b\233\000\000\b\233\006\241\000\000\b\233\000\000\000\000\000\000\000\000\006\241\000\000\000\000\000\000\015\005\000\000\b\233\b\233\015\005\015\005\000\000\nr\000\000\b\233\006\241\015\005\000\000\007\134\001\206\000\000\006\241\015\005\006\189\000\000\000\000\000\000\000\000\000\000\b\233\006\241\000\000\b\233\001\210\b\233\000\000\000\000\000\000\b\233\006\241\b\233\b\233\b\233\b\233\b\233\000\000\000\000\000\000\b\233\000\000\b\233\b\233\b\233\000\000\000\000\b\233\000\000\000\000\000\000\006\241\000\000\006\241\000\000\000\000\006\241\006\241\b\233\b\233\b\233\000\000\b\233\b\233\000\000\001\202\b\237\b\237\000\000\000\000\b\237\000\000\b\237\b\233\b\233\b\237\006\241\b\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237\b\237\000\000!\030\000\000\000\000\000\000\b\237\000\000\000\000\000\000\000\000\001\206\000\000\000\000\b\233\000\000\000\000\000\000\000\000\000\000\b\233\b\237\000\000\000\000\b\237\001\210\b\237\000\000\000\000\000\000\b\237\000\000\b\237\b\237\b\237\b\237\b\237\000\000\000\000\000\000\b\237\000\000\b\237\b\237\b\237\000\000\000\000\b\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237\b\237\b\237\000\000\b\237\b\237\000\000\001\202\b\229\b\229\000\000\000\000\b\229\000\000\b\229\b\237\b\237\b\229\000\000\b\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\229\b\229\000\000\000\000\000\000\000\000\000\000\b\229\000\000\000\000\000\000\000\000\001\206\000\000\000\000\b\237\000\000\000\000\000\000\000\000\000\000\b\237\b\229\000\000\000\000\b\229\001\210\b\229\000\000\000\000\000\000\b\229\000\000\b\229\b\229\b\229\b\229\b\229\000\000\000\000\000\000\b\229\000\000\b\229\b\229\b\229\000\000\000\000\b\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\229\b\229\b\229\000\000\b\229\b\229\000\000\006\249\006\249\006\249\000\000\000\000\006\249\000\000\006\249\b\229\b\229\006\249\000\000\b\229\000\000\000\000\000\000\000\000\006\249\000\000\000\000\000\000\006\249\000\000\000\000\000\000\000\000\000\000\000\000\006\249&&\000\000\000\000&>\006\249\000\000\000\000\b\229\000\000\000\000\000\000\000\000\000\000\b\229\006\249\000\000\000\000\006\249\006\249\006\249\000\000\000\000\000\000\000\000\000\000\006\249\000\000\000\000\006\249\006\249\000\000\000\000\000\242\006\249\000\000\006\249\006\249\006\249\b=\000\000\006\249\000\000\b=\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\006\249\006\249\006\249\000\000\006\249\006\249\b=\000\000\b=\000\000\b=\000\000\b=\000\000\000\000\006\249\006\249\000\000\000\000\000\000\001\226\001\230\000\000\000\000\b=\000\000\000\000\000\000\000\000\000\000\000\000\b=\000\000\b=\000\000\000\000\000\000\000\000\b=\000\000\001\234\002&\b=\006\249\000\000\b=\000\000\000\000\000\000\006\249\000\000\b=\b=\b=\000\000\000\000\000\000\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\003^\000\000\003\194\000\000\b=\b=\003Z\b=\003j\003\154\003\166\000\000\b=\bb\003z\000\000\003\178\003J\029V\r\030\000\000\000\000\bF\000\000\b=\000\000\b=\b=\000\000\b=\b=\000\000\000\000\001\234\000\000\rj\000\000\014f\003\182\003\198\b\158\000\000\000\000\015V\029\182\b=\000\000\000\000\b=\b=\000\000\000\000\000\000\0049\000\000\b\178\000\000\b=\015\230\000\000\001\190\000\000\b=\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\000\000\016v\019\217\000\000\n:\000\000\019\217\000\000\000\000\000\000\019\217\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\019\217\000\000\019\217\000\000\019\217\000\000\019\217\000\000\000\000\nj\nn\bb\003z\000\000\0049\003J\000\000\r\030\019\217\000\000\bF\000\000\000\000\000\000\000\000\019\217\000\000\019\217\000\000\000\000\000\000\001\234\0049\rj\000\000\0049\019\217\nr\b\158\019\217\000\000\015V\000\000\007\134\000\000\019\217\019\217\019\217\000\000\000\000\000\000\000\000\000\000\b\178\019\217\000\000\015\230\000\000\001\190\000\000\000\000\000\000\000\000\019\217\003j\000\000\019\217\t\250\t\254\000\000\000\000\019\217\n\002\000\000\n\n\000\000\016v\000\000\000\000\n:\000\000\000\000\000\000\019\217\000\000\019\217\019\217\000\000\019\217\019\217\n>\nR\nV\000\000\nZ\nb\000\000\000\000\000\000\000\000\014\002\000\000\000\000\000\000\019\217\nj\nn\000\000\019\217\000\000\021r\000\000\000\000\000\000\025\002\000\000\019\217\000\000\000\000\018\170\000\000\019\217\000\000\023&\r\029\000\000\r\029\r\029\003\150\000\000\000\000\022\142\000\000\nr\019\018\019r\019\138\019*\019\162\007\134\000\000\004&\000\000\001\153\000\000\000\000\000\000\000\000\019B\000\000\019\186\019\210\000\000\000\000\000\000\000\000\000\000\018\170\000\000\000\000\019\234\000\000\031J\000\000\001\153\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\019B\000\000\019\186\019\210\000\000\000\000\000\000\000\000\000\000\000\000\028\"\020\146\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\020\170\000\000\000\000\000\000\000\000\025\006\000\000\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\021\n\r\029\000\000\021B\0202\000\000\000\000\000\000\000\000\r\029\020\194\020\146\000\000\000\000\020J\020b\001\153\000\000\000\000\000\000\020\218\020\242\020\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\161\000\000\000\000\021\n\001\153\031N\021B\0202\031Z\000\000\000\000\000\000\001\153\020\194\018\170\000\000\000\000\020J\020b\000\000\000\000\001\161\001\153\020\218\020\242\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\000\000\000\000\000\000\001\145\000\000\000\000\000\000\000\000\019B\000\000\019\186\019\210\000\000\000\000\000\000\000\000\000\000\018\170\000\000\000\000\019\234\000\000\000\000\000\000\001\145\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\019B\000\000\019\186\019\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\146\019\234\000\000\000\000\000\000\001\161\000\000\000\000\000\000\000\000\000\242\020\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\021\n\001\161\000\000\021B\0202\000\000\000\000\000\000\000\000\001\161\020\194\020\146\000\000\000\000\020J\020b\001\145\000\000\000\000\001\161\020\218\020\242\020\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\185\000\000\000\000\021\n\001\145\000\000\021B\0202\000\000\000\000\000\000\000\000\001\145\020\194\018\170\000\000\000\000\020J\020b\000\000\000\000\001\185\001\145\020\218\020\242\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\019B\000\000\019\186\019\210\000\000\000\000\000\000\000\000\000\000\018\170\000\000\000\000\019\234\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\019B\000\000\019\186\019\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\146\019\234\000\000\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\242\020\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\021\n\001\185\000\000\021B\0202\000\000\000\000\000\000\000\000\001\185\020\194\020\146\000\000\000\000\020J\020b\001\177\000\000\000\000\001\185\020\218\020\242\020\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\021\n\001\177\000\000\021B\0202\000\000\000\000\000\000\000\000\001\177\020\194\018\170\000\000\000\000\020J\020b\000\000\000\000\001\169\001\177\020\218\020\242\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019B\r\214\019\186\019\210\000\000\007\017\000\000\000\000\000\000\007\017\000\000\000\000\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\242\000\000\000\000\007\017\000\000\007\017\000\000\000\000\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\007\017\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\014R\000\000\020\146\000\000\000\000\003\210\000\000\001\169\000\000\007\017\000\000\000\000\007\017\020\170\000\000\000\000\000\000\000\000\007\017\t.\000\242\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\021\n\001\169\000\000\021B\0202\000\000\000\000\007\017\000\000\001\169\020\194\000\000\000\000\000\000\020J\020b\000\000\000\000\000\000\001\169\020\218\020\242\000\250\001\202\001\226\001\230\002\150\007\017\000\000\007\017\000\000\000\000\007\017\007\017\000\000\000\000\000\000 \166\000\000\000\000\003\222\007\025\000\000\t:\001\234\002&\001\254\000\000\000\000\000\000\000\000\000\000\007\017\000\000\002\n \170\001\206\000\000\000\000\000\000\007\017\000\000 \210\000\000\000\000\007\017\000\000\000\000\000\000\002.\001\210\002n\000\000\000\000\000\000\003Z\031\238\003j\003\154\003\166\000\000\000\000 \006\000\000\000\000\003\178\000\000\000\000\000\000\000\000\000\000 \014\000\000\004\145\000\000\000\000\000\000\004\145\000\000\000\000 \030\004\145\000\000\000\000\000\000\000\000\000\000\003\182\003\198\000\000\000\000\000\000\004\145\000\000\004\145\000\000\004\145\000\000\004\145\000\000 &\000\000!f\000\000\000\000\000\000\001\226\001\230\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\000\000\000\000\000\000\000\000\007\189!v\001\234\002&\004\145\000\000\007\130\004\145\007\134\000\000\000\000\000\000\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\000\000\003^\000\000)z\000\000\004\145\000\000\003Z\004\145\003j\003\154\003\166\000\000\004\145\000\000\bb\003z\003\178\000\000\003J\000\000\bf\000\000\000\000\bF\004\145\000\000\004\145\004\145\000\000\004\145\004\145\rE\000\000\000\000\001\234\000\000\000\000\007\189\003\182\003\198\000\000\b\158\000\000)\166\000\000\004\145\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\b\178\004\145\000\000\b\198\000\000\001\190\004\145)\146\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\n^\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\000\000\004\145\000\000\000\000\000\000\004\145\000\000\nj\nn\004\145\000\000\n\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\000\000\004\145\000\000\004\145\000\000\000\000\rE\000\000\000\000\000\000\000\000\000\000\nr\000\000\rE\004\145\015>\000\000\007\134\000\000\000\000\000\000\004\145\000\000\004\145\000\000\000\000\000\000\000\000\007\193\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\004\145\000\000\000\000\b1\000\000\000\000\000\000\b1\000\000\000\000\000\000\b1\004\145\000\000\004\145\004\145\000\000\004\145\004\145\000\000\000\000\000\000\b1\000\000\b1\007\193\b1\000\000\b1\000\000\000\000\000\000\000\000\004\145\004\145\000\000\000\000\004\145\000\000\000\000\b1\000\000\000\000\000\000\000\000\004\145\000\000\b1\000\000\b1\004\145\000\000\000\000\000\000\014\174\000\000\000\000\000\000\b1\000\000\000\000\b1\000\000\000\000\000\000\000\000\000\000\b1\b1\000\242\000\000\002]\002]\000\000\000\000\002]\b1\002]\000\000\000\000\002]\000\000\000\000\000\000\000\000\b1\b1\000\000\b1\000\000\000\000\002]\000\000\b1\000\000\000\000\000\000\000\000\002]\000\n\000\000\000\000\000\000\000\000\000\000\b1\000\000\b1\b1\000\000\b1\b1\000\000\002]\000\000\000\000\002]\000\000\002]\000\000\000\000\000\000\000\000\000\000\002]\000\000\b1\002]\002]\b1\b1\002]\002]\000\000\002]\002]\002]\000\000\b1\002]\000\000\000\000\000\000\b1\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\002]\000\000\002]\002]\000\000\001\202\bb\003z\000\000\000\000\003J\000\000\bf\002]\002]\bF\000\000\002]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002]\000\000\000\000\000\000\002]\000\000\002]\b\178\000\000\000\000\015b\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\n^\000\000\000\000\n:\000\000\000\000\001\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\018\170\000\000\000\000\000\000\n!\000\000\000\000\001\133\n!\nj\nn\000\000\000\000\n\230\000\000\019\018\019r\019\138\019*\019\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019B\000\000\019\186\019\210\000\000\000\000\000\000\000\000\nr\001\202\001\226\001\230\019\234\000\000\007\134\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\002&\018\194\019Z\020\002\020\026\020z\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\000\000\000\000\n!\000\000\020\146\000\000\000\000\000\000\000\000\001\133\004N\001\210\003\194\000\000\000\000\020\170\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\000\000\000\000\003\178\000\000\000\000\000\000\000\000\021\n\001\133\000\000\021B\0202\000\000\000\000\b\213\000\000\001\133\020\194\b\213\000\000\000\000\020J\020b\000\000\003\182\003\198\b\213\020\218\020\242\b\213\b\213\000\000\000\000\b\213\b\213\b\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\b\213\000\000\000\000\000\000\000\000\000\000\000\000\029\130\000\000\b\213\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\b\213\b\213\b\213\000\000\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\b\213\000\000\b\213\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\011Q\011Q\011Q\000\000\000\000\011Q\b\213\011Q\b\213\b\213\011Q\b\213\b\213\000\000\000\000\000\000\000\000\030J\000\000\012\017\000\000\011Q\000\000\b\213\000\000\000\000\000\000\000\000\011Q\000\000\000\000\b\213\000\000\011Q\000\000\000\000\b\213\012\017\012\017\000\000\012\017\012\017\000\000\011Q\b\213\000\000\011Q\011Q\011Q\000\000\000\000\000\000\000\000\000\000\011Q\000\000\000\000\011Q\011Q\000\000\000\000\000\000\011Q\012\017\011Q\011Q\011Q\000\000\000\000\011Q\000\000\000\000\001\n\000\000\000\000\000\000\000\000\003V\000\000\000\000\011Q\011Q\011Q\012\017\011Q\011Q\001\014\001\018\001\022\001\026\001\030\001\"\000\000\000\000\000\000\011Q\011Q\000\000\000\000\000\000\012\017\001&\000\000\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\017\011Q\012\017\000\000\000\000\000\000\000\000\011Q\000\000\000\000\000\000\001:\001>\001B\001F\001J\011\018\012\017\000\000\000\000\012\017\012\017\001N\000\000\000\000\012\017\000\000\012\017\001R\000\000\000\000\012\017\000\000\012\017\000\000\000\000\bb\003z\000\000\001V\003J\000\000\bf\000\000\000\000\bF\001Z\000\000\000\000\000\000\000\000\n\226\000\000\n\006\000\000\000\000\001\234\000\000\001\150,\238\000\000\000\000\000\000\b\158\000\000\001\154\000\000\001\158\000\000\001\162\001\166\000\000\000\000\001\170\000\000\001\174\001\178\000\000\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\n^\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\000\000\b\205\000\000\000\000\000\000\b\205\000\000\nj\nn\b\205\000\000\n\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\b\205\000\000\b\205\000\000\b\205\000\000\000\000\012J\000\000\000\000\011\218\000\000\000\000\nr\000\000\012>\b\205\000\000\000\000\007\134\000\000\000\000\000\000\b\205\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011b\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\b\205\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\b\205\012A\000\000\000\000\000\000\012A\000\000\000\000\000\000\012A\000\000\000\000\b\205\000\000\b\205\b\205\000\000\b\205\b\205\000\000\012A\000\000\012A\000\000\012A\000\000\012A\000\000\000\000\b\205\000\000\b\205\000\000\000\000\b\205\000\000\000\000\b\205\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\000\000\000\000\b\205\b\205\000\000\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\000\000\000\000\000\000\012A\000\000\000\000\019\225\000\000\000\000\000\000\019\225\000\000\000\000\000\000\019\225\012A\000\000\012A\012A\000\000\012A\012A\000\000\000\000\000\000\019\225\000\000\019\225\000\000\019\225\000\000\019\225\012A\000\000\000\000\000\000\012A\000\000\000\000\000\000\012A\000\000\000\000\019\225\000\000\000\000\000\000\000\000\012A\000\000\019\225\005\174\019\225\012A\000\000\000\000\000\000\003\210\000\000\000\000\000\000\019\225\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\019\225\019\225\019\225\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\000\000\019\225\000\000\000\000\000\000\000\000\019\225\000\000\000\000\019\229\000\000\000\000\000\000\019\229\000\000\000\000\000\000\019\229\019\225\000\000\019\225\019\225\000\000\019\225\019\225\000\000\000\000\000\000\019\229\000\000\019\229\003\222\019\229\000\000\019\229\000\000\000\000\000\000\000\000\019\225\000\000\000\000\000\000\019\225\000\000\000\000\019\229\000\000\000\000\000\000\000\000\019\225\000\000\019\229\000\000\019\229\019\225\000\000\000\000\000\000\003\210\000\000\000\000\000\000\019\229\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\019\229\019\229\019\229\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\019\229\000\000\000\000\000\000\000\000\019\229\000\000\000\000\b\133\000\000\000\000\018\237\b\133\000\000\000\000\018\237\b\133\019\229\000\000\019\229\019\229\000\000\019\229\019\229\000\000\000\000\018\237\b\133\000\000\b\133\003\222\b\133\018\237\b\133\000\000\000\000\000\000\000\000\019\229\000\000\000\000\000\000\019\229\000\000\018\237\b\133\000\000\000\000\000\000\000\000\019\229\018\237\b\133\000\000\b\133\019\229\000\000\000\000\000\000\003\210\000\000\000\000\018\237\b\133\000\000\018\237\b\133\000\000\000\000\000\000\000\000\018\237\b\133\b\133\b\133\000\000\000\000\000\000\000\000\000\000\018\237\b\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\b\133\000\000\018\237\b\133\000\000\000\000\000\000\018\237\b\133\002]\002]\000\000\000\000\002]\000\000\002]\000\000\000\000\002]\018\237\b\133\018\237\b\133\b\133\018\237\b\133\b\133\000\000\000\000\002]\000\000\002]-\210\003\222\000\000\000\000\002]\000\n\000\000\002]\000\000\b\133\000\000\000\000\018\237\b\133\000\000\000\000\000\000\000\000\000\000\002]\000\000\b\133\002]\000\000\002]\000\000\b\133\000\000\000\000\000\000\002]\000\000\000\000\002]\002]\000\000\000\000\002]\002]\000\000\002]\000\000\002]\000\000\000\000\002]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\002]\000\000\002]\002]\000\000\001\202\bb\003z\000\000\000\000\003J\000\000\t\194\002]\002]\bF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002]\000\000\000\000\000\000\000\000\000\000\002]\b\178\000\000\000\000\021b\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\025f\000\000\n\002\000\000\n\n\n.\012\226\001\226\001\230\n:\000\000\000\000\000\000\000\000\018\170\000\000\000\000\000\000\023&\000\000\n>\nR\nV\000\000\nZ\nb\000\000\001\234\001\238\019\018\019r\019\138\019*\019\162\000\000\nj\nn\000\000\000\000\000\000\000\000\000\000\000\000\019B\000\000\019\186\019\210\000\000\000\000\000\000\000\000\000\000\029\238\000\000\003\194\019\234\000\000\000\000\003Z\000\000\003j\003\154\003\166\nr\000\242\000\000\000\000\000\000\003\178\007\134\029V\000\000\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\025f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\003\198\020\146\000\000\000\000\018\170\029\182\025~\000\000\023&\000\000\000\000\r\029\020\170\000\000\000\000\000\000\000\000\000\000\000\000\019\018\019r\019\138\019*\019\162\000\000\000\000\000\000\000\000\021\n\r\029\000\000\021B\0202\019B\000\000\019\186\019\210\r\029\020\194\000\000\000\000\000\000\020J\020b\000\000\019\234\000\000\000\000\020\218\020\242\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\194\019Z\020\002\020\026\020z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\146\000\000\000\000\nI\000\000\025~\001\230\nI\000\000\000\000\000\000\020\170\000\000\000\000\000\000\nI\000\000\000\000\nI\000\000\000\000\000\000\nI\000\000\nI\000\000\000\000\021\n\000\000\000\000\021B\0202\000\000\000\000\000\000\000\000\nI\020\194\000\000\000\000\000\000\020J\020b\nI\000\000\nI\000\000\020\218\020\242\000\000\000\000\000\000\003\194\000\000\nI\000\000\000\000\nI\000\000\000\000\000\000\000\000\000\000\nI\nI\nI\000\000\nI\000\000\000\000\000\000\000\000\nI\000\000\000\000\000\000\004u\000\000\nI\001\230\004u\nI\nI\000\000\nI\000\000\000\000\000\000\nI\005V\000\000\004u\000\000\000\000\000\000\004u\nI\004u\000\000\000\000\000\000\nI\000\000\nI\000\000\000\000\nI\nI\000\000\004u\000\000\000\000\000\000\000\000\nI\000\000\004u\nI\nI\000\000\000\000\000\000\000\000\nI\nI\003\194\nI\004u\000\000\000\000\004u\nI\nI\000\000\029~\000\000\004u\004u\004u\nI\000\000\nI\000\000\000\000\nI\004u\000\000\000\000\000\000\nI\000\000\000\000\000\000\000\000\004u\004u\000\000\004u\000\000\000\000\000\000\nI\005V\nI\000\000\000\000\nI\nI\000\000\004q\000\000\000\000\001\230\004q\004u\000\000\004u\000\000\000\000\004u\004u\nI\000\000\000\000\004q\000\000\nI\000\000\004q\000\000\004q\004u\000\000\000\000\029~\000\000\000\000\000\000\000\000\004u\000\000\000\000\004q\000\000\004u\000\000\000\000\029~\000\000\004q\000\000\nI\004u\000\000\000\000\000\000\000\000\000\000\003\194\000\000\004q\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\004q\004q\004q\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\004q\000\000\004q\000\000\000\000\000\000\000\000\005V\bb\003z\000\000\000\000\003J\000\000\r\030\000\000\000\000\bF\000\000\004q\000\000\004q\000\000\000\000\004q\004q\000\000\000\000\001\234\000\000\rj\000\000\000\000\000\000\000\000\b\158\004q\000\000\015V\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000&n\004q\b\178\000\000\029~$\214\000\000\001\190\000\000\004q\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\000\000\016v\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\r\030\nj\nn\bF\000\000\000\000$\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\rj\000\000\000\000\000\000\000\000\b\158\000\000\000\000\015V\000\000\000\000'.\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\015\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\000\000\016v\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\r\030\nj\nn\bF\000\000\000\000\021r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\rj\000\000\000\000\000\000\000\000\b\158\000\000\000\000\015V\000\000\000\000%v\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\015\230\000\000\001\190\000\000\000\000\000\000\001\226\001\230\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\000\000\016v\004\189\000\000\n:\000\000\004\189\001\234\002&\000\000\004\189\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\004\189\018\209\004\189\000\000\004\189\018\209\004\189\000\000\000\000\nj\nn\003^\000\000\003\186\021r\000\000\018\209\003Z\004\189\003j\003\154\003\166\018\209\000\000\000\000\004\189\004\189\003\178\000\000\000\000\000\000\000\000\000\000\000\000\018\209%\214\004\189\nr\000\000\004\189\000\000\018\209\000\000\007\134\000\000\004\189\004\189\000\242\000\000\003\182\003\198\000\000\018\209\000\000\004\189\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\004\189\000\000\000\000\004\189\000\000\000\000\000\000\018\209\004\189\004\197\000\000\000\000\000\000\004\197\000\000\000\000\018\209\004\197\000\000\018\209\004\189\000\000\004\189\004\189\018\209\004\189\004\189\000\000\004\197\007\017\004\197\000\000\004\197\007\017\004\197\000\000\018\209\004\189\018\209\004\189\000\000\018\209\004\189\000\000\007\017\004\189\004\197\000\000\000\000-\210\007\017\000\000\000\000\004\197\004\197\000\000\000\000\000\000\004\189\004\189\000\000\018\209\007\017\000\000\004\197\000\000\000\000\004\197\000\000\007\017\000\000\000\000\000\000\004\197\004\197\000\242\000\000\000\000\000\000\000\000\007\017\000\000\004\197\007\017\000\000\000\000\000\000\000\000\000\000\007\017\t.\004\197\000\000\000\000\004\197\000\000\000\000\000\000\007\017\004\197\000\000\000\000\000\000\000\000\000\000\000\000\001\n\007\017\000\000\000\000\007\017\004\197\000\000\004\197\004\197\007\017\004\197\004\197\000\000\000\000\001\014\001\018\001\022\001\026\001\030\001\"\000\000\007\017\004\197\007\017\004\197\000\000\007\017\004\197\000\000\001&\004\197\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\004\197\004\197\000\000\007\017\000\000\004\205\000\000\000\000\000\000\004\205\000\000\000\000\000\000\004\205\000\000\000\000\000\000\000\000\001:\001>\001B\001F\001J\000\000\004\205\000\000\004\205\000\000\004\205\001N\004\205\000\000\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\004\205\000\000\000\000\000\000\001V\000\000\000\000\004\205\004\205\000\000\000\000\001Z\000\000\000\000\000\000\000\000\000\000\000\000\004\205\000\000\000\000\004\205\000\000\001\150-\n\000\000\000\000\004\205\004\205\000\000\001\154\000\000\001\158\000\000\001\162\001\166\004\205\000\000\001\170\000\000\001\174\001\178\000\000\000\000\000\000\004\205\000\000\000\000\004\205\000\000\000\000\000\000\000\000\004\205\002j\000\000\000\000\000\000\004\213\000\000\000\000\000\000\004\213\000\000\000\000\004\205\000\000\004\205\004\205\000\000\004\205\004\205\000\000\004\213\000\000\004\213\000\000\004\213\000\000\004\213\000\000\000\000\004\205\000\000\004\205\000\000\000\000\004\205\000\000\000\000\004\205\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\213,>\000\000\000\000\000\000\004\205\002B\000\000\000\000\000\000\000\000\004\213\000\000\000\000\004\213\000\000\000\000\000\000\000\000\000\000\004\213\004\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\000\000\004\213\000\000\000\000\000\000\000\000\004\213\bb\003z\000\000\000\000\003J\000\000\b\130\000\000\000\000\bF\000\000\004\213\000\000\004\213\004\213\000\000\004\213\004\213\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\158\004\213\000\000\004\213\000\000\000\000\004\213\000\000\000\000\004\213\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\b\198\000\000\001\190\000\000\004\213,F\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.(\162\000\000\r\214\n:\000\000\000\000\b%\000\000\003v\003z\b%\000\000\003J\000\000\n>\nR\nV\bF\nZ\nb\000\000\b%\000\000\t]\000\000\b%\000\000\b%\001\234\nj\nn\000\000\bN\n\230\000\000\000\000\000\000\000\000\000\000\b%\000\000\000\000\bR(\170\tf\000\000\b%\000\000\014R\000\000\000\000\000\000\000\000\t\166\000\000\001\190\000\000\nr\000\000\000\000\b%\003j\000\000\007\134\t\174\014\226\b%\b%\000\242\014\230\014\234\014\246\000\000\000\000\000\000\b%\n:\000\000\000\000\000\000\000\000\bb\003z\000\000\b%\003J\000\000\n\146\nR\nV\bF\014\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\nj\nn\b%\000\000\b%\000\000\b\158\b%\b%\000\000\000\000\015\014\000\000\015\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\178\000\000\000\000\b\198\000\000\001\190\b%\nr\015\026\000\000\000\000\003j\017\"\007\134\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\n\174\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\011\022\nj\nn\bF\000\000\n\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\012\n\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\0112\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\011\142\nj\nn\bF\000\000\n\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\011F\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\011\170\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\bf\nj\nn\bF\000\000\n\230\000\000\000\000\000\000\000\000\000\000\011\238\000\000\000\000\001\234\011\178\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\n^\019\221\000\000\n:\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\019\221\000\000\019\221\000\000\019\221\000\000\019\221\000\000\000\000\nj\nn\000\000\000\000\n\230\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\nr\000\000\019\221\000\000\000\000\000\000\007\134\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\019\221\000\000\000\000\000\000\000\000\019\221\000\000\000\000\012E\000\000\000\000\000\000\012E\000\000\000\000\000\000\012E\019\221\000\000\019\221\019\221\000\000\019\221\019\221\000\000\000\000\000\000\012E\000\000\012E\000\000\012E\000\000\012E\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\012E\000\000\000\000\000\000\000\000\019\221\000\000\012E\005\174\012E\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012E\000\000\000\000\012E\000\000\000\000\000\000\000\000\000\000\012E\012E\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012E\000\000\000\000\012E\000\000\000\000\000\000\000\000\012E\000\000\000\000\000\000\003v\003z\000\000\000\000\003J\000\000\000\000\000\000\012E\bF\012E\012E\000\000\012E\012E\t\133\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\bN\012E\000\000\000\000\000\000\012E\000\000\000\000\000\000\012E\bR\000\000\tf\000\000\000\000\000\000\000\000\012E\000\000\000\000\000\000\t\166\012E\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\174\014\226\000\000\000\000\000\000\014\230\014\234\014\246\000\000\000\000\000\000\000\000\n:\000\000\000\189\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\nR\nV\000\000\014\254\000\000\000\189\000\000\000\189\000\000\000\189\000\000\000\189\000\000\000\000\nj\nn\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\189\000\000\015\014\000\000\015\018\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\000\189\nr\015\026\000\189\000\000\000\000\017\"\007\134\000\000\000\189\000\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\189\000\000\000\189\000\189\000\000\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\189\000\250\000\000\000\000\000\000\t\n\001\001\000\000\000\000\000\000\001\001\000\000\000\189\000\000\000\189\000\000\007E\000\189\000\189\000\000\000\000\001\001\t:\001\001\000\000\001\001\000\000\001\001\000\000\000\189\000\000\000\000\000\000\000\000\tF\000\000\000\189\000\189\000\000\001\001\000\000\031\138\000\000\000\000\000\000\000\000\001\001\000\000\000\189\000\000\000\189\001\001'z\000\000\000\000\031\238\000\000\001\001\000\000\000\000\001\001 \006\000\000\000\000\000\000\000\000\001\001\001\001\000\242\000\000 \014\000\000\000\000\000\000\000\000\001\001\000\000\001\001\001\001 \030\000\000\000\000\000\000\000\000\001\001\000\000\000\000\001\001\000\000\000\000\000\000\000\000\001\001\000\000\000\000\000\000\000\000\000\000\000\197 &\000\000 f\000\197\000\000\001\001\000\000\001\001\000\000\000\000\001\001\001\001\000\000\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\001\001\000\000\000\000$\190\000\000\000\000\000\000\001\001\001\001\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\001\001\000\000\001\001\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\197\000\000\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\197\000\000\000\197\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\193\be\000\000\000\000\000\000\be\000\000\000\000\000\000\be\000\000\000\000\000\193\000\000\000\193\000\000\000\000\000\193\000\193\000\000\be\000\000\be\000\000\be\000\000\be\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\193\be\000\000\000\000\000\000\000\000\000\000\000\000\be\000\000\be\000\193\000\000\000\193\000\000\014\174\000\000\000\000\000\000\be\000\000\000\000\be\000\000\000\000\000\000\000\000\000\000\be\be\000\242\000\000\bb\003z\000\000\000\000\003J\be(\186\000\000\000\000\bF\000\000\000\000\000\000\000\000\be\000\000\000\000\be\000\000\000\000\001\234\000\000\be\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\be\000\000\be\be\000\000\be\be\000\000\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\be\t\250\t\254\000\000\be\000\000\n\002\000\000\n\n\n.(\214\000\000\be\n:\000\000\001\217\000\000\be\000\000\001\217\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\001\217\000\000\000\000\000\000\001\217\000\000\001\217\000\000\000\000\nj\nn\000\000\000\000\n\230\001\226\001\230\000\000\000\000\001\217\000\000\001\217\000\000\000\000(\222\000\000\001\217\000\000\000\000\000\000\000\000\000\000\000\000\007\189\000\000\001\234\002&\001\217\nr\000\000\001\217\000\000\000\000\000\000\007\134\000\000\001\217\001\217\001\217\000\000\000\000\000\000\000\000\000\000\000\000\001\217\000\000\000\000\000\000\000\000\003^\000\000)z\000\000\001\217\000\000\003Z\001\217\003j\003\154\003\166\000\000\001\217\bb\003z\000\000\003\178\003J\000\000\t\222\000\000\000\000\bF\000\000\001\217\000\000\001\217\000\000\000\000\001\217\001\217\000\000\000\000\001\234\000\000\000\000\000\000\007\189\003\182\003\198\b\158\001\217\000\000\007\133\000\000\000\000\000\000\000\000\001\217\001\217\000\000\000\000\000\000\000\000\001\217\b\178\000\000\000\000\b\198\000\000\001\190\000\000\001\217)\146\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\012V\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\012\130\nj\nn\bF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\012^\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\012\158\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\012\182\nj\nn\bF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\012\166\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\012\210\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\012\238\nj\nn\bF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\012\218\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\r\n\r\214\000\000\n:\000\000\ba\000\000\000\000\000\000\ba\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\ba\000\000\ba\000\000\ba\000\000\ba\000\000\000\000\nj\nn\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\000\000\000\000\r\018\000\000\ba\000\000\014R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ba\nr\000\000\ba\000\000\000\000\000\000\007\134\000\000\ba\ba\000\242\000\000\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\ba\000\000\000\000\000\000\000\000\ba\000\000\019\233\000\000\000\000\000\000\019\233\000\000\000\000\000\000\019\233\000\000\ba\000\000\ba\ba\000\000\ba\ba\000\000\000\000\019\233\000\000\019\233\000\000\019\233\000\000\019\233\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\000\000\ba\000\000\019\233\000\000\000\000\000\000\000\000\000\000\ba\019\233\000\000\019\233\000\000\ba\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\019\233\019\233\000\242\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\019\233\000\000\000\000\000\000\000\000\019\233\000\000\019\237\000\000\000\000\000\000\019\237\000\000\000\000\000\000\019\237\000\000\019\233\000\000\019\233\019\233\000\000\019\233\019\233\000\000\000\000\019\237\000\000\019\237\000\000\019\237\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\000\000\019\233\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\233\019\237\000\000\014R\000\000\019\233\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\237\019\237\000\242\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\019\237\000\000\000\000\000\000\000\000\019\237\000\000\r\214\000\000\000\000\000\000\by\000\000\000\000\000\000\by\000\000\019\237\000\000\019\237\019\237\000\000\019\237\019\237\000\000\000\000\by\000\000\by\000\000\by\000\000\by\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\000\000\019\237\000\000\by\000\000\000\000\000\000\000\000\000\000\019\237\by\000\000\014R\000\000\019\237\000\000\000\000\000\000\000\000\000\000\000\000\by\000\000\000\000\by\000\000\000\000\000\000\000\000\000\000\by\by\000\242\000\000\000\000\000\000\000\000\000\000\000\000\by\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\by\000\000\000\000\by\000\000\000\000\000\000\000\000\by\000\000\b}\000\000\000\000\000\000\b}\000\000\000\000\000\000\b}\000\000\by\000\000\by\by\000\000\by\by\000\000\000\000\b}\000\000\b}\000\000\b}\000\000\b}\000\000\000\000\000\000\000\000\000\000\by\000\000\000\000\000\000\by\000\000\b}\000\000\000\000\000\000\000\000\000\000\by\b}\000\000\b}\000\000\by\000\000\000\000\000\000\000\000\000\000\000\000\b}\000\000\000\000\b}\000\000\000\000\000\000\000\000\000\000\b}\b}\b}\000\000\000\000\000\000\000\000\000\000\000\000\b}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b}\000\000\000\000\b}\000\000\000\000\000\000\000\000\b}\000\000\bu\000\000\000\000\000\000\bu\000\000\000\000\000\000\bu\000\000\b}\000\000\b}\b}\000\000\b}\b}\000\000\000\000\bu\000\000\bu\000\000\bu\000\000\bu\000\000\000\000\000\000\000\000\000\000\b}\000\000\000\000\000\000\b}\000\000\bu\000\000\000\000\000\000\000\000\000\000\b}\bu\000\000\014R\000\000\014z\000\000\000\000\000\000\000\000\000\000\000\000\bu\000\000\000\000\bu\000\000\000\000\000\000\000\000\000\000\bu\bu\000\242\000\000\bb\003z\000\000\000\000\003J\bu\bf\000\000\000\000\bF\000\000\000\000\000\000\000\000\bu\000\000\000\000\bu\000\000\000\000\001\234\000\000\bu\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\bu\000\000\bu\bu\000\000\bu\bu\000\000\b\178\000\000\000\000\015f\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\bu\t\250\t\254\000\000\bu\000\000\n\002\000\000\n\n\n.\n^\000\000\bu\n:\000\000\000\000\000\000\bu\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\000\000\000\000\bb\003z\000\000\000\000\003J\000\000\t\194\nj\nn\bF\000\000\n\230\000\000\000\000\000\000\ta\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003j\000\000\000\000\t\250\t\254\000\000\000\000\000\000\n\002\000\000\n\n\n.\012\226\000\000\000\000\n:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n>\nR\nV\000\000\nZ\nb\t\253\000\000\bb\003z\t\253\000\000\003J\000\000\022J\nj\nn\bF\000\000\000\000\000\000\t\253\000\000\000\000\000\000\t\253\000\000\t\253\001\234\000\000\000\000\000\000\000\000\019A\000\000\b\158\000\000\000\000\000\000\t\253\000\000\000\000\000\000\nr\000\000\000\000\t\253\000\000\000\000\007\134\b\178\000\000\000\000\b\198\000\000\001\190\000\000\000\000\000\000\000\000\t\253\003j\000\000\000\000\t\250\t\254\t\253\t\253\000\000\n\002\000\000\n\n\n.\022f\000\000\t\253\n:\000\000\007\181\000\000\000\000\019A\007\181\000\000\t\253\000\000\000\000\n>\nR\nV\019A\nZ\nb\007\181\000\000\007\181\000\000\007\181\000\000\007\181\000\000\000\000\nj\nn\t\253\000\000\t\253\t\253\000\000\t\253\t\253\007\181\000\000\000\000\000\000\000\000\022n\000\000\007\181\000\000\019A\t\253\000\000\000\000\000\000\000\000\t\253\019A\0036\t\253\nr\000\000\007\181\000\000\000\000\000\000\007\134\000\000\007\181\007\181\007\181\000\000\t\253\000\000\000\000\000\000\000\000\007\181\000\000\000\000\000\000\007\017\000\000\000\000\000\000\007\017\007\181\000\000\000\000\002r\000\000\000\000\000\000\000\000\019A\000\000\007\017\000\000\000\000\000\000\007\017\000\000\007\017\000\000\007\017\000\000\007\181\000\000\007\181\007\181\000\000\007\181\007\181\000\000\007\017\007\017\000\000\000\000\000\000\007\017\000\000\007\017\000\000\000\000\000\000\000\000\007\017\000\000\014\174\000\000#\n\007\181\007\017\007\017\000\000\007\017\000\000\000\000\000\000\000\000\007\017\007\017\t.\000\242\007\181\000\000\000\000\000\000\000\000\000\000\007\017\007\017\007\017\007\017\007\017\000\000\000\000\000\000\000\000\007\017\007\017\t.\007\017\000\000\000\000\000\000\000\000\007\017\001\253\007\017\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\007\017\007\017\012\201\007\017\000\000\001\253\007\017\007\017\007\017\001\253\000\000\001\253\000\000\000\000\014f\000\000\000\000\000\000\007\017\000\000\007\017\000\000\007\017\001\253\000\000\007\017\007\017\000\000\000\000\000\000\001\253(\030\001\253\000\000\007\017\000\000\000\000\014\002\000\000\007\017\000\000\001\253\000\000\000\000\001\253\007\017\000\000\000\000\000\000\000\000\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\007\017\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\253\001\253\002\005\001\253\000\000\000\000\002\005\000\000\001\253\000\000\000\000\000\000\000\000\000\000\012\209\000\000\000\000\002\005\000\000\000\000\001\253\002\005\001\253\002\005\000\000\001\253\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\001\253\000\000\000\000\000\000\000\000\002\005\000\000\002\005\001\253\000\000\000\000\000\000\000\000\001\253\000\000\000\000\002\005\000\000\000\000\002\005\000\000\001\253\000\000\000\000\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\002\005\002\001\002\005\000\000\000\000\002\001\000\000\002\005\000\000\000\000\000\000\000\000\000\000\012\205\000\000\000\000\002\001\000\000\000\000\002\005\002\001\002\005\002\001\000\000\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\002\005\000\000\000\000\000\000\000\000\002\001\000\000\002\001\002\005\000\000\000\000\000\000\000\000\002\005\000\000\000\000\002\001\000\000\000\000\002\001\000\000\002\005\000\000\000\000\000\000\002\001\002\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002\001\001\249\002\001\000\000\000\000\001\249\000\000\002\001\000\000\000\000\000\000\000\000\000\000\012\197\000\000\000\000\001\249\000\000\000\000\002\001\001\249\002\001\001\249\000\000\002\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\249\000\000\002\001\000\000\000\000\000\000\000\000\001\249\000\000\001\249\002\001\000\000\000\000\000\000\000\000\002\001\000\000\000\000\001\249\000\000\000\000\001\249\000\000\002\001\000\000\000\000\000\000\001\249\001\249\001\249\000\000\000\000\000\000\000\000\000\000\000\000\001\249\000\000\000\000\000\000\004m\000\000\000\000\001\230\004m\001\249\001\249\000\000\001\249\000\000\000\000\000\000\000\000\001\249\000\000\004m\000\000\000\000\000\000\004m\000\000\004m\000\000\000\000\000\000\001\249\000\000\001\249\000\000\000\000\001\249\001\249\000\000\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\000\000\001\249\000\000\000\000\000\000\000\000\000\000\000\000\003\194\001\249\004m\000\000\000\000\004m\001\249\000\000\000\000\000\000\000\000\004m\004m\004m\001\249\000\000\000\000\000\000\000\000\000\000\004m\000\000\000\000\000\000\004i\000\000\000\000\001\230\004i\004m\004m\000\000\004m\000\000\000\000\000\000\000\000\005V\000\000\004i\000\000\000\000\000\000\004i\000\000\004i\000\000\000\000\000\000\004m\000\000\004m\000\000\000\000\004m\004m\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004m\000\000\000\000\000\000\000\000\000\000\000\000\003\194\004m\004i\000\000\000\000\004i\004m\000\000\000\000\000\000\000\000\004i\004i\004i\004m\000\000\000\000\000\000\000\000\000\000\004i\000\000\000\000\000\000\011!\000\000\000\000\000\000\011!\004i\004i\000\000\004i\000\000\000\000\000\000\000\000\005V\000\000\011!\000\000\000\000\000\000\011!\000\000\011!\000\000\000\000\000\000\004i\000\000\004i\000\000\000\000\004i\004i\000\000\011!\000\000\000\000\000\000\000\000\000\000\000\000\011!\000\000\004i\000\000\000\000\011!\000\000\000\000\000\000\000\000\004i\011!\000\000\000\000\011!\004i\000\000\000\000\000\000\000\000\011!\011!\000\242\004i\000\000\000\000\000\000\000\000\000\000\011!\000\000\011!\011!\011\029\000\000\000\000\000\000\011\029\011!\000\000\000\000\011!\000\000\000\000\000\000\000\000\011!\000\000\011\029\000\000\000\000\000\000\011\029\000\000\011\029\000\000\000\000\000\000\011!\000\000\011!\011!\000\000\011!\011!\000\000\011\029\000\000\000\000\000\000\000\000\000\000\000\000\011\029\000\000\011!\000\000\000\000\011\029\000\000\000\000\000\000\000\000\011!\011\029\000\000\000\000\011\029\000\000\000\000\000\000\011!\000\000\011\029\011\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\029\000\000\011\029\011\029\001Q\000\000\000\000\000\000\001Q\011\029\000\000\000\000\011\029\000\000\000\000\000\000\000\000\011\029\000\000\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\000\000\011\029\000\000\011\029\011\029\000\000\011\029\011\029\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\011\029\000\000\000\000\001Q\000\000\000\000\000\000\000\000\011\029\001Q\000\000\000\000\001Q\000\000\000\000\000\000\011\029\000\000\001Q\001Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001M\000\000\000\000\000\000\001M\001Q\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001Q\000\000\001M\000\000\001M\000\000\001M\000\000\001M\000\000\000\000\000\000\001Q\000\000\001Q\001Q\000\000\001Q\001Q\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\001Q\000\000\000\000\001M\000\000\000\000\000\000\000\000\001Q\001M\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\001M\001M\000\242\001Q\000\000\000\000\000\000\000\000\000\000\001M\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\001M\000\000\000\000\001M\000\000\000\000\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\000\000\019A\007\185\001M\000\000\001M\001M\000\000\001M\001M\019A\000\000\000\000\007\185\000\000\007\185\000\000\007\185\000\000\007\185\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\000\000\007\185\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\019A\001M\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\000\000\000\000\007\185\000\000\000\000\000\000\000\000\000\000\007\185\007\185\007\185\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\000\000\002r\000\000\000\000\000\000\000\000\019A\002\r\000\000\000\000\029:\002\r\000\000\003J\000\000\000\000\000\000\000\000\007\185\000\000\007\185\007\185\002\r\007\185\007\185\000\000\002\r\000\000\002\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\r\000\000\000\000\007\185\000\000\000\000\000\000\002\r\000\000\000\000\000\000\000\000\000\000\000\000\029>\000\000\007\185\000\000\002\r\000\000\000\000\002\r\000\000\000\000\000\000\000\000\000\000\002\r\002\r\000\000\029J\000\000\000\000\000\000\000\000\001A\002\r\000\000\002u\001A\000\000\000\000\000\000\000\000\000\000\002\r\000\000\002u\002\r\000\000\001A\000\000\001A\002\r\001A\000\000\001A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nn\002\r\000\000\002\r\001A\000\000\002\r\002\r\000\000\000\000\000\000\001A\000\000\002u\000\000\000\000\000\000\000\000\002\r\000\000\002u\000\000\000\000\000\000\000\000\001A\002\r\000\000\000\000\000\000\000\000\001A\001A\001A\000\000\001\226\001\230\000\000\000\000\002\r\001A\000\000\000\000\000\000\004a\000\000\000\000\000\000\004a\001A\000\000\000\000\000\000\000\000\000\000\001\234\002&\002u\000\000\004a\000\000\000\000\000\000\004a\000\000\004a\000\000\000\000\000\000\001A\000\000\001A\001A\000\000\001A\001A\000\000\004a\000\000\029R\004\170\000\000\003\194\000\000\004a\000\000\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\001A\004a\003\178\000\000\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\001A\000\000\000\000\000\000\000\000\000\000\004a\000\000\000\000\000\000\000\000\003\182\003\198\000\000\000\000\004a\000\000\t\253\004a\000\000\000\000\t\253\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\253\000\000\000\000\004a\t\253\004a\t\253\000\000\004a\004a\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\t\253\000\000\004a\000\000\000\000\000\000\000\000\t\253\000\000\029\234\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\t\253\000\000\000\000\t\253\000\000\004a\000\000\000\000\000\000\t\253\t\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\253\000\000\000\000\000\000\004a\000\000\000\000\000\000\004a\t\253\000\000\000\000\t\253\000\000\000\000\000\000\000\000\t\253\000\000\004a\000\000\000\000\000\000\004a\000\000\004a\000\000\000\000\000\000\t\253\000\000\t\253\t\253\000\000\t\253\t\253\000\000\004a\000\000\029R\000\000\004a\000\000\000\000\004a\000\000\t\253\000\000\000\000\000\000\000\000\000\000\004a\0036\t\253\004a\004a\000\000\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\t\253\000\000\000\000\004a\000\000\029R\004a\000\000\000\000\000\000\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\004a\000\000\000\000\004a\000\000\004a\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\000\000\000\000\004a\000\000\004a(&\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\000\000\004a\000\000\000\000\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\029\234\004a\001\226\001\230\000\000\000\000\004a\000\000\000\000\004a\000\000\004a(V\000\000\004a\004a\000\000\000\000\000\000\001\202\001\226\003F\001\234\002&\003J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\234\004a\000\000\000\000\000\000\000\000\004a\001\234\002&\001\254\003N\000\000\000\000\000\000\003^\000\000)z\002\n\000\000\001\206\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\000\000\000\000\003\178\000\000\003R\001\210\002n\000\000\000\000\000\000\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\000\000\000\000$\022\000\000$\026\000\000\003\182\003\198\bb\003z\000\000\007\137\003J\000\000\000\000\000\000\000\000\bF\000\000\000\000\000\000\000\000\000\000\000\000\003\182\003\198\000\000\000\000\001\234\000\000\000\000)\146\000\000\000\000\000\000\b\158\nn\000\000\000\000\b\025\000\000\000\000\000\000\b\025\000\000\000\000\000\000\000\000\000\000$&\b\178\000\000\000\000\016z\b\025\001\190\000\000\000\000\b\025\000\000\b\025\003j\000\000\000\000\t\250\t\254\000\000$*\000\000\n\002\000\000\n\n\b\025\000\000\000\000\000\000\n:\000\000\000\000\b\025\000\000\000\000\000\000\000\000\000\000\000\000\014\174\n>\nR\nV\b\025\nZ\nb\b\025\000\000\000\000\000\000\000\000\000\000\b\025\b\025\000\242\nj\nn\000\000\000\000\000\000\b\029\b\025\000\000\000\000\b\029\000\000\000\000\000\000\000\000\000\000\b\025\b\025\000\000\b\025\000\000\b\029\000\000\000\000\b\025\b\029\000\000\b\029\000\000\nr\000\000\000\000\000\000\000\000\000\000\007\134\b\025\000\000\b\025\b\029\000\000\b\025\b\025\000\000\000\000\000\000\b\029\000\000\000\000\000\000\000\000\000\000\000\000\014\174\000\000\000\000\000\000\b\029\000\000\000\000\b\029\b\025\000\000\000\000\000\000\000\000\b\029\b\029\000\242\000\000\000\000\000\000\000\000\000\000\b\025\b\029\000\000\000\000\000\000\004a\000\000\000\000\000\000\004a\b\029\b\029\000\000\b\029\000\000\000\000\000\000\000\000\b\029\000\000\004a\000\000\000\000\000\000\004a\000\000\004a\000\000\000\000\000\000\b\029\000\000\b\029\000\000\000\000\b\029\b\029\000\000\004a\000\000\029R\000\000\000\000\000\000\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\029\004a\000\000\000\000\004a\t\r\000\000\000\000\000\000\t\r\004a\004a\004a\b\029\000\000\000\000\000\000\000\000\000\000\004a\t\r\000\000\000\000\000\000\t\r\000\000\t\r\000\000\004a\000\000\000\000\004a\000\000\000\000\000\000\000\000\004a\000\000\t\r\000\000\000\000\000\000\000\000\000\000\000\000\t\r\000\000\000\000\004a\000\000\004a v\000\000\004a\004a\000\000\t\r\000\000\000\000\t\r\000\000\000\000\000\000\000\000\000\000\t\r\t\r\000\242\000\000\000\000\000\000\000\000\029\234\004a\t\r\000\000\000\000\000\000\018\221\000\000\000\000\003z\018\221\t\r-\226\000\000\t\r\000\000\000\000-\230\000\000\t\r\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\t\r\000\000\t\r$b\000\000\t\r\t\r\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\t\r\000\000\000\000\000\000\000\000\001\006\000\000\001\190\t\r\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\018\193\000\000\t\r\003z\018\193\000\000.\002\000\000\018\221-\234\000\000.\006\000\000\000\000\000\000\018\193\000\000\018\221\000\000\000\000\018\221\018\193\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000-\238\018\221\000\000\018\221\018\193\000\000\018\221\000\000\000\000\000\000\000\000\001\006\000\000\001\190\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\193.\n\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\001\202\001\226\003F\018\193\000\000\003J\000\000\000\000\000\000\000\000\001\234\002&\000\000\000\000.\014\018\193\000\000\018\193\000\000\000\000\018\193\001\234\002&\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\003^\000\000\003\194\019\029\000\000\018\193\003Z\019\029\003j\003\154\003\166\003R\001\210\002n\000\000\000\000\003\178\003Z\019\029\003j\003\154\003\166\019\029\000\000\019\029\000\000\000\000$\022\000\000)\254\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\003\182\003\198\000\000\000\000\000\000\019\029\029\202\000\000\000\000\000\000\000\000\003\182\003\198\000\000\000\000\000\000\019\029\000\000\000\000\019\029\000\000\000\000\000\000\nn\000\000\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000*\n\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\019\029\000\000\r\214\000\000\000\000\019\029\n-\000\000$*\000\000\n-\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\019\029\003B\n-\019\029\019\029\000\000\n-\000\000\n-\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\n-\000\000\000\000\019\029\000\000\000\000\000\000\n-\000\000\014R\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\n-\000\000\000\000\n-\002\017\000\000\000\000\000\000\002\017\n-\n-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n-\002\017\000\000\000\000\000\000\002\017\000\000\002\017\000\000\n-\000\000\000\000\n-\000\000\000\000\000\000\000\000\n-\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\n-\000\000\n-\000\000\000\000\n-\n-\000\000\002\017\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\002\017\002\017\000\000\000\000\000\000\000\000\000\000\000\000\n-\002\017\000\000\000\000\000\000\t\017\000\000\000\000\000\000\t\017\002\017\000\000\000\000\002\017\000\000\000\000\000\000\000\000\002\017\000\000\t\017\000\000\000\000\000\000\t\017\000\000\t\017\000\000\000\000\000\000\002\017\000\000\002\017\000\000\000\000\002\017\002\017\000\000\t\017\000\000\000\000\000\000\000\000\000\000\000\000\t\017\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\t\017\000\000\000\000\t\017$>\000\000\000\000\000\000\000\000\t\017\t\017\000\242\002\017\000\000\000\000\000\000\000\000\000\245\t\017\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\000\t\017\000\000\000\000\t\017\000\000\000\245\000\000\000\000\t\017\000\245\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\017\000\000\t\017\000\245\000\000\t\017\t\017\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\t\017\000\000\000\000\000\000\000\245\000\000\000\000\000\245\t\017\000\000\000\000\000\000\000\000\000\245\000\245\000\242\000\000\000\000\000\000\000\000\000\000\t\017\000\245\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\249\000\245\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\245\000\000\000\249\000\000\000\000\000\000\000\249\000\000\000\249\000\000\000\000\000\000\000\245\000\000\000\245\000\000\000\000\000\245\000\245\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\249\019\029\000\000\000\249\000\000\019\029\000\000\000\000\000\000\000\249\000\249\000\242\000\245\000\000\000\000\000\000\019\029\000\000\000\249\000\000\019\029\000\000\019\029\000\000\000\000\000\000\000\000\000\249\000\000\000\000\000\249\000\000\000\000\000\000\019\029\000\249\000\000\000\000\000\000\001\226\001\230\019\029\000\000\000\000\000\000\000\000\000\000\000\249\000\000\000\249\000\000\000\000\000\249\000\249\000\000\019\029\000\000\000\000\000\000\001\234\002&\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\003^\000\249\005J\001\202\002\018\001\230\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\000\000\019\029\003\178\019\029\003B\003V\019\029\019\029\000\000\000\000\001\234\0022\001\254\000\000\000\000\000\000\000\000\000\000\019\029\000\000\002\n\000\000\001\206*\026\003\182\003\198\019\029\000\000\002~\000\000\000\000\t\237\t\237\t\237\000\000\002\014\001\210\002n\000\000\019\029\000\000\003Z\000\000\003j\003\154\003\166\000\000\001\226\001\230\003\170\000\000\003\178\t\237\t\237\t\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\237\000\000\t\237\000\000\000\000\001\234\002&\000\000\000\000\000\000\000\000\003\182\003\198\000\000\000\000\t\237\t\237\t\237\000\000\000\000\000\000\t\237\n)\t\237\t\237\t\237\n)\000\000\000\000\000\000\003^\t\237\005n\000\000\000\000\000\000\003Z\n)\003j\003\154\003\166\n)\000\000\n)\000\000\000\000\003\178\029B\000\000\000\000\000\000\000\000\000\000\t\237\t\237\n)\000\000\000\000\000\000\000\000\000\000\000\000\n)\000\000\000\000\000\000\000\000\000\000\003\182\003\198\000\000\000\000\000\000\n)\000\000\000\000\n)\000\000\000\000\000\000\000\000\000\000\n)\n)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n)\000\000\000\000\000\000\t\005\003\158\000\000\t\237\t\005\n)\000\000\000\000\n)\000\000\000\000 R\000\000\n)\000\000\t\005\000\000\000\000\000\000\t\005\000\000\t\005\000\000\000\000\000\000\n)\000\000\n)\031\158\000\000\n)\n)\000\000\t\005\000\000\000\000\000\000\000\000\000\000\000\000\t\005\000\000\000\000\000\000\000\000\000\000\000\000 \230\000\000\000\000\n)\t\005\000\000\000\000\t\005\001i\000\000\000\000\000\000\001i\t\005\t\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\005\001i\000\000\001i\000\000\001i\000\000\001i\000\000\t\005\000\000\000\000\t\005\000\000\000\000\000\000\000\000\t\005\000\000\001i\001\202\001\226\001\230\000\000\000\000\000\000\001i\000\000\000\000\t\005\000\000\t\005\000\000\000\000\t\005\t\005\000\000\000\000\n\006\000\000\001i\001\234\002&\001\254\000\000\000\000\001i\001i\000\242\000\000\000\000\002\n\000\000\001\206\t\005\001i\000\000\000\000\000\000\002~\000\000\000\000\000\000\000\000\001i\000\000\002.\001\210\002n\000\000\000\000\000\000\003Z\018m\003j\003\154\003\166\018m\000\000\000\000\000\000\000\000\003\178\000\000\001i\000\000\001i\001i\018m\001i\001i\000\000\018m\000\000\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\003\198\018m\000\000\000\000\001i\000\000\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i\000\000\018m\019\029\000\000\018m\000\000\019\029\000\000\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\018m\000\000\019\029\000\000\019\029\007\130\000\000\007\134\000\000\018m\018\154\000\000\018m\000\000\000\000\000\000\019\029\018m\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\018m\000\000\018m\000\000\000\000\018m\018m\000\000\019\029\000\000\000\000\000\000\000\000\000\000\019\029\019\029\006\233\000\000\000\000\000\000\006\233\000\000\000\000\019\029\000\000\018m\000\000\000\000\000\000\000\000\000\000\006\233\019\029\000\000\000\000\006\233\000\000\006\233\021Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\233\000\000\000\000\019\029\000\000\019\029\003B\006\233\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\233\007\001\019\029\006\233\000\000\007\001\000\000*V\000\000\006\233\019\029\000\000\000\000\000\000\000\000\000\000\007\001\006\225\006\233\000\000\007\001\006\225\007\001\019\029\000\000\000\000\000\000\006\233\000\000\000\000\006\233\000\000\006\225\000\000\007\001\006\233\006\225\000\000\006\225\000\000\000\000\007\001\000\000\000\000\000\000\000\000\000\000\006\233\000\000\006\233\006\225\000\000\006\233\006\233\000\000\007\001\000\000\006\225\000\000\000\000\000\000\007\001\000\000\000\000\000\000\000\000\000\000\000\000\006\225\000\000\007\001\006\225\006\233\000\000\000\000\000\000\000\000\006\225\007\001\007\001\000\000\000\000\007\001\000\000\000\000\031\198\006\225\000\000\000\000\000\000\000\000\000\000\000\000\007\001\000\000\006\225\000\000\007\001\006\225\007\001\000\000\007\001\000\000\006\225\007\001\007\001\000\000\000\000\000\000\000\000\000\000\007\001\000\000\000\000\000\000\006\225\000\000\006\225\007\001\000\000\006\225\006\225\000\000\000\000\007\001\000\000\000\000\000\000\000\000\007\001\000\000\000\000\007\001\000\000\000\000\000\000\000\000#\206\007\001\006\209\006\225\000\000\000\000\006\209\000\000\000\000\000\000\007\001\000\000\001\226\001\230\000\000\000\000\"\198\006\209\000\000\007\001\000\000\006\209\007\001\006\209\000\000\000\000\000\000\007\001\000\000\000\000\000\000\000\000\001\234\002&\000\000\006\209\000\000\000\000\000\000\007\001\000\000\007\001\006\209\000\000\007\001\007\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\209\000\000\000\000\006\209\006\170\000\000\003\194\000\000\000\000\006\209\003Z\007\001\003j\003\154\003\166\001\202\002\018\001\230\006\209\000\000\003\178\000\000\000\000\000\000#\206\000\000\000\000\006\209\000\000\000\000\006\209\000\000\000\000\000\000\000\000\006\209\001\234,\154\001\254\000\000\000\000\000\000\003\182\003\198\000\000\000\000\002\n\006\209\001\206\006\209\000\000\000\000\006\209\006\209\002~\000\000\000\000\001\202\002\018\001\230\000\000\002\014\001\210\002n\000\000\000\000\000\000\003Z\000\000\003j\003\154\003\166\006\209\000\000\000\000\000\000\000\000\003\178\001\234\003b\001\254\000\000\000\000\000\000\000\000'N\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\002~\000\000\000\000\003\182\003\198\000\000\000\000\002.\001\210\002n\t\233\t\233\t\233\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\000\000\000\000\003\178\000\000\000\000\000\000\000\000\019\241\019\241\019\241\t\233\t\233\t\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\233\000\000\t\233\000\000\003\182\003\198\000\000\000\000\019\241\019\241\019\241\r\234\000\000\000\000\000\000\t\233\t\233\t\233\019\241\000\000\019\241\t\233\000\000\t\233\t\233\t\233\000\000\000\000\000\000\000\000\000\000\t\233\000\000\019\241\019\241\019\241\000\000\000\000\000\000\019\241\000\000\019\241\019\241\019\241\001\202\001\226\001\230\021\162\000\000\019\241\000\000\000\000\000\000\t\233\t\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\002\018\001\230\001\234\001\238\001\254\000\000\000\000\000\000\019\241\019\241\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\001\234\029\242\001\254\000\000\000\000\000\000\000\000\002\014\001\210\002n\002\n\000\000\001\206\003Z\000\000\003j\003\154\003\166\002~\000\000\000\000\000\000\007\174\003\178\000\000\002.\001\210\002n\000\000\000\000\000\000\003Z\000\000\003j\003\154\003\166\001\202\001\226\001\230%z\000\000\003\178\000\000\000\000\000\000\003\182\003\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\001\238\001\254\000\000\000\000\000\000\003\182\003\198\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230%\218\002\014\001\210\002n\000\000\000\000\000\000\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\000\000\000\000\003\178\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\003\198\000\000\000\000\002\014\001\210\002n\001\202\002Z\001\230\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\000\000\000\000\003\178\000\000\000\000\000\000\000\000\001\202\004\138\001\230\001\234,N\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\003\182\003\198\000\000\000\000\001\234\004\150\001\254\000\000\000\000\000\000\000\000\002.\001\210\002n\002\n\000\000\001\206\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\005y\000\000\003\178\000\000\002.\001\210\002n\001\202\005\238\001\230\003Z\000\000\003j\003\154\003\166\000\000\000\000\000\000\005y\005y\003\178\005y\005y\000\000\003\182\003\198\000\000\000\000\001\234\005\250\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\003\182\003\198\005y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\185\002.\001\210\002n\000\000\000\000\000\000\003Z\000\000\003j\003\154\003\166\000\242\000\000\000\000\000\000\000\000\003\178\n\185\n\185\000\000\n\185\n\185\000\000\000\000\000\000\000\000\000\000\000\000\005y\000\000\000\000\000\000\000\000\000\000\000\000\005\137\000\000\000\000\003\182\003\198\000\000\000\000\000\000\n\185\000\000\000\000\000\000\000\000\000\000\000\000\005y\000\000\005y\005\137\005\137\000\000\005\137\005\137\000\000\000\000\000\000\000\000\000\000\n\185\000\000\000\000\005y\005y\000\000\000\000\011N\005y\000\000\000\000\000\000\005y\000\000\005y\000\000\005\137\n\185\005y\000\000\005y\000\000\000\000\000\000\n\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\n\185\000\000\n\185\n\201\n\201\000\000\n\201\n\201\000\000\000\000\000\000\000\000\000\000\000\000\005\137\000\000\n\185\n\185\000\000\000\000\011N\n\185\000\000\000\000\000\000\n\185\000\000\n\185\000\000\n\201\000\000\n\185\000\000\n\185\000\000\000\000\005\137\000\000\005\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\005\137\005\137\005\153\000\000\011N\005\137\000\000\000\000\000\000\005\137\000\000\005\137\000\000\000\000\n\201\005\137\000\000\005\137\000\000\000\000\005\153\005\153\000\000\005\153\005\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\201\000\000\n\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\011\138\n\201\005\185\000\000\011N\n\201\000\000\000\000\000\000\n\201\000\000\n\201\000\000\000\000\000\242\n\201\000\000\n\201\000\000\000\000\005\185\005\185\000\000\005\185\005\185\000\000\000\000\000\000\000\000\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\185\000\000\000\000\000\000\000\000\000\000\000\000\005\153\000\000\005\153\005\169\005\169\000\000\005\169\005\169\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\005\153\005\153\000\000\000\000\011N\005\153\000\000\000\000\000\000\005\153\000\000\005\153\000\000\005\169\005\185\005\153\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\005\185\000\000\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\005\185\005\185\000\000\000\000\011N\005\185\000\000\000\000\000\000\005\185\000\000\005\185\000\000\000\000\000\000\005\185\000\000\005\185\000\000\000\000\005\169\000\000\005\169\000\000\000\000\000\000\000\000\001\202,z\001\230\000\000\000\000\000\000\000\000\000\000\000\000\005\169\005\169\000\000\000\000\011N\005\169\000\000\000\000\000\000\005\169\000\000\005\169\001\234,\134\001\254\005\169\000\000\005\169\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\002.\001\210\002n\000\000\000\000\000\000\003Z\006\217\003j\003\154\003\166\006\217\000\000\000\000\000\000\000\000\003\178\001\234\002&\001\254\000\000\000\000\006\217\000\000\000\000\000\000\006\217\002\n\006\217\000\000\000\000!\178\000\000\000\000\000\000\000\000\000\000\000\000\003\182\003\198\006\217\000\000\003^\000\000#\006\000\000\"*\006\217\003Z\007\t\003j\003\154\003\166\007\t\000\000\000\000\000\000\000\000#\022\000\000\000\000\006\217\000\000\000\000\007\t\000\000\000\000\006\217\007\t\000\000\007\t\000\000\000\000\000\000\000\000\000\000\006\217\000\000\000\000\000\000\003\182\003\198\007\t\000\000\000\000\006\217\000\000\000\000\000\000\007\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\250\000\000\000\000\007\t\t\n\006\217\000\000\006\217\000\250\007\t\006\217\006\217\t\n\000\000\000\000\t6\000\000\000\000\007\t\007%\000\000\t:\000\000.J\000\000\000\000\000\000\007\t\000\000\t:\006\217\000\000\000\000\tF\000\000\000\000\000\000\000\000\000\000\000\000\031\138\tF\000\000#Z\000\000\000\000\000\000\007\t\031\138\007\t\000\000'z\007\t\007\t\031\238\000\000\000\000\000\000\000\000'z \006\000\000\031\238\000\000\000\000\000\000\000\000\000\000 \006 \014\000\000\000\000\007\t\000\000\000\000\001\226\001\230 \014 \030\000\000\000\000\000\000\000\000\000\000\000\000#\254 \030\000\000\000\000-\218\000\000\000\000\000\000\000\000-\250\001\234\002&\000\000 &\000\000 f\000\000\000\000\007%\007%\000\000 &\000\000 f\000\000\000\000\007M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000+\026\000\000\003\194$\190\000\000\000\000\003Z\000\000\003j\003\154\003\166$\190\000\000\000\000\000\000\000\000\003\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\182\003\198")) + ((32, "\000\000\1462\000\000\156V\000\000\157j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\164\000\000\157j\000\000\000\000\000\000\000\000\000\000\024\144\000\000\157j\000\000\1462\000\000\001\004\000\000\002\248\000\000\000\023\000\001fF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000X\000\000\006,\000\000\000)\000\000\000\000\000\000\001\198\000\000\001\192\000\000\000\000\000\000\001\178\000\000\003F\000\000\003\158\000\000\000\000\000\000\002\200\000\000\003z\000\000\006\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\236\000\000\000\000\000\000\000\000\000\000\004N\000\001\163\134\000\001V\152\000\001WF\000\001W\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004.\000\000\000\000\000\000\000\000\000\000\226\196\000\000\005\238\000\000\006\248\000\000\000\000\000\000\000\000\000\001\162\b\000\000\150x\000\000\007\184\000\000\000\000\000\000\007\184\000\001YP\000\000\004.\000\000\000\000\000\001\155\212\000\000\004.\000\000\219\134\000\000\007\184\000\001r\150\000\000\007\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025j\000\001YP\000\000\218*\000\000\000\000\000\001UP\000\001\155\212\000\000\153\026\000\000\024\144\000\000\027\230\000\001`\178\000\000\024\144\000\001YP\000\000\007\242\000\001aD\000\000\000\000\000\000\000\000\000\000\007\182\000\000\000\000\000\000\221t\000\000\156V\000\000\024\144\000\000\222\134\000\000\000\000\000\000\002P\000\000\000\000\000\000\222\134\000\000\005\170\000\000\000\000\000\000'\236\000\000\000\000\000\000\031Z\000\000\000\000\000\000\000\000\000\000\003x\000\000\003\150\000\000\006\240\000\000\007\184\000\000\"J\000\000\b\190\000\001f\198\000\000\000\000\000\000\000\000\000\000\007\184\000\000\000\000\000\000\024\144\000\000\000\000\000\000\004.\000\000\003\150\000\000\t<\000\000\007\184\000\000#h\000\000\000\000\000\000\004\216\000\000\000\000\000\000'\236\000\000\000\000\000\000\000\000\000\000\006\224\000\000\003\150\000\000\000\000\000\000\004.\000\000\003\150\000\000\000\000\000\000\nf\000\001\144\232\000\000\007\184\000\001\135:\000\001\155*\000\001\146\146\000\001}\144\000\000\000\000\000\001\150\146\000\001\155\212\000\000\000\000\000\001}\198\000\001\162|\000\000\004.\000\000\151\006\000\000\157j\000\000\1462\000\000\000\003\000\000\000\000\000\000\000\000\000\000\156V\000\000\024\144\000\000\000\003\000\000\003(\000\000\t\016\000\000\000\177\000\001YP\000\001\156(\000\000\000\000\000\001YP\000\001\156(\000\000\000\000\000\001YP\000\001YP\000\001e\140\000\000\029\144\000\001k\134\000\000\218*\000\000\0118\000\000\000\000\000\000\004t\000\000\001*\000\000\004\184\000\000\000\000\000\000\t\180\000\000\000\000\000\000\000\000\000\000\012\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\030\014\000\001\158|\000\000\229\180\000\001YP\000\000\230\174\000\000\012\002\000\000\231\168\000\000\000\000\000\000\000\000\000\001\030X\000\001YP\000\000\232\162\000\001\031R\000\000\000\000\000\001\1442\000\001\155\212\000\000\000\000\000\000\005p\000\000\001*\000\000\0118\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\002\000\000\012\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\164\210\000\000\151\134\000\000\007\184\000\000$\134\000\000\004.\000\000\223\182\000\000\007\184\000\000&\202\000\001p\148\000\001\155\212\000\000\0003\000\000\004.\000\000\000\000\000\000\012\158\000\000\004.\000\000\012`\000\000\007\184\000\000\025\164\000\000\000\000\000\001YP\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011d\000\000\b\134\000\001YP\000\000\233\156\000\001 L\000\000\000\000\000\001p\148\000\000\234\150\000\001YP\000\000\235\144\000\001!F\000\000\000\000\000\001p\148\000\000\236\138\000\001\"@\000\001YP\000\000\237\132\000\001#:\000\000\000\000\000\001p\148\000\000\238~\000\001$4\000\000\221`\000\001\155<\000\000\2182\000\001k\134\000\000\222\\\000\000\0118\000\000\000\000\000\000\000\000\000\000\000\000\000\000\227\190\000\001\159\158\000\000\218:\000\001k\134\000\000\223X\000\000\224T\000\000\225P\000\001%.\000\000\r\012\000\001YP\000\000\239x\000\001&(\000\000\000\000\000\001p\148\000\000\240r\000\001'\"\000\000\000\000\000\001(\028\000\000\004F\000\000\004.\000\000\000\000\000\000\012v\000\000\012\164\000\000\007\184\000\000\026~\000\000\000\000\000\000\004.\000\000\rT\000\000\007\184\000\000\030H\000\000\000\000\000\000\003\168\000\000\000\000\000\001\1654\000\000\224\178\000\000\007\184\000\000+z\000\000\004.\000\000\226h\000\000\007\184\000\000,\152\000\000\003\190\000\000\t\186\000\000\015\156\000\000\003\252\000\000\000\236\000\001YP\000\000\011h\000\000\011\224\000\001YP\000\000\241l\000\001)\022\000\000\000\000\000\001p\148\000\000\242f\000\001*\016\000\000\015\192\000\001YP\000\000\243`\000\001+\n\000\000\000\000\000\001p\148\000\000\244Z\000\001,\004\000\000\012\254\000\001YP\000\000\245T\000\001,\254\000\000\000\000\000\001p\148\000\000\246N\000\001-\248\000\000\017\026\000\001YP\000\000\247H\000\001.\242\000\000\000\000\000\001p\148\000\000\248B\000\001/\236\000\001\1678\000\001\155\212\000\000\001\166\000\001YP\000\000\012T\000\000\r\216\000\001YP\000\000\249<\000\0010\230\000\000\000\000\000\001p\148\000\000\2506\000\0011\224\000\000\0172\000\001YP\000\000\2510\000\0012\218\000\000\000\000\000\001p\148\000\000\252*\000\0013\212\000\000\0142\000\001YP\000\000\253$\000\0014\206\000\000\000\000\000\001p\148\000\000\254\030\000\0015\200\000\000\017\132\000\001YP\000\000\255\024\000\0016\194\000\000\000\000\000\001p\148\000\001\000\018\000\0017\188\000\001p\148\000\001\001\012\000\0018\182\000\000\000\000\000\001p\148\000\001\002\006\000\0019\176\000\000\017\166\000\000\003\168\000\000\000\000\000\000\028\238\000\001\155<\000\000\007V\000\000\000\000\000\000\031\204\000\001\155<\000\000\007\252\000\000\000\000\000\001YP\000\000\004.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\204\000\000\000\000\000\001YP\000\000\000\000\000\000\023\214\000\001\162\208\000\000\000\000\000\001YP\000\000\024&\000\001YP\000\000+\148\000\000\000\000\000\000,\178\000\000\000\000\000\000\025Z\000\000\017P\000\000\000\000\000\000\017\016\000\001YP\000\000\018\006\000\000\000\000\000\000\018\024\000\000\000\000\000\000\011R\000\000\000\000\000\000\000\003\000\000\007\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029P\000\001YP\000\000\0280\000\001YP\000\000\031\140\000\000\018\006\000\000\017x\000\000\166\214\000\000\004b\000\000\018\028\000\000\000\177\000\000\018v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\026\000\000\020\026\000\000\145`\000\000\024\144\000\000\1572\000\000\219L\000\000\000\000\000\000\005\128\000\000\018\148\000\000\018:\000\001YP\000\000\r\164\000\000\019:\000\001s@\000\000\007\n\000\000\020*\000\000\019\170\000\001YP\000\000\014\194\000\000\000\000\000\000\000\000\000\000\027z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152J\000\000\027z\000\000\000*\000\000\000j\000\000\011\018\000\000\000\000\000\000\000\000\000\000\011R\000\000\000\000\000\000\027\230\000\000\020\204\000\000\020\154\000\000\024\144\000\000\027\210\000\000\000\000\000\000\024\144\000\000\1462\000\000\156V\000\000\024\144\000\000\222\192\000\000\222\134\000\000\014\028\000\001\144\232\000\001\150\224\000\000\000\000\000\001\135\242\000\000\157j\000\000\1462\000\000\1462\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\026\000\000\152\252\000\000\024\144\000\000\027\210\000\000\147\014\000\000\024\144\000\000\167\176\000\000\000\003\000\000\001\004\000\000\003\150\000\000\015\176\000\000\000\000\000\000\t\250\000\000\015\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\156V\000\000\024\144\000\000\000\003\000\000&\252\000\001s\210\000\000\158R\000\000\000\003\000\000\001\028\000\000\168\138\000\001\133\150\000\000\007\160\000\000\020\154\000\000\0200\000\001YP\000\000\015\220\000\000\020\156\000\001~:\000\000\n\198\000\000\022\b\000\000\021\148\000\001YP\000\000\018\024\000\000\000\000\000\000\000\000\000\001td\000\001td\000\001td\000\000\000\000\000\000\015\176\000\000\000\000\000\000\022\244\000\000\000\000\000\000\023\180\000\001YP\000\000\004\182\000\000\005\212\000\000\219L\000\000\156V\000\000\024\144\000\000\219L\000\000\000\000\000\000\017\236\000\000\000\000\000\000\000\000\000\000\nh\000\000\018\134\000\000\000\000\000\000\000\000\000\000\219L\000\000\219L\000\000\017\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022N\000\001u\018\000\000\n\250\000\000\023\012\000\000\022\154\000\001YP\000\000\018D\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000\217 \000\000\025^\000\000\r\246\000\000\014\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0028\000\000$\194\000\001a\244\000\000\000\000\000\001c\230\000\000\024\144\000\000\219L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\001\165,\000\001u\192\000\000\012\160\000\000\023D\000\000\022\206\000\001YP\000\000\018\164\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\165\148\000\000\219L\000\001\165\220\000\000\220V\000\000\152J\000\000\b\190\000\000\024\012\000\000\219L\000\000\000\000\000\000!\n\000\000\024\024\000\000\000\000\000\000(\230\000\000\000\000\000\001vn\000\000\015r\000\000\024d\000\000\024z\000\001YP\000\000\0196\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\001\166D\000\001YP\000\000\001\130\000\000\000\000\000\000\219L\000\001\166\206\000\000\000\023\000\000\000\000\000\000\000\000\000\000\025P\000\000\000\000\000\000(\162\000\000\000\000\000\001w\028\000\000\000\000\000\000\025\\\000\000\000\000\000\000(\162\000\001a\244\000\000\000\000\000\000\000\000\000\000\000\000\000\001\1676\000\000\151\138\000\000\000\000\000\000\026\016\000\000\000\000\000\000(\230\000\000\rZ\000\000\029N\000\000\r\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\222\000\000\000\000\000\000\000\000\000\000\025\012\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000\000\000\000\000*|\000\000\219L\000\000+\"\000\000\000\000\000\000\000\000\000\000,@\000\001~\232\000\000\015\138\000\000\025\214\000\000\025H\000\001YP\000\000\019:\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000-^\000\000\025T\000\001\127\150\000\000\016\\\000\000\025\234\000\000\025^\000\001YP\000\000\019L\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000-\214\000\000\219L\000\000\025n\000\001\128D\000\000\016\172\000\000\026\030\000\000\025\174\000\001YP\000\000\019b\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000.|\000\001U\214\000\000\018\232\000\000\029\176\000\000\002\212\000\001\163\134\000\000\002\148\000\001YP\000\000\004\030\000\000\012\002\000\000\000\000\000\000\000\000\000\000\005<\000\000\000\000\000\000\000\000\000\000\026P\000\000\026\156\000\000\000\000\000\000\026\162\000\000\000\000\000\000\000\000\000\000\019\002\000\000\029\176\000\000\026P\000\000\014v\000\000\000\003\000\000\156V\000\000\1542\000\000\152\252\000\000\024\144\000\000\027\210\000\000\001\218\000\000\011\152\000\000\011\018\000\000\000\000\000\000\025\212\000\000\027\230\000\000\227\166\000\000\026z\000\000\027\230\000\000\001\218\000\000\011\152\000\000\018F\000\000\000\000\000\000\026\132\000\000\027\230\000\000\000\000\000\001\128\212\000\000\006\198\000\000\222\134\000\000\015\176\000\000\011\000\000\001\1632\000\000\000\000\000\001YP\000\001w\172\000\001YP\000\001g|\000\001[ \000\001YP\000\000\017|\000\001YP\000\001xf\000\000\000\000\000\000\014\194\000\000\018\180\000\000\019\154\000\000\027\230\000\001\129\140\000\000\000\000\000\000\015\254\000\000\019\210\000\001b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\230\000\001\130D\000\000\027\230\000\001\130\252\000\000\011l\000\000\001*\000\001h6\000\000\015\224\000\000\001*\000\001h\240\000\000\000\000\000\001\131\180\000\000\006\198\000\000\000\000\000\001i\170\000\000\000\000\000\001\132l\000\000#\176\000\000\000\000\000\000#\244\000\000\000\000\000\000\026\142\000\000\027\210\000\000\000\000\000\001cj\000\000\147\014\000\000\000\000\000\000\005|\000\000\000\000\000\000\027\230\000\000%\234\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\230\000\000\000\000\000\000\027b\000\000\000\003\000\000\159,\000\000\160\006\000\000\020 \000\000\004\222\000\000\169d\000\000\026\180\000\000\216\172\000\000\170>\000\000\156V\000\000\024\144\000\000\020\026\000\000\020\026\000\000\171\024\000\000\020\026\000\000\156V\000\000\024\144\000\000\147>\000\000\156V\000\000\024\144\000\000\000\003\000\001c\230\000\000\024\144\000\001a\244\000\000\219L\000\000\145\218\000\000\000\003\000\001jT\000\000\024\144\000\000\153`\000\000\001\026\000\000\000\000\000\001d\148\000\000\149$\000\000\149$\000\000\153\154\000\001\163\134\000\000\005\214\000\001YP\000\000\001\130\000\000\000\000\000\000\001\130\000\000\000\000\000\000\000\000\000\000\026\194\000\000\000\000\000\000\026\196\000\000\000\000\000\000\149\248\000\001\163\134\000\000\006\244\000\001YP\000\000\006Z\000\000\000\000\000\000\007x\000\000\000\000\000\000\000\000\000\001d\148\000\000\014v\000\000\026\210\000\000\000\000\000\000\014v\000\000\026\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149$\000\000\019\182\000\000\026\178\000\000\026$\000\000\007\184\000\000#\222\000\000\000\000\000\000\006\154\000\000\007\184\000\000$\212\000\000\000\000\000\000\000\000\000\000\027\002\000\000\000\000\000\000\b\214\000\000\000\000\000\000\000\000\000\000\154\024\000\001\163\134\000\000\007\012\000\001YP\000\000\005\250\000\000\000\000\000\001\132\232\000\000\219\128\000\001\163\134\000\000\b\190\000\001YP\000\000\b6\000\000\tT\000\000\027\004\000\000\000\000\000\000\027\022\000\000\000\000\000\000\027\024\000\000\000\000\000\001\147\024\000\000\149$\000\000\220(\000\001\163\134\000\000\tx\000\001YP\000\000\n\210\000\000\000\000\000\001\132\232\000\000\223\014\000\000\000\000\000\001\163\134\000\000\t\220\000\001YP\000\000\011\144\000\000\000\000\000\000\001\130\000\000\027\026\000\000\000\000\000\000\0272\000\000\000\000\000\000\000\000\000\000\000\000\000\001Z\144\000\000\000\000\000\000\000\000\000\000\020N\000\001k\134\000\000\004\014\000\000\027\014\000\000\171\242\000\001c\230\000\000\024\144\000\001a\244\000\000)0\000\000\172\204\000\000\019\234\000\000\027\b\000\000\000\177\000\000\027J\000\000\000\000\000\000\000\000\000\000\020\026\000\000\020\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002:\000\000\026\016\000\000(\018\000\000\000\000\000\000\160\224\000\000\161\186\000\000\152\252\000\000\024\144\000\000\027\210\000\000\0120\000\000\027\230\000\000%\236\000\000\000\000\000\000\162\148\000\000\163n\000\001\133\150\000\000#\210\000\001YP\000\000\019<\000\000\000\003\000\001c\230\000\000\024\144\000\000\219L\000\000(\230\000\000\000\003\000\000\000\003\000\000\156V\000\000\024\144\000\000\020\026\000\000\026\180\000\000\027\012\000\000\000\000\000\000\020\026\000\000\003X\000\000\rl\000\000\154p\000\001c\230\000\000\024\144\000\001a\244\000\000\029>\000\000\154p\000\000\173\166\000\001c\230\000\000\024\144\000\001a\244\000\000\000\000\000\000\000\000\000\000\020\026\000\000\020\212\000\000\027\014\000\000\000\177\000\000\027X\000\000\000\000\000\000\000\000\000\000\027\030\000\000\000\000\000\000\020\026\000\000\004v\000\000\0274\000\000\000\000\000\000\029H\000\000\000\003\000\000\027\170\000\000\000\000\000\000*N\000\000\174\128\000\000\021\b\000\000\027n\000\000\000\177\000\000\027\178\000\000\000\000\000\000\000\000\000\000\020\026\000\000\027\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001c\230\000\000\024\144\000\001a\244\000\000+l\000\000\219L\000\000\000\000\000\000\0218\000\000\028\240\000\000\020*\000\000\000\003\000\000\000\000\000\000\000\000\000\000,\138\000\000\175Z\000\001c\230\000\000\024\144\000\001a\244\000\000-\168\000\000.\198\000\000\1764\000\001c\230\000\000\024\144\000\001a\244\000\000/\228\000\0001\002\000\000\000\000\000\000\022V\000\000\030\014\000\000\177\014\000\001c\230\000\000\024\144\000\001a\244\000\000\000\000\000\000\000\000\000\000\000\003\000\000\157j\000\000\000\003\000\000\000\000\000\000\000\000\000\000\177\232\000\001c\230\000\000\024\144\000\001a\244\000\0002 \000\0003>\000\000\178\194\000\001c\230\000\000\024\144\000\001a\244\000\0004\\\000\0005z\000\000\179\156\000\001c\230\000\000\024\144\000\001a\244\000\0006\152\000\0007\182\000\000\180v\000\001c\230\000\000\024\144\000\001a\244\000\0008\212\000\0009\242\000\000\181P\000\001c\230\000\000\024\144\000\001a\244\000\000;\016\000\000<.\000\000\182*\000\001c\230\000\000\024\144\000\001a\244\000\000=L\000\000>j\000\000\183\004\000\001c\230\000\000\024\144\000\001a\244\000\000?\136\000\000@\166\000\000\183\222\000\001c\230\000\000\024\144\000\001a\244\000\000A\196\000\000B\226\000\000\184\184\000\001c\230\000\000\024\144\000\001a\244\000\000D\000\000\000E\030\000\000\185\146\000\001c\230\000\000\024\144\000\001a\244\000\000F<\000\000GZ\000\000\186l\000\001c\230\000\000\024\144\000\001a\244\000\000Hx\000\000I\150\000\000\187F\000\001c\230\000\000\024\144\000\001a\244\000\000J\180\000\000K\210\000\000\188 \000\001c\230\000\000\024\144\000\001a\244\000\000L\240\000\000N\014\000\000\188\250\000\001c\230\000\000\024\144\000\001a\244\000\000O,\000\000PJ\000\000\189\212\000\001c\230\000\000\024\144\000\001a\244\000\000Qh\000\000R\134\000\000\190\174\000\001c\230\000\000\024\144\000\001a\244\000\000S\164\000\000T\194\000\000\191\136\000\001c\230\000\000\024\144\000\001a\244\000\000U\224\000\000V\254\000\000\192b\000\001c\230\000\000\024\144\000\001a\244\000\000X\028\000\000Y:\000\000\193<\000\001c\230\000\000\024\144\000\001a\244\000\000ZX\000\000[v\000\000\194\022\000\001c\230\000\000\024\144\000\001a\244\000\000\\\148\000\000]\178\000\000\194\240\000\001c\230\000\000\024\144\000\001a\244\000\000^\208\000\000_\238\000\000\195\202\000\000\021>\000\000\027z\000\000\000\177\000\000\027\192\000\000\000\000\000\000\000\000\000\000\020\026\000\000\031,\000\001c\230\000\000\024\144\000\001a\244\000\000a\012\000\000b*\000\000\196\164\000\001c\230\000\000\024\144\000\001a\244\000\000cH\000\000df\000\000\024\144\000\001k\002\000\000\152J\000\000\224\n\000\000\027\204\000\000\153`\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\177\000\000\000\000\000\000\027,\000\000\171\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153`\000\001\163\134\000\000\b\214\000\000\027&\000\001YP\000\000\n\210\000\000\000\003\000\000\000\000\000\000\027L\000\000\000\003\000\000\000\000\000\000\nN\000\001YP\000\000\011\240\000\000\000\003\000\000\000\000\000\000\027N\000\000\000\003\000\000\000\000\000\000\019\240\000\000\000\003\000\000\000\000\000\000\027d\000\000\000\003\000\000\000\000\000\000\000\000\000\000\027h\000\000\000\003\000\000\000\000\000\000\148\232\000\001YP\000\000\r\014\000\000\000\003\000\000\000\000\000\000\027\140\000\000\000\003\000\000\000\000\000\000\027\144\000\000\000\003\000\000\000\000\000\000.\244\000\000\000\003\000\000\000\000\000\001\134D\000\000\021^\000\000\028\020\000\000\027\140\000\001YP\000\000\020\224\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\000/\154\000\000\219L\000\0000\018\000\000\000\023\000\000\000\000\000\000\000\023\000\001[P\000\001\163\134\000\000\nf\000\001YP\000\000\014,\000\000\000\003\000\000\000\000\000\000\027\190\000\000\000\003\000\000\000\000\000\000\020\224\000\000\000\003\000\000\000\000\000\000\027\194\000\000\000\003\000\000\000\000\000\000\000\000\000\000\027\196\000\000\000\003\000\000\000\000\000\000\000\000\000\001\135\204\000\001\135\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\132\000\000\000\003\000\000\028l\000\000\000\000\000\000\000\003\000\000\028l\000\000\000\000\000\000\t\250\000\000\014\138\000\000\154p\000\000\028v\000\000\000\000\000\001\\\020\000\000\155|\000\000\000\000\000\000\154p\000\000\028\164\000\000\000\000\000\000\154p\000\000\028\164\000\000\000\000\000\000\000\000\000\000\020\026\000\000\005\148\000\000\015\168\000\000\154p\000\000\028\180\000\000\006\178\000\000\197~\000\001c\230\000\000\024\144\000\001a\244\000\000f\162\000\000g\192\000\000\154p\000\000\028\182\000\000\007\208\000\000\198X\000\001c\230\000\000\024\144\000\001a\244\000\000h\222\000\000i\252\000\000\154p\000\000\028\194\000\000\b\238\000\000\1992\000\001c\230\000\000\024\144\000\001a\244\000\000k\026\000\000l8\000\000\"l\000\000\000\003\000\000\028\204\000\000\n\012\000\000\200\012\000\001c\230\000\000\024\144\000\001a\244\000\000mV\000\000nt\000\000\000\003\000\000\028\214\000\000\011*\000\000\200\230\000\001c\230\000\000\024\144\000\001a\244\000\000o\146\000\000p\176\000\000\000\003\000\000\028\216\000\000\012H\000\000\201\192\000\001c\230\000\000\024\144\000\001a\244\000\000q\206\000\000r\236\000\000\021&\000\000\016\198\000\000\154p\000\000\028\226\000\000\rf\000\000\202\154\000\001c\230\000\000\024\144\000\001a\244\000\000t\n\000\000u(\000\000\154p\000\000\029\022\000\000\014\132\000\000\203t\000\001c\230\000\000\024\144\000\001a\244\000\000vF\000\000wd\000\000\154p\000\000\029\022\000\000\015\162\000\000\204N\000\001c\230\000\000\024\144\000\001a\244\000\000x\130\000\000y\160\000\000\016\192\000\000\205(\000\001c\230\000\000\024\144\000\001a\244\000\000z\190\000\000{\220\000\000\017\222\000\000\023t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029*\000\000\000\000\000\000\154p\000\000\0292\000\000\000\000\000\000\154p\000\000\029:\000\000\000\000\000\000\000\000\000\000\n\026\000\000\000\000\000\000\000\000\000\000\000\003\000\000\028\138\000\000\000\003\000\000\028\148\000\000\000\000\000\000\000\000\000\0000\184\000\000\000\003\000\000\000\000\000\000\006(\000\000\000\003\000\000\000\000\000\001\133\150\000\000\000\000\000\000\000\000\000\001y\022\000\000\029n\000\000\000\000\000\000\164H\000\001c\230\000\000\024\144\000\001a\244\000\000\029>\000\000\206\002\000\001c\230\000\000\024\144\000\001a\244\000\000\0288\000\001e*\000\000\024\144\000\0001P\000\000\024\144\000\000\219L\000\000\219L\000\000(\162\000\000\206\220\000\001c\230\000\000\024\144\000\001a\244\000\000\028 \000\001\\`\000\000\219L\000\000+\252\000\000\207\182\000\001c\230\000\000\024\144\000\001a\244\000\000\030\\\000\001]H\000\000\219L\000\000-\026\000\000\208\144\000\001c\230\000\000\024\144\000\001a\244\000\000\031z\000\001]\148\000\000(\166\000\000\209j\000\001c\230\000\000\024\144\000\001a\244\000\000 \152\000\001^|\000\000\210D\000\001c\230\000\000\024\144\000\001a\244\000\000 \022\000\000\211\030\000\001c\230\000\000\024\144\000\001a\244\000\000!\182\000\001^\200\000\001\\\020\000\000\211\248\000\001c\230\000\000\024\144\000\001a\244\000\000\"\212\000\001_\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\168\000\000\000\000\000\001k\128\000\000\bt\000\000\000\000\000\000\165\"\000\001c\230\000\000\024\144\000\001a\244\000\000\029>\000\000\rt\000\000\000\000\000\000\000\000\000\000\028\176\000\000\000\000\000\001k\128\000\000\014\146\000\000\000\000\000\000\165\252\000\000\000\000\000\001c\230\000\000\024\144\000\001a\244\000\000\029>\000\000\001:\000\000\000\000\000\000\029\144\000\000\000\000\000\001l\"\000\000\0052\000\000\000\000\000\000\020 \000\000\029\012\000\000\000\000\000\000\026\180\000\000%N\000\000\015\176\000\000\000\000\000\000 \138\000\000\015\158\000\000\020\014\000\000\029v\000\000\000\000\000\000\000\000\000\000\029\170\000\000\000\000\000\000\001\196\000\000#\164\000\000\225\012\000\000\000\000\000\000 J\000\001c\230\000\000\024\144\000\001a\244\000\000|\250\000\000~\024\000\000\000\000\000\000\029\148\000\000\000\003\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\1276\000\000\029\216\000\000\212\210\000\001c\230\000\000\024\144\000\001a\244\000\000\128T\000\000\213\172\000\001c\230\000\000\024\144\000\001a\244\000\000\129r\000\000\130\144\000\000\131\174\000\000\214\134\000\001c\230\000\000\024\144\000\001a\244\000\000\132\204\000\000\133\234\000\000\000\000\000\000\029*\000\000\000\000\000\000\027\208\000\000\215`\000\000\021\144\000\000\029\166\000\000\000\177\000\000\029\234\000\000\000\000\000\000\000\000\000\000\020\026\000\000!h\000\001c\230\000\000\024\144\000\001a\244\000\000\135\b\000\000\136&\000\001c\230\000\000\024\144\000\001a\244\000\000\0162\000\000\000\000\000\001\\\020\000\000\000\000\000\000\018\252\000\000\"\134\000\001c\230\000\000\024\144\000\001a\244\000\000\006\148\000\000*\018\000\000\000\000\000\000,\138\000\000\029\240\000\000\000\000\000\001c\230\000\000\024\144\000\001a\244\000\000\147>\000\001e*\000\000\021\244\000\000\022\014\000\000\000\000\000\000\000\000\000\000\029r\000\000\000\000\000\001c\230\000\000\024\144\000\001a\244\000\000\029>\000\000\r\004\000\000\000\000\000\000\030\028\000\000\000\000\000\001l\"\000\000\r\132\000\000\000\000\000\001c\230\000\000\024\144\000\001a\244\000\000\029>\000\000\015\176\000\000\000\000\000\000\000\000\000\000\029R\000\000\000\000\000\001k\128\000\000\016\206\000\000\000\000\000\000\000\000\000\000\024\144\000\000\027\210\000\000\028v\000\000\000\003\000\000\000\000\000\000\000*\000\000\000j\000\000\011\018\000\000\011\152\000\000\027\210\000\001\147Z\000\000\027\230\000\000 \208\000\000\027\210\000\001\147\226\000\000\029\180\000\000\000\003\000\000\000\000\000\000\011\152\000\000\000\000\000\000\030\024\000\000\024P\000\000\031n\000\000\000\000\000\000\022 \000\000\0308\000\000\000\000\000\000\0306\000\000\000\154\000\001k\134\000\000\018H\000\000\000\000\000\000\000\000\000\000\030\012\000\000\029~\000\001\163\134\000\000\011\180\000\001YP\000\000'\168\000\000\b\012\000\000\003\148\000\000\021,\000\000\024f\000\000\000\000\000\0002\166\000\000\030T\000\000\000\000\000\000\026H\000\000\000\000\000\000\000\000\000\001k\134\000\001l\220\000\001\136z\000\000\030\154\000\001\150|\000\001k\134\000\001l\220\000\001\137\026\000\001l\220\000\001\137\186\000\000\000\000\000\001l\220\000\001\138Z\000\001\156F\000\001\163\232\000\000\004.\000\000\220\144\000\000\007\184\000\000-\202\000\000\226\n\000\001\167\218\000\000\228\028\000\000\007\184\000\000.\232\000\000\004.\000\000\226\136\000\000\007\184\000\0000\006\000\000\012\236\000\000\r\240\000\001k\134\000\000\030`\000\001k\134\000\001\138\236\000\001mn\000\000\030h\000\001k\134\000\001\139~\000\001n(\000\000\n\210\000\000\030&\000\000\000\003\000\000\000\000\000\000\000\000\000\000\024\144\000\001e\204\000\000\000\000\000\001k\002\000\001\135\204\000\000\000\000\000\000\000\000\000\000\030\166\000\000\000\000\000\000\014v\000\000\030\172\000\000\000\000\000\000\000\000\000\000\000\000\000\001c\230\000\000\024\144\000\001a\244\000\000\137D\000\000\138b\000\000\000\000\000\001c\230\000\000\024\144\000\001a\244\000\000\029>\000\000\t\012\000\000\000\000\000\000\000\000\000\000\029\228\000\000\000\000\000\001k\128\000\000\r\180\000\000\000\000\000\000\000\000\000\000\152\252\000\000\024\144\000\000\027\210\000\000\t\244\000\000\000\000\000\000\027\230\000\000'v\000\000\000\000\000\000\007\168\000\000\000\000\000\000\000d\000\000\000\000\000\000\030\178\000\000\000\000\000\000\030\240\000\001a\244\000\000\139\128\000\000\000\000\000\001c\230\000\000\024\144\000\001a\244\000\000$\142\000\000\000\000\000\000\027\230\000\000)\230\000\000\000\000\000\000\027\230\000\000\027\198\000\000\000\000\000\000\027\230\000\000*\212\000\000\000\000\000\001\\`\000\000\000\000\000\000\027\230\000\000+`\000\000\000\000\000\000\027\230\000\000\"\146\000\000\000\000\000\000\027\230\000\000+\210\000\000\000\000\000\001\153 \000\000\000\000\000\000\024\144\000\000\027\210\000\001\153 \000\000\000\000\000\000\030\138\000\000\001\004\000\000\003\150\000\000\004.\000\001\156\148\000\000\027\230\000\001\151\142\000\001\135\204\000\000\000\000\000\000\011j\000\000\018\030\000\000\011\018\000\000\011\152\000\001\135\204\000\001\159\224\000\000\000j\000\000\011\018\000\000\011\152\000\001\135\204\000\001\159\224\000\000\000\000\000\000\000\000\000\000\011\152\000\001\135\204\000\000\000\000\000\000\157j\000\000\1462\000\000\219L\000\000\026\016\000\000\000\003\000\000\000\000\000\000\157j\000\000\1462\000\000\030\136\000\000\030&\000\000\007\184\000\001\153\168\000\000\149\244\000\000\000\000\000\000\001\004\000\000\002\248\000\000\000\023\000\000\030\002\000\001\163\134\000\000\014\198\000\001YP\000\001\140\016\000\000\021\150\000\000\030>\000\000\030\250\000\001\157&\000\000\000\000\000\001\135\204\000\000\000\000\000\001\140\162\000\000\030\024\000\000\024P\000\000\031n\000\001\148t\000\000&\"\000\000\022\166\000\000\002>\000\000\022\020\000\000\030 \000\000\024\144\000\001\135\204\000\000\000\000\000\000\024\144\000\001\135\204\000\000\000\000\000\001YP\000\000\000\000\000\000\t,\000\000\146f\000\000(\254\000\000\024\144\000\000\015>\000\000\000\000\000\000\014\232\000\000'\236\000\000\000\000\000\000\021n\000\000\000\000\000\000'\236\000\000\000\000\000\000\030\182\000\000\030`\000\000\148\026\000\000\024\144\000\000\225\150\000\001YP\000\000\021\254\000\000\000\000\000\000&*\000\000\b\142\000\000\016`\000\000\022d\000\000\000\000\000\000\019\130\000\000\000\000\000\000\030\204\000\000\030<\000\001YP\000\000\154\232\000\000\000\000\000\000\024\144\000\000\r2\000\000\016\162\000\000\000\000\000\000\022\162\000\000\000\000\000\000\030\212\000\000\030D\000\001\163\134\000\000\154\232\000\000\000\000\000\000\024\144\000\000\148\026\000\000\030\250\000\000\017\000\000\000\000j\000\000\000\003\000\000\t\178\000\000\148\026\000\001YP\000\000\022\148\000\000\0118\000\000\000\000\000\001YP\000\000\002x\000\000\t~\000\000\000\000\000\000\000\000\000\001\1414\000\000\000\000\000\000\000\003\000\000\021\166\000\000\148\026\000\001\141\198\000\000\154\232\000\000\000\000\000\000\024\144\000\001YP\000\000\023\212\000\001YP\000\000(\018\000\000\154\232\000\000\000\000\000\000\030p\000\000\000\000\000\000\154\232\000\000\000\000\000\000\000\000\000\000&*\000\000\000\000\000\001\135\204\000\001\160h\000\000\024\144\000\000\015>\000\000\014\232\000\000\030\224\000\000\030\134\000\000\148\026\000\001\135\204\000\001\160h\000\000\000\000\000\000\000\000\000\000\024\144\000\000\015>\000\000\014\232\000\000\030\254\000\001n\210\000\000\149$\000\000\156\216\000\000\024\144\000\000\1572\000\000\217 \000\000\024\222\000\000\b\142\000\000\022\192\000\000\000\000\000\000\031\016\000\000\015\144\000\000\000\003\000\000\000\000\000\000\030\194\000\000\000\003\000\000\000\000\000\000\226\180\000\000\000\000\000\000\016\140\000\000\023\020\000\000\000\000\000\000\022\220\000\000\000\000\000\000\031.\000\000\030\166\000\001YP\000\000\228\192\000\000\031@\000\000\016\174\000\000\000\003\000\000\000\000\000\000\030\230\000\000\000\003\000\000\000\000\000\000\024\224\000\000\b\134\000\000\018\222\000\000\000\000\000\000\031V\000\001o\128\000\001\164<\000\000\b\214\000\000\030\242\000\001YP\000\000\024\166\000\000\000\003\000\000\000\000\000\000\031\016\000\000\000\003\000\000\000\000\000\000\000\000\000\000\226\180\000\000\000\000\000\000\017\170\000\000\021v\000\000\000\000\000\000\023\192\000\000\000\000\000\000\031\128\000\000\030\242\000\001\163\134\000\000\000\000\000\000\031\134\000\001p.\000\001\164\174\000\000\b\214\000\000\031\016\000\001YP\000\000\024\174\000\000\000\003\000\000\000\000\000\000\031(\000\000\000\003\000\000\000\000\000\000\000\000\000\000\024\144\000\000\000\003\000\000\226\180\000\000\000\000\000\000\024\194\000\000\024\144\000\000\156\216\000\000\156\216\000\001X\162\000\000\157j\000\000\024\144\000\001e\204\000\001k\002\000\000\014\242\000\000\000\000\000\000\019<\000\000\000j\000\000\000\003\000\000\022\024\000\000\156\216\000\001YP\000\000\022\184\000\000\015\176\000\000\000\000\000\000\024\144\000\001n\210\000\001n\210\000\000\156\216\000\000\021\252\000\000\156\216\000\000\000\000\000\000\150:\000\000\151H\000\000\000\000\000\001y\166\000\000\000\000\000\000\000\000\000\001z^\000\000\000\000\000\000\000\000\000\001{\022\000\000\000\003\000\000\022\148\000\000\156\216\000\001{\206\000\001e\204\000\001k\002\000\000\014\242\000\000\000\000\000\000\t,\000\000\000\000\000\001` \000\001\134\212\000\001k\134\000\000\031\164\000\001` \000\001YP\000\000\t~\000\000\031\178\000\001` \000\001k\134\000\000\031\186\000\001` \000\000\022\178\000\000\031,\000\001\142\128\000\001\143\182\000\000\000\000\000\001\157\148\000\000\000\000\000\000\000\000\000\000 \004\000\000\000\000\000\000&\252\000\000\031\212\000\000\000\000\000\000\226\180\000\000\000\000\000\000\156\216\000\000&\252\000\000\226\180\000\000\000\000\000\000\024\144\000\001YP\000\000\226\180\000\000\000\000\000\000\031t\000\000\000\000\000\000\226\180\000\000\000\000\000\000\000\000\000\000\217 \000\000\000\000\000\001\154:\000\001` \000\000\031~\000\000\156\216\000\001\154\194\000\001n\210\000\000\000\000\000\001\135\204\000\001\160\226\000\000\024\144\000\000\015>\000\000\014\232\000\000\031\234\000\001n\210\000\001\135\204\000\001\160\226\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169X\000\000\156V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\157\250\000\000\000\000\000\001\135\204\000\000\000\000\000\000\152\252\000\000\024\144\000\000\027\210\000\001\153 \000\000\000\000\000\001\161\\\000\000\024|\000\000\222\134\000\000\031\236\000\001\144\232\000\001\150\224\000\000\000\000\000\001\135\242\000\001\161\\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\135\204\000\001\169X\000\000\000\000\000\000\000\000\000\000\000\000\000\001\157\250\000\000 :\000\000\000\000\000\000 V\000\000\000\000\000\001\135\204\000\001\169X\000\000\000\000\000\000\000\000\000\000 X\000\000\000\000\000\000\000\000\000\000 X\000\000*\144\000\000\031n\000\000\031n\000\001\145z\000\000&\"\000\000\024\144\000\000\000\000\000\000\024\144\000\000\000\000\000\001\135\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\145\188\000\000&\"\000\000\024\144\000\000\000\000\000\000\024\144\000\000\000\000\000\000\023\130\000\001\144\232\000\001\150\224\000\000\000\000\000\001\135\242\000\000\000\000\000\000 Z\000\000*\144\000\000\031n\000\001\135\204\000\000\000\000\000\000\031\198\000\000\000\000\000\001|\132\000\000,\"\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\001\167\236\000\000\031\174\000\001}\000\000\000\021\242\000\000 D\000\000\031\186\000\001YP\000\000\023>\000\000\000\000\000\000\000\000\000\000\219L\000\000\000\000\000\000\000\000\000\001\1684\000\000\157*\000\000\000\000\000\001YP\000\000\023\174\000\000\000\000\000\000\217 \000\000\031\232\000\000\000\000\000\000#\164\000\000\020\026\000\000$\194\000\001c\230\000\000\024\144\000\001a\244\000\000\140\158\000\000\141\188\000\000\031\208\000\000\216:\000\000\023\206\000\000 Z\000\000\000\177\000\000 \158\000\000\000\000\000\000\000\000\000\000\020\026\000\000%\224\000\001c\230\000\000\024\144\000\001a\244\000\000\142\218\000\000\143\248\000\000 \210\000\001a\244\000\000\145\022\000\000\000\000\000\000 \168\000\000\000\000\000\000%H\000\001\163\134\000\000\t\138\000\000\011\142\000\000\024\144\000\001\146n\000\000\000\000\000\000\000\000\000\000\030\196\000\001\154$\000\000\000\000\000\000\000\000\000\000 \028\000\000\000\000\000\000\017\002\000\001YP\000\000\023\196\000\000\019`\000\001YP\000\001\003\000\000\001:\170\000\000\000\000\000\001p\148\000\001\003\250\000\001;\164\000\000 ~\000\001YP\000\001\004\244\000\001<\158\000\000\000\000\000\001p\148\000\001\005\238\000\001=\152\000\001\158|\000\000\018H\000\000 \204\000\000\000\000\000\000\000\000\000\001\143.\000\001\144H\000\001\151\252\000\000\031n\000\000\000\000\000\000\000\000\000\000\000\000\000\001\152\142\000\000\000\000\000\001\144H\000\000\018H\000\000 \208\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\226\000\000\155\136\000\000\154|\000\000\018H\000\000 \218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018H\000\000 \222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\146\000\000\000\000\000\001\135\242\000\000\000\000\000\000 \214\000\000*\144\000\000 N\000\000\158R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\178\000\001\144\232\000\001\158\244\000\001\146\146\000\000\000\000\000\001\135\242\000\000\000\000\000\000 \240\000\000*\144\000\000 N\000\000\158R\000\000\000\000\000\000\221t\000\000\025v\000\000\000*\000\000\000j\000\000\001*\000\001\135\242\000\000\000\000\000\000\000j\000\000\001*\000\001\135\242\000\000\000\000\000\000!\228\000\000\001\004\000\000\003\150\000\000\004.\000\001\156\148\000\000\027\230\000\001s\210\000\000\000\000\000\000\011j\000\000\020Z\000\000\"<\000\000\001*\000\001\135\242\000\000\000\000\000\000\011\018\000\000 N\000\000\027\230\000\001\159\\\000\001Vh\000\000\000j\000\000\011\018\000\000 P\000\000\027\230\000\001\159\\\000\001Vh\000\000\000\000\000\000\000\000\000\000\020\136\000\000\000\003\000\001s\210\000\000\000\000\000\000\027\230\000\001\161\196\000\000\158R\000\000\000\000\000\000\r\190\000\000\000\000\000\000\030\024\000\000\024P\000\000\031n\000\001\144H\000\000\146f\000\000\024\144\000\000\015>\000\000\014\232\000\000!\000\000\000 r\000\001` \000\000\158R\000\001\169\162\000\000\024\144\000\000\015>\000\000\014\232\000\000!\b\000\000 x\000\001` \000\000\158R\000\001\169\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\158R\000\000\000\000\000\000\153\026\000\000\024\144\000\000\027\230\000\001\159\\\000\001YP\000\000\000\000\000\001\161\\\000\000\000\000\000\001\169\194\000\000\024|\000\000\222\134\000\000!\016\000\000\024t\000\000 \132\000\001\146\146\000\000\000\000\000\001\135\242\000\001\169\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\240\000\000\000\000\000\000\018\204\000\001YP\000\000\023\214\000\000\019n\000\001YP\000\001\006\232\000\001>\146\000\000\000\000\000\001p\148\000\001\007\226\000\001?\140\000\000!8\000\001YP\000\001\b\220\000\001@\134\000\000\000\000\000\001p\148\000\001\t\214\000\001A\128\000\000\023\132\000\001YP\000\001\n\208\000\001Bz\000\000\000\000\000\001p\148\000\001\011\202\000\001Ct\000\000!H\000\001YP\000\001\012\196\000\001Dn\000\000\000\000\000\001p\148\000\001\r\190\000\001Eh\000\001\170\186\000\001\155\212\000\000\019>\000\001YP\000\000\024\194\000\000\024\196\000\001YP\000\001\014\184\000\001Fb\000\000\000\000\000\001p\148\000\001\015\178\000\001G\\\000\000!X\000\001YP\000\001\016\172\000\001HV\000\000\000\000\000\001p\148\000\001\017\166\000\001IP\000\000\025:\000\001YP\000\001\018\160\000\001JJ\000\000\000\000\000\001p\148\000\001\019\154\000\001KD\000\000!`\000\001YP\000\001\020\148\000\001L>\000\000\000\000\000\001p\148\000\001\021\142\000\001M8\000\000\031\252\000\001\155<\000\000\015H\000\001YP\000\001\022\136\000\001N2\000\000\000\000\000\001p\148\000\001\023\130\000\001O,\000\000!b\000\001YP\000\001\024|\000\001P&\000\000\000\000\000\001p\148\000\001\025v\000\001Q \000\000!\026\000\001\155<\000\000\228\186\000\001YP\000\001\026p\000\001R\026\000\000\000\000\000\001p\148\000\001\027j\000\001S\020\000\000!p\000\001YP\000\001\028d\000\001T\014\000\000\000\000\000\001p\148\000\001\029^\000\001U\b\000\001p\190\000\000\000\000\000\001qt\000\000+\192\000\000\000\000\000\000\b8\000\0001\016\000\000\000\000\000\001\169\n\000\000\230\004\000\000\007\184\000\0002.\000\000\004.\000\000\226\140\000\000\007\184\000\0002B\000\000\016\254\000\000\004.\000\000\220\144\000\001mT\000\001\135\204\000\000\000\000\000\000!\162\000\000\000\000\000\000\000\003\000\000 \232\000\000\000\003\000\000 \240\000\000\000\000\000\000!\b\000\000\000\000\000\000\000\000\000\001YP\000\000!\n\000\000\000\000\000\000\000\000\000\000\"\134\000\001fF\000\000!\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\182\000\000\020t\000\001r\022\000\000!\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\024\000\000\000\000\000\000&\"\000\000\000\000\000\000! \000\000\000\000\000\001YP\000\000\000\000\000\000\005J\000\000\000\000\000\000\000\003\000\000!\"\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\000\000\004^\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\189\000\000\000\000\000\000\027\210\000\000\000\000\000\000\005|\000\000\000\000\000\000\027\230\000\000\000\000\000\000\000\210\000\000\000\000\000\000\018\180\000\000\000\000\000\000!&\000\000\000\000\000\000\219L\000\000(\166\000\000\000\000\000\000\000\000\000\000\021 \000\000!>\000\000\000\000\000\000\000\000\000\000!0\000\000\021\146\000\000\147>\000\000\004.\000\001\149t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001i\168\000\000\004.\000\001\149\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001p\222\000\000\000\000\000\000\000\000\000\000!\244\000\000\000\000\000\001zT\000\000\000\000\000\000\026\014\000\000!\248\000\000\000\000\000\000\"\000\000\000\000\000\000\000\148J\000\000\148J\000\001\1708\000\001\1708\000\000\000\000\000\000\000\000\000\001q\148\000\001\1708\000\000\000\000\000\000\000\000\000\000\000\000\000\001q\148\000\001\1708\000\000!V\000\000\000\000\000\000!Z\000\000\000\000"), (16, "\004A\000\006\004A\004\210\004A\003\146\003\150\003\154\004A\003\158\003j\004A\003\170\004A-\131\bf\004A\bj\nA\004A\004A\004A\014~\004A\004A\004A\001\234\004\218\002]\002]\bn\004A\t^\tb\019\026\004A\003\182\004A\t\130\b2\br\001\006\t\134\001\190\004A\004A\004A\t\178\t\182\004A\t\186\t\198\t\210\t\214\t\222\r\150\000\n\004A\004A\003\138\006\249\006\249\t\206\014\250\004A\004A\004A\014\254\015\002\015\014\015\026\015.\031\030\004A\nZ\004A\004A\004A\004A\004A\004A\004A\004A\004A\015>\004A\nr\nv\002]\015\022\004A\004\242\004A\004A\004A\001f\001^\015J\015b\017\166\n\138\n\142\004A\017\186\004A\004A\r\238\004A\004A\004A\004A\015&\001v\015*\001\134\027~\004A\029j\004A\004A\000\242\004A\004A\004A\004A\004A\004A\004A\n\146\0152\004A\004A\004A\017:\007\166\004A\004A\017\190\002]\004A\004A\004A\004A\019\133\004a\019\133\004\210\019\133\015r\019\133\019\133\019\133\014j\019\133\019\133\019\133\019\133\001\230\019\133\019\133\025~\004a\019\133\019\133\019\133\000\n\019\133\019\133\019\133\019\133\004\218\019\133\000\242\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\026\238\002]\019\133\002]\019\133\rR\019\133\019\133\019\133\019\133\019\133\019\133\015v\019\133\015\246\019\133\002]\019\133\t\218\019\133\019\133\019\133\003\226\029\242\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133-\163\019\133\011\218\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\001\229\019\133\019\133\019\133\019\133\019\133\019\133\006>\019\133\019\133\019\133\001b\004\210\004~\004\165\019\133\019\133\019\133\019\133\ti\019\133\019\133\001n\019\133\019\133\019\133\019\133\019\133\019\133\019\133\025\150\019\133\019\133\000\242\019\133\019\133\004\218\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\019\133\026z\001r\019\133\019\133\019\133\019\133\001\229\001\229\001\229\006\249\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\019M\000\242\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\019M\001\229\001\229\006\210\001\229\rR\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\012\177\001\229\027F\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\004\210\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001b\001\229\001\229\001\229\004\165\004\218\000\242\004\245\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\n\250\017Z\001\229 \174\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\014\133\002\178\014\133\006\249\014\133\006\249\014\133\014\133\014\133\012\177\014\133\014\133\014\133\014\133\001~\014\133\014\133\rJ\000\242\014\133\014\133\014\133\002\218\014\133\014\133\014\133\014\133\003\174\014\133':\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\006\249\004\245\014\133\001\142\014\133\003\n\014\133\014\133\014\133\014\133\014\133\014\133\006\249\014\133\006\249\014\133\006\249\014\133\tq\014\133\014\133\014\133\rB\006\006\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\004F\014\133\012\241\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\006\249\014\133\014\133\014\133\014\133\014\133\014\133\001\130\014\133\014\133\014\133\001\186\000\242\000\242\001\230\014\133\014\133\014\133\014\133\012\229\014\133\014\133\000\242\014\133\014\133\014\133\014\133\014\133\017\222\014\133\001\242\018F\014\133\000\242\014\133\014\133\005\005\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\014\133\n\017\014\133\014\133\014\133\014\133\014\133\005%\003\226\005%\005\210\005%\000\242\005%\005%\005%\006\249\005%\005%\005%\005%\006\249\005%\005%\001\246\006\n\005%\005%\005%\000\242\005%\005%\005%\005%\005\218\005%\012\241\005%\005%\005%\005%\005%\005%\005%\005%\005v\003\242\005%\bR\005%\bb\005%\005%\005%\005%\005%\005%\003\242\005%\n\025\005%\003\250\005%\n\025\005%\005%\005%\012\229\005\005\005%\005%\005%\005%\005%\005%\005%\005%\003&\005%\n\029\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\003\242\017\206\005%\005%\017\214\005%\018>\rR\005%\005%\005%-s\025~\003\242\000\242\005%\005%\005%\005%\003\254\005%\005%\001\198\005%\005%\005%\005%\005%\017\222\005%\004\n\018F\005%\027\002\005%\005%\004\253\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\005%\n\025\005%\005%\005%\005%\005%\005\021\n\029\005\021\004z\005\021\003\254\005\021\005\021\005\021\014\210\005\021\005\021\005\021\005\021\015\n\005\021\005\021\019Q\0042\005\021\005\021\005\021\000\242\005\021\005\021\005\021\005\021\003*\005\021\000\242\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\019Q\014\198\005\021\b\138\005\021&\198\005\021\005\021\005\021\005\021\005\021\005\021\025\150\005\021\n1\005\021\000\242\005\021\n1\005\021\005\021\005\021\004\210\004\253\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021-S\005\021\016V\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\004\218\017\206\005\021\005\021\017\214\005\021\018>\rR\005\021\005\021\005\021-\147\001b\004\165\002\002\005\021\005\021\005\021\005\021\004\166\005\021\005\021\003\242\005\021\005\021\005\021\005\021\005\021\017\222\005\021\014\214\018F\005\021\000\242\005\021\005\021\006\145\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\005\021\nJ\005\021\005\021\005\021\005\021\005\021\014%\002\190\014%\ty\014%\015\142\014%\014%\014%\b\193\014%\014%\014%\014%\025J\014%\014%\001\230\r\242\014%\014%\014%\000\242\014%\014%\014%\014%\004\146\014%\003:\014%\014%\014%\014%\014%\014%\014%\014%\001\146\b\193\014%\b\193\014%\rR\014%\014%\014%\014%\014%\014%\003B\014%\019-\014%\014.\014%\023z\014%\014%\014%\004\210\006\145\014%\014%\014%\014%\014%\014%\014%\014%\025R\014%\004\210\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\004\218\014%\014%\014%\014%\014%\014%\rR\014%\014%\014%\b\166\004\218\b\186\005\138\014%\014%\014%\014%\007\142\014%\014%\017\026\014%\014%\014%\014%\014%\014%\014%\016\030\014%\014%\018\158\014%\014%\006\137\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\014%\002\026\001\242\014%\014%\014%\014%\0145\031\022\0145\b\"\0145\015\194\0145\0145\0145\019-\0145\0145\0145\0145\002\226\0145\0145\016N\002\006\0145\0145\0145\000\242\0145\0145\0145\0145\t\230\0145\012\198\0145\0145\0145\0145\0145\0145\0145\0145\005\138\002\030\0145\001\246\0145\007\158\0145\0145\0145\0145\0145\0145\nI\0145\002V\0145\nI\0145\023\158\0145\0145\0145\002\"\006\137\0145\0145\0145\0145\0145\0145\0145\0145\002\134\0145\006\165\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\025~\0145\0145\0145\0145\0145\0145\rR\0145\0145\0145\002\150\nI\002\234\006\249\0145\0145\0145\0145\003\182\0145\0145\b2\0145\0145\0145\0145\0145\0145\0145\007\166\0145\0145\000\242\0145\0145\006\249\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\0145\005\018\006\249\0145\0145\0145\0145\014-\006\249\014-\004\210\014-\006\249\014-\014-\014-\b\253\014-\014-\014-\014-\000\242\014-\014-\025~\000\242\014-\014-\014-\002\130\014-\014-\014-\014-\004\218\014-\002\238\014-\014-\014-\014-\014-\014-\014-\014-\025\150\016\006\014-\016:\014-\rR\014-\014-\014-\014-\014-\014-\002\250\014-$Z\014-\011\017\014-\023\194\014-\014-\014-\019)\026\154\014-\014-\014-\014-\014-\014-\014-\014-\003\178\014-\006\161\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\004F\014-\014-\014-\014-\014-\014-\016j\014-\014-\014-\012\173\004\210\000\242\006\249\014-\014-\014-\014-\b\253\014-\014-\004\002\014-\014-\014-\014-\014-\014-\014-\025\150\014-\014-\000\242\014-\014-\004\218\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\014-\030\210\000\242\014-\014-\014-\014-\014\025\000\242\014\025\004\210\014\025\005*\014\025\014\025\014\025\031\002\014\025\014\025\014\025\014\025$^\014\025\014\025\019)\025\026\014\025\014\025\014\025\003\022\014\025\014\025\014\025\014\025\004\218\014\025\006\249\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025!\162\014\198\014\025\016\162\014\025\rR\014\025\014\025\014\025\014\025\014\025\014\025\012\173\014\025\001\230\014\025\000\242\014\025\023\234\014\025\014\025\014\025\004\210\r\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014~\014\025\004\210\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\004\218\014\025\014\025\014\025\014\025\014\025\014\025\016\194\014\025\014\025\014\025\004F\004\218\003\242\003R\014\025\014\025\014\025\014\025\023*\014\025\014\025\t\154\014\025\014\025\014\025\014\025\014\025\014\025\014\025\031\006\014\025\014\025\025\030\014\025\014\025\016\170\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\014\025\b\250\b\254\014\025\014\025\014\025\014\025\014!\n\002\014!\n\022\014!\021\226\014!\014!\014!\r\182\014!\014!\014!\014!\001\230\014!\014!\022\174\nn\014!\014!\014!\000\242\014!\014!\014!\014!\n\182\014!\n\202\014!\014!\014!\014!\014!\014!\014!\014!\006\249\006\249\014!\t\006\014!\b\022\014!\014!\014!\014!\014!\014!\005\014\014!\006F\014!\006\249\014!\024\014\014!\014!\014!\003\234\021\202\014!\014!\014!\014!\014!\014!\014!\014!'\158\014!\016\202\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\r\254\014!\014!\014!\014!\014!\014!\rR\014!\014!\014!\000\242\004\210\000\242\000\242\014!\014!\014!\014!\014\006\014!\014!\r\178\014!\014!\014!\014!\014!\014!\014!\b\026\014!\014!\000\242\014!\014!\004\218\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\014!\006J\014v\014!\014!\014!\014!\014\029\007\141\014\029\t\n\014\029\014~\014\029\014\029\014\029\007\190\014\029\014\029\014\029\014\029\014\130\014\029\014\029\029\026\004J\014\029\014\029\014\029\000\242\014\029\014\029\014\029\014\029\006\218\014\029\005\222\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\029\"\014\198\014\029\029\138\014\029\rR\014\029\014\029\014\029\014\029\014\029\014\029\005\238\014\029\004\002\014\029\000\242\014\029\0242\014\029\014\029\014\029\004\002\021\234\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\004\222\014\029\000\242\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\004F\014\029\014\029\014\029\014\029\014\029\014\029\rR\014\029\014\029\014\029\011:\025~\011N\004\014\014\029\014\029\014\029\014\029\012\253\014\029\014\029\003\226\014\029\014\029\014\029\014\029\014\029\014\029\014\029\017~\014\029\014\029\028\170\014\029\014\029!b\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\014\029\006\138\004\230\014\029\014\029\014\029\014\029\014)\005\170\014)!j\014)\000\242\014)\014)\014)\025~\014)\014)\014)\014)\012B\014)\014)\025~\007a\014)\014)\014)\000\242\014)\014)\014)\014)\011=\014)\005\226\014)\014)\014)\014)\014)\014)\014)\014)\028\190\012J\014)\025~\014)\t\245\014)\014)\014)\014)\014)\014)\025\150\014)\b\154\014)\017\226\014)\024^\014)\014)\014)\012\253\0222\014)\014)\014)\014)\014)\014)\014)\014)\024\250\014)\025\006\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\004F\014)\014)\014)\014)\014)\014)\rR\014)\014)\014)\r\178\004\210\000\242\001\230\014)\014)\014)\014)\006\222\014)\014)\025\150\014)\014)\014)\014)\014)\014)\014)\025\150\014)\014)\005\246\014)\014)\004\218\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\014)\026\182\025\150\014)\014)\014)\014)\0149\t>\0149\b\194\0149\007\030\0149\0149\0149\025~\0149\0149\0149\0149\n9\0149\0149\b\214\030\234\0149\0149\0149\000\242\0149\0149\0149\0149)\162\0149\b\206\0149\0149\0149\0149\0149\0149\0149\0149\003\154\0142\0149\0306\0149\b\226\0149\0149\0149\0149\0149\0149\004F\0149\b\182\0149\023.\0149\024\130\0149\0149\0149\004\210\022\182\0149\0149\0149\0149\0149\0149\0149\0149\023F\0149\023R\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\004\218\0149\0149\0149\0149\0149\0149\rR\0149\0149\0149\004F \234\000\242\r\146\0149\0149\0149\0149\002}\0149\0149\025\150\0149\0149\0149\0149\0149\0149\0149\005\138\0149\0149 \242\0149\0149\tN\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\026\206\007\017\0149\0149\0149\0149\0141+\218\0141\019\185\0141 j\0141\0141\0141\025~\0141\0141\0141\0141\003\154\0141\0141\019\185\n\029\0141\0141\0141\n\029\0141\0141\0141\0141\011\170\0141\011\190\0141\0141\0141\0141\0141\0141\0141\0141\t\158\012\158\0141\012\178\0141\005F\0141\0141\0141\0141\0141\0141\t\246\0141\007\017\0141\023n\0141\024\166\0141\0141\0141\t\146\006j\0141\0141\0141\0141\0141\0141\0141\0141\023\146\0141\023\182\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\t\162\0141\0141\0141\0141\0141\0141\004F\0141\0141\0141\000\242\"\146\003\242!6\0141\0141\0141\0141\015\n\0141\0141\025\150\0141\0141\0141\0141\0141\0141\0141\003\182\0141\0141\b2\0141\0141\"\178\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\0141\028\214!>\0141\0141\0141\0141\014q\012\210\014q\012\230\014q\b\169\014q\014q\014q\025~\014q\014q\014q\014q!f\014q\014q\"\186\014J\014q\014q\014q\0282\014q\014q\014q\014q\b\149\014q\007\186\014q\014q\014q\014q\014q\014q\014q\014q\011E\006\249\014q\r\n\014q\r\030\014q\014q\014q\014q\014q\014q\017\026\014q\r\t\014q\024R\014q\024\194\014q\014q\014q\004\210\018\158\014q\014q\014q\014q\014q\014q\014q\014q\024v\014q\024\154\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\004\218\014q\014q\014q\014q\014q\014q\006\170\014q\014q\014q\007\246\"\218\000\242\000\242\014q\014q\014q\014q\006\254\014q\014q\025\150\014q\014q\014q\014q\014q\014q\014q\003\182\014q\014q\b2\014q\014q#>\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\014q\028\238\007\190\014q\014q\014q\014q\005\017\007>\005\017#F\005\017'\202\005\017\005\017\005\017\r\t\005\017\005\017\005\017\005\017\001\230\005\017\005\017\000\242\004Z\005\017\005\017\005\017!\150\005\017\005\017\005\017\005\017\0115\005\017\007\254\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\b\250\b\254\005\017\bF\005\017\b\006\005\017\005\017\005\017\005\017\005\017\005\017\n\018\005\017\b\014\005\017\031\226\005\017\014\"\005\017\005\017\005\017\nb\r\021\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\bJ\005\017\n\198\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\bV\017\206\005\017\005\017\017\214\005\017\018>\004\002\005\017\005\017\005\017\000\242\029r\b^\004]\005\017\005\017\005\017\005\017\r\178\005\017\005\017\b\157\005\017\005\017\005\017\005\017\005\017\017\222\005\017\002v\018F\005\017\000\242\005\017\005\017\011J\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\005\017\nb\005\017\005\017\005\017\005\017\005\017\014\t\b\142\014\t\004\210\014\t\029v\014\t\014\t\014\t\007\190\014\t\014\t\014\t\014\t\"\250\014\t\014\t\001\246\007\190\014\t\014\t\014\t\000\242\014\t\014\t\014\t\014\t\004\218\014\t\b\146\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\0115\006\249\014\t\r:\014\t\r~\014\t\014\t\014\t\014\t\014\t\014\t\011\186\014\t\012\174\014\t\r\134\014\t\030\158\014\t\014\t\014\t\004\210\012\226\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t!B\014\t\r\026\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\004\218\017\206\014\t\014\t\017\214\014\t\018>*\178\014\t\014\t\014\t\000\242'\214\000\242\000\242\014\t\014\t\014\t\014\t*\190\014\t\014\t\000\242\014\t\014\t\014\t\014\t\014\t\017\222\014\t\014N\018F\014\t\000\242\014\t\014\t\b\173\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\014\t\017\162\014\t\014\t\014\t\014\t\014\t\002\141\016\006\002\141\016\026\002\141+F\003\150\003\154\002\141\b\158\003j\002\141\018\022\002\141\027.\bf\002\141\001\246\rM\002\141\002\141\002\141#\210\002\141\002\141\002\141\001\234\017\"\018.\0172\bn\002\141\002\141\002\141\002\141\002\141\0186\002\141\b\250)N\br\014:\t\134\004F\002\141\002\141\002\141\002\141\002\141\002\141\004F\t\198\014N\001\190)^\002\141\015\006\002\141\002\141\003\138\014b\b\170\t\206\014\250\002\141\002\141\002\141\014\254\015\002\015\014\b\174\023b\n\r\002\141\nZ\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\022\002\017\206\nr\nv\017\214\015\022\018>\018\178\002\141\002\141\002\141\028\138-\014\t\018\001\246\002\141\n\138\n\142\002\141\t\022\002\141\002\141\r\178\002\141\002\141\002\141\002\141\015&\023j\015*\rR\023\218\002\141\t\234\002\141\002\141\022v\002\141\002\141\002\141\002\141\002\141\002\141\002\141\n\146\0152\002\141\002\141\002\141\017:\007\166\002\141\002\141\t\238\003\154\002\141\002\141\002\141\002\141\014]\018\026\014]\018*\014]\021r\003\150\003\154\014]\016\250\003j\014]\014]\014]\029\158\bf\014])\150\004\225\014]\014]\014]\000\242\014]\014]\014]\001\234\018b\014]\018r\bn\014]\014]\014]\014]\014]\014]\014])\162\001\006\br\001\190\t\134\t\250\014]\014]\014]\014]\014]\014] \254\t\198\t\158\001\190\021*\014]\021:\014]\014]\003\138#B\022\206\t\206\014\250\014]\014]\014]\014\254\015\002\015\014\022f\014]\022z\014]\nZ\014]\014]\014]\014]\014]\014]\014]\014]\014]\019\205\014]\nr\nv\014]\015\022\014]\rR\014]\014]\014]\027\242\001\006\028\002\001\190\014]\n\138\n\142\014]\024N\014]\014]\t\154\014]\014]\014]\014]\015&\014]\015*\028\130\014]\014]\t\158\014]\014]!&\014]\014]\014]\014]\014]\014]\014]\n\146\0152\014]\014]\014]\017:\007\166\014]\014]\003v!\218\014]\014]\014]\014]\014Y&\210\014Y&\230\014Y!\002\003\150\003\154\014Y\nI\003j\014Y\014Y\014Y\n\006\bf\014Y\015\006 \178\014Y\014Y\014Y\000\242\014Y\014Y\014Y\001\234\014~\014Y\n\n\bn\014Y\014Y\014Y\014Y\014Y\014Y\014Y$\006\002\130\br!n\t\134\r5\014Y\014Y\014Y\014Y\014Y\014Y!:\t\198#\222\001\190!\174\014Y\r9\014Y\014Y\003\138\b\177\003v\t\206\014\250\014Y\014Y\014Y\014\254\015\002\015\014\"\190\014Y#\234\014Y\nZ\014Y\014Y\014Y\014Y\014Y\014Y\014Y\014Y\014Y\014~\014Y\nr\nv\014Y\015\022\014Y\011A\014Y\014Y\014Y\021r\"\134\003\242\029Z\014Y\n\138\n\142\014Y\n6\014Y\014Y\b\149\014Y\014Y\014Y\014Y\015&\014Y\015*$>\014Y\014Y\n\174\014Y\014Y\b\153\014Y\014Y\014Y\014Y\014Y\014Y\014Y\n\146\0152\014Y\014Y\014Y\017:\007\166\014Y\014Y&\226\"\182\014Y\014Y\014Y\014Y\002\229\n\186\002\229\014~\002\229\019\193\003\150\003\154\002\229!\182\003j\002\229\018\022\002\229\001\230\bf\002\229\n\190$\146\002\229\002\229\002\229\011\146\002\229\002\229\002\229\001\234!\182\018.\011>\bn\002\229\002\229\002\229\002\229\002\229\0186\002\229\001\230\000\242\br#J\t\134\011B\002\229\002\229\002\229\002\229\002\229\002\229'\n\t\198\n\021\001\190*\254\002\229\n\021\002\229\002\229\003\138&z'\210\t\206\014\250\002\229\002\229\002\229\014\254\015\002\015\014*\186\023b\006\249\002\229\nZ\002\229\002\229\002\229\002\229\002\229\002\229\002\229\002\229\002\229(\206\002\229\nr\nv\007\202\015\022\002\229\0119\002\229\002\229\002\229\000\242'F\011\134'V\002\229\n\138\n\142\002\229\011\150\002\229\002\229\000\242\002\229\002\229\002\229\002\229\015&\006\249\015*\000\242\000\242\002\229\006\249\002\229\002\229\006\249\002\229\002\229\002\229\002\229\002\229\002\229\002\229\n\146\0152\002\229\002\229\002\229\017:\007\166\002\229\002\229\n\021\006\249\002\229\002\229\002\229\002\229\006\249\004F\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249!\246\006\249\000\242\006\249\006\249\n>\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\011\174\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\000\242+N\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249+R\006\249\006\249\006\249\006\249\000\242\006\249\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249\006\249\007\218\006\249\006\249\000\242\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\006\249\000\242\000\242\006\249\006\249\002V\t\253\006\249\003V\006\249\006\249\011\178#\026\011\246\bf\006\249#z\006\249\002]\006\249\r\025\012\014\006\249\006\249\006\249\006\249,b+\146\006\249\006\249\006\249\006\249\n\226\006\249\002V\000\165\006\249\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\n\000\165\n\230\000\165\000\165\002\234\000\165\000\165\000\165#\166\004\238\000\165\000\165\004F\000\165\000\165\000\165\000\165\000\242\000\165\012^\000\165\000\165\"~\"\242\000\165\000\165\000\165\nZ\000\165\000\165\000\165\002]\000\165\002\234\012j\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165 *\r\025\000\165\000\165\003\242\t\158\000\165\000\165\000\165\n\138\000\165\000\165\000\165\000\165\000\165\000\165\007\017\000\165\000\165\000\165\000\165\011\021\012\162\000\165\012\166\012\202\000\165\004F\000\165\000\165\000\165\000\165\012\214\000\165\000\165\012\218\030\014\n\146\r\002\r\025\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\165\017^\004\237\001\190\000\165\002V)\002\000\165\002\250\000\165\r\014\000\226\025j\026\158\tN\000\165\000\242\026\210\027\006\027\018-\n\029r\000\165\000\165\000\165\000\165\005\234\r\018\000\165\000\165\000\165\b\157\002\201\000\165\002\201\r>\002\201\002\250\003\150\003\154\002\201\rr\003j\002\201\rz\002\201\r\190\bf\002\201\r\202\002\234\002\201\002\201\002\201\r\226\002\201\002\201\002\201\001\234\014\186\015\170\015\178\bn\002\201\002\201\002\201\002\201\002\201\015\230\002\201\015\242\011\162\br\029v\t\134\011n\002\201\002\201\002\201\002\201\002\201\002\201\011\222\t\198\016\n\015\018\016\014\002\201\011\230\002\201\002\201\003\138\0162\016z\t\206\014\250\002\201\002\201\002\201\014\254\015\002\015\014\016\130\016\138\016\214\002\201\nZ\002\201\002\201\002\201\002\201\002\201\002\201\002\201\002\201\002\201\016\222\017\206\nr\nv\017\214\015\022\018>\017\006\002\201\002\201\002\201\017&\017.\017\210\018\030\002\201\n\138\n\142\002\201\018&\002\201\002\201\0182\002\201\002\201\002\201\002\201\015&\017\222\015*\002\250\018F\002\201\018B\002\201\002\201\t\169\002\201\002\201\002\201\002\201\002\201\002\201\002\201\n\146\0152\002\201\002\201\002\201\017:\007\166\002\201\002\201\r\238\014\198\002\201\002\201\002\201\002\201\011\161\018R\011\161\018f\011\161\018n\t\030\003\154\011\161\021.\000\242\011\161\0216\011\161\t\"\031b\011\161\002v\021\134\011\161\011\161\011\161\021\162\011\161\011\161\011\161\001\234\014\246\002z\021\194\b\194\011\161\011\161\011\161\011\161\011\161\001\234\011\161\021\214\021\246\014j\001\157\b\198\b\202\011\161\011\161\011\161\011\161\011\161\011\161\022\014\tv\022\030\001\137\t\014\011\161\b\206\011\161\011\161\003\138\000\242\r\194\001\157\001\246\011\161\011\161\011\161\019\017\019\017\003\138\022>\019\017\022J\011\161\001\137\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\017\206\017\206\022j\017\214\017\214\018>\018>\022n\011\161\011\161\011\161\022\194\r\170\022\218\022\234\011\161\023\022\023\"\011\161\0236\011\161\011\161\r\206\011\161\011\161\011\161\011\161\017\222\017\222\000\242\018F\018F\011\161\031f\011\161\011\161\027\234\011\161\011\161\011\161\011\161\011\161\011\161\011\161\023N\023Z\011\161\011\161\011\161\014\198\023v\011\161\011\161\023\154\001\157\011\161\011\161\011\161\011\161\002\245\023\190\002\245\023\230\002\245\000\242\001\230\001\137\002\245\019\017\024\n\002\245\024.\002\245\024Z\007\134\002\245\017\026\001\157\002\245\002\245\002\245\029\002\002\245\002\245\002\245\001\157\b:\018\158\017\026\001\137\002\245\002\245\002\245\002\245\002\245\001\157\002\245\001\137\019\017\018\158\025~\024~\024\162\002\245\002\245\002\245\002\245\002\245\002\245\024\246\003\154\003\226\012F\003\154\002\245\025\002\002\245\002\245\017\246\r%\025\014\r%\r%\002\245\002\245\002\245\025*\019\025\019\025\0252\007e\019\025\002\245\003\154\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\002\245\025f\017\206\026\142\019A\017\214\005v\018>\rQ\002\245\002\245\002\245\018J\019A\t\146\026\194\002\245\t\146\001\202\002\245\026\246\002\245\002\245\027\014\002\245\002\245\002\245\002\245\023\014\017\222\023\026\000\242\018F\002\245\027>\002\245\002\245\t\146\002\245\002\245\002\245\002\245\002\245\002\245\002\245\027r\027\146\002\245\002\245\002\245\019A\001\206\002\245\002\245\027\226\025\150\002\245\002\245\002\245\002\245\002\241\027\246\002\241\027\254\002\241\001\210\r>\004\002\002\241\028f\019\025\002\241\002]\002\241\028\146\002]\002\241\017\026\r%\002\241\002\241\002\241\002^\002\241\002\241\002\241\r%\019A\018\158\002V\028\178\002\241\002\241\002\241\002\241\002\241\028\226\002\241\0296\000\n\019\025\001\165\029^\n&\002\241\002\241\002\241\002\241\002\241\002\241\005\254\0046\029~\003\226\029\130\002\241\002]\002\241\002\241\029\174\003\186\003\198\001\165\003\222\002\241\002\241\002\241\003\210\002]\002]\031\186\002]\002]\002\241\002\234\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002]\017\206\029\206\030>\017\214\003\214\018>\030N\002\241\002\241\002\241\030b\000\n\030\142\001\230\002\241\030\154\030\222\002\241\031&\002\241\002\241\002]\002\241\002\241\002\241\002\241'\178\017\222\031. >\018F\002\241 B\002\241\002\241 b\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002] z\002\241\002\241\002\241 ~\011\242\002\241\002\241!\014\001\165\002\241\002\241\002\241\002\241\011\181\003\226\011\181!\018\011\181!J!N\004\002\011\181!v!z\011\181!\146\011\181\"\n\":\011\181\017\026\001\165\011\181\011\181\011\181\">\011\181\011\181\011\181\001\165\002\250\018\158\019U\"b\011\181\011\181\011\181\011\181\011\181\001\165\011\181\005v\"\142\029R\001\149\007\145\003j\011\181\011\181\011\181\011\181\011\181\011\181\019U\0046\"\158$\150\"\198\011\181\002\206\011\181\011\181\"\202\003\186\003\198\001\149\"\214\011\181\011\181\011\181\003\210\019\021\019\021\"\230\002\210\019\021\011\181#\002\011\181\011\181\011\181\011\181\011\181\011\181\011\181\011\181\011\181\029V\017\206#\018\001\230\017\214\003\214\018>#&\011\181\011\181\011\181#R\007\150#V#b\011\181\029b#r\011\181#\134\011\181\011\181$n\011\181\011\181\011\181\011\181\001\230\017\222$~\000\242\018F\011\181$\138\011\181\011\181+\210\011\181\011\181\011\181\011\181\011\181\011\181\011\181\025\026$\178\011\181\011\181\011\181\003\226\n\142\011\181\011\181$\190\001\149\011\181\011\181\011\181\011\181\011\201$\238\011\201%\018\011\201%:%\166\019\t\011\201\029R\019\021\011\201\003j\011\201\003\226%\238\011\201\017\026\001\149\011\201\011\201\011\201&\"\011\201\011\201\011\201\001\149\005v\018\158%\246&\014\011\201\011\201\011\201\011\201\011\201\001\149\011\201&\026&\146\019\021\001\189&\166&\202\011\201\011\201\011\201\011\201\011\201\011\201&\214\005v\nA\029V&\218\011\201\nA\011\201\011\201'\022'>'J\001\189'R\011\201\011\201\011\201\r\238'z\029b'\138'\194'\246\011\201\b\214\011\201\011\201\011\201\011\201\011\201\011\201\011\201\011\201\011\201\025\030\017\206\b\218\b\222\017\214(\030\018>(V\011\201\011\201\011\201\017\026(v\019\t(\138\011\201\b\226(\174\011\201\n\142\011\201\011\201\018\158\011\201\011\201\011\201\011\201\001\230\017\222\014j(\234\018F\011\201\t\181\011\201\011\201,\026\011\201\011\201\011\201\011\201\011\201\011\201\011\201)f)~\011\201\011\201\011\201\000\242(2\011\201\011\201\nA\001\189\011\201\011\201\011\201\011\201\011\221)\222\011\221)\226\011\221)\254*\002\019\t\011\221*v*~\011\221\003\182\011\221\003\226\b2\011\221\017\026\001\189\011\221\011\221\011\221*\222\011\221\011\221\011\221\001\189\b\214\018\158\029*+\030\011\221\011\221\011\221\011\221\011\221\001\189\011\221+r\b\218\b\222\001\181+\178+\250\011\221\011\221\011\221\011\221\011\221\011\221,B\005v,\186\b\226,\198\011\221,\206\011\221\011\221,\215,\231,\250\001\181-\022\011\221\011\221\011\221-3\002]\002])*-C-_\011\221-\179\011\221\011\221\011\221\011\221\011\221\011\221\011\221\011\221\011\221\002]\017\206-\207-\218\017\214./\018>.C\011\221\011\221\011\221.K\000\n\019\t.\135\011\221.\143\000\000\011\221\000\000\011\221\011\221\000\000\011\221\011\221\011\221\011\221\000\000\017\222\002V\000\000\018F\011\221\000\000\011\221\011\221\000\000\011\221\011\221\011\221\011\221\011\221\011\221\011\221\002]\000\000\011\221\011\221\011\221\000\000\n\137\011\221\011\221\003\154\001\181\011\221\011\221\011\221\011\221\002\205\000\000\002\205\000\000\002\205\000\000\r\238\002v\002\205\000\000\003j\002\205\000\000\002\205\bQ\002\234\002\205\017\026\001\181\002\205\002\205\002\205\000\000\002\205\002\205\002\205\001\181\031\142\018\158\000\000\000\000\002\205\002\205\002\205\002\205\002\205\001\181\002\205\023\222\000\000\t\146\001\173\000\000\000\000\002\205\002\205\002\205\002\205\002\205\002\205\000\000,\242\014j\001\246\024\002\002\205\024&\002\205\002\205\000\000\000\000\000\000\001\173\000\000\002\205\002\205\002\205\029b\bQ\000\000\000\000\000\000\000\242\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\000\000\017\206\000\000)R\017\214\bQ\018>\n\137\002\205\002\205\002\205\000\000\000\000\000\000\000\000\002\205\000\000\n\142\002\205\000\000\002\205\002\205\000\000\002\205\002\205\002\205\002\205\002\250\017\222\002V\000\000\018F\002\205\000\000\002\205\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\002\205\000\000\031\146\002\205\002\205\002\205\000\000\n\133\002\205\002\205\000\000\001\173\002\205\002\205\002\205\002\205\002\233\000\000\002\233\000\000\002\233\000\000\r\238\t\158\002\233\000\000\000\000\002\233\000\000\002\233\000\000\002\234\002\233\017\026\001\173\002\233\002\233\002\233\000\000\002\233\002\233\002\233\001\173\014\170\018\158\002V\000\000\002\233\002\233\002\233\002\233\002\233\001\173\002\233\000\000\000\000\r\238\000\000\000\000\000\000\002\233\002\233\002\233\002\233\002\233\002\233\016\022\017^\014j\027J\000\000\002\233\000\000\002\233\002\233\000\000\000\000\014\178\025j\026\158\002\233\002\233\002\233\026\210\027\006\027\018\000\000\000\000\000\242\002\233\002\234\002\233\002\233\002\233\002\233\002\233\002\233\002\233\002\233\002\233\000\000\002\233\014j\000\000\017\214\n\213\002\233\n\133\002\233\002\233\002\233\000\000\000\000\000\000\000\000\002\233\000\000\000\000\002\233\000\000\002\233\002\233\000\242\002\233\002\233\002\233\002\233\002\250\017\222\002V\000\000\018F\002\233\000\000\002\233\002\233\000\000\002\233\002\233\002\233\002\233\002\233\002\233\002\233\n\213\000\000\002\233\002\233\002\233\000\000\012\237\002\233\002\233\000\000\031J\002\233\002\233\002\233\002\233\012\005\n\213\012\005\000\000\012\005\n\213\017\154\t\158\012\005\002V\000\000\012\005\n\213\012\005\000\000\002\234\012\005\000\000\n\213\012\005\012\005\012\005\000\000\012\005\012\005\012\005\000\000\002\250\000\000\000\000\016&\012\005\012\005\012\005\012\005\012\005\000\000\012\005\000\000\000\000\000\000\000\000\000\000\000\000\012\005\012\005\012\005\012\005\012\005\012\005\000\000\n\254\000\000\000\000\002\234\012\005\000\000\012\005\012\005\000\000\000\000\000\000\n\026\n\030\012\005\012\005\012\005\012\002\000\000\n*\027\026\000\000\000\000\012\005\019A\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\000\000\017\206\000\000\019A\017\214\nz\018>\012\237\012\005\012\005\012\005\017\026\000\000\031N\000\000\012\005\031Z\000\000\012\005\000\000\012\005\012\005\018\158\012\005\012\005\012\005\012\005\002\250\017\222\000\000\000\000\018F\012\005\000\000\012\005\012\005\019A\012\005\012\005\012\005\012\005\012\005\012\005\012\005\000\000\000\000\012\005\012\005\012\005\000\000\000\000\012\005\012\005\000\000\000\000\012\005\012\005\012\005\012\005\011\241\000\000\011\241\000\000\011\241\r\238\r\238\002\250\011\241\002^\000\000\011\241\017\206\011\241\019A\017\214\011\241\018>\019A\011\241\011\241\011\241\000\000\011\241\011\241\011\241\014\222\017\134\000\000\000\000\000\000\011\241\011\241\011\241\011\241\011\241\000\000\011\241\000\000\017\222\003\154!.\018F\003j\011\241\011\241\011\241\011\241\011\241\011\241'\146\014j\014j\000\000\000\000\011\241\000\000\011\241\011\241\000\000\000\000\000\000\tZ\000\000\011\241\011\241\011\241\000\000\000\000\000\000\000\000\000\242\000\242\011\241\000\000\011\241\011\241\011\241\011\241\011\241\011\241\011\241\011\241\011\241 \166\017\206!Z\000\000\017\214\000\000\018>\000\000\011\241\011\241\011\241 \026\000\000\000\000\000\000\011\241\029b 2\011\241\000\000\011\241\011\241\000\000\011\241\011\241\011\241\011\241\000\000\017\222!\134\000\000\018F\011\241\002V\011\241\011\241\000\000\011\241\011\241\011\241\011\241\011\241\011\241\011\241\000\000\000\000\011\241\011\241\011\241\000\000\n\142\011\241\011\241\000\000\012\233\011\241\011\241\011\241\011\241\000\006\000\000\0075\n\005\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000!\234\bf\001\n\bj\000\000\000\000\002\234\003v\000\000\000\000\000\000\n\005\001\234\000\000\000\000\000\000\t\202\001\018\017f\017j\001\030\001\"\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\030\242\001&\000\000\017\138\017\142\n\005\t\186\t\198\t\210\t\214\017\146\r\150\000\000\0016\n\005\003\138\000\000\r\238\t\206\014\250\n\005\n\005\000\242\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\n\005\n\005\001:\001>\001B\001F\001J\031\014\000\000\015>\000\000\nr\nv\001N\015\022\000\000\000\000\000\000\000\000\001R\000\000\012\233\015J\015b\017\166\n\138\n\142\000\000\017\186\000\000\001V\011)\014j\n\005\000\000\011)\015&\001Z\015*\000\000\000\000\002\250\000\000\000\000\n\005\000\000\000\000\000\000\000\000\001\150\011\146\019I\000\242\n\146\0152\000\000\001\154\000\000\025^\007\166\001\162\001\166\017\190$\186\001\170\000\006\001\174\001\178\001\245\003\146\003\150\003\154\019I\003\158\003j\002\170\003\170\011)\002\174\bf\001\n\bj\000\000\000\000\000\000\017b\000\000\000\000\000\000\001\245\001\234\000\000\000\000\002\186\t\202\001\018\017f\017j\001\030\001\"\000\000\000\000\t\130\000\000\br\011)\t\134\000\000\017n\001&\000\000\017\138\017\142\001\245\t\186\t\198\t\210\t\214\017\146\r\150\000\000\0016\001\245\003\138\002\198\000\000\t\206\014\250\001\245\001\245\000\242\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\001\245\001\245\001:\001>\001B\001F\001J\011)\000\000\015>\005\206\nr\nv\001N\015\022\000\000\000\000\012\022\011\254\001R\rA\000\000\015J\015b\017\166\n\138\n\142\000\000\017\186\000\000\001V\000\000\000\000\001\245\000\000\000\000\015&\001Z\015*\002\202\000\000\000\000\000\000\000\000\001\245\000\000\002]\000\000\000\000\001\150\011\242\n5\011\158\n\146\0152\n5\001\154\000\000\025^\007\166\001\162\001\166\017\190\000\242\001\170\000\242\001\174\001\178\002\133\000\000\002\133\000\000\002\133\000\000\000\000\000\000\002\133\000\n\000\000\002\133\025\174\002\133\026\n\000\000\002\133\000\000\000\000\002\133\002\133\002\133\000\000\002\133\002\133\002\133\000\000\000\000\002]\000\242\000\000\002\133\002\133\002\133\002\133\002\133\026\"\002\133-\191\000\000\000\000\002]\002]\000\000\002\133\002\133\002\133\002\133\002\133\002\133\011\162\rA\011\162\000\000\011n\002\133\011n\002\133\002\133\rA\000\000\011\222\000\000\011\222\002\133\002\133\002\133\011\230\017\182\011\230\000\000\000\000\000\000\002\133\000\000\002\133\002\133\002\133\002\133\002\133\002\133\002\133\002\133\002\133\011\162\002\133\000\000\000\000\011n\011\210\002\133\r\238\002\133\002\133\002\133\011\222\000\000\000\000\000\000\002\133\000\000\011\230\002\133\000\000\002\133\002\133\000\000\002\133\002\133\002\133\002\133\000\000\031V\000\000\000\000\000\000\002\133\000\000\002\133\002\133\000\000\017\026\002\133\002\133\002\133\002\133\002\133\002\133\000\000\002\237\002\133\002\133\018\158\000\000\028Z\002\133\002\133\014j\000\000\002\133\002\133\002\133\002\133\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\002\237\000\000\000\000\002\237\000\000\002\237\000\242\002\237\002\237\002\237\002\237\002\237\002\237\002\237\000\000\002\237\002\237\002\237\000\000\002\237\000\000\000\000\000\000\002\237\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\0115\000\000\000\000\0115\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\000\000\000\000\"\250\000\000\002\237\002\237\002\237\r\238\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\0115\002\237\000\000\000\000\031n\000\242\002\237\018Z\002\237\002\237\002\237\002\237\000\000\000\000\000\000\002\237\0115\002\237\002\237\000\000\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\014j\000\000\000\000\002\237\000\000\002\237\002\237\000\000\018Z\002\237\002\237\002\237\002\237\002\237\002\237\006\t\000\000\002\237\002\237\002\237\000\242\0115\002\237\002\237\r\238\000\000\002\237\002\237\002\237\002\237\011\157\006\t\011\157\000\000\011\157\012\130\000\000\002V\011\157\000\000\000\000\011\157\006\t\011\157\000\000\031\130\011\157\000\000\006\t\011\157\011\157\011\157\0115\011\157\011\157\011\157\000\000\000\000\012\249\n\233\000\000\011\157\011\157\011\157\011\157\011\157\000\000\011\157\000\000\000\000\014j\000\000\004\185\012\145\011\157\011\157\011\157\011\157\011\157\011\157\000\000\r\238\002\234\000\000\000\000\011\157\000\000\011\157\011\157\000\000\000\242\000\000\000\000,n\011\157\011\157\011\157\000\000\n\233\000\000\000\000\000\000\031\154\011\157\000\000\011\157\011\157\011\157\011\157\011\157\011\157\011\157\011\157\011\157\n\233\011\157\012\145\004\185\011n\000\000\011\157\r\238\011\157\011\157\011\157\n\233\000\000\014j\000\000\011\157\000\000\n\233\011\157\000\000\011\157\011\157\000\000\011\157\011\157\011\157\011\157\000\000&\178\000\000\012\145\000\000\011\157\000\242\011\157\011\157\000\000\017\026\011\157\011\157\011\157\011\157\011\157\011\157\012\249\000\000\011\157\011\157\018\158\000\000\000\000\011\157\011\157\014j\000\242\011\157\011\157\011\157\011\157\004=\000\000\004=\000\000\004=\002\250\000\000\002V\004=\012\145\000\000\004=\025\206\004=\000\242\005\206\018\194\000\000\012\145\004=\019\022\004=\000\000\004=\004=\004=\000\000\000\000\012\245\012)\000\000\019*\019\138\019\162\019B\019\186\000\000\004=\000\000\000\000\004\185\000\000\000\000\012\141\004=\019Z\004=\019\210\019\234\004=\011\162\r\238\002\234\000\000\011n\004=\000\000\020\002\004=\000\000\000\000\011\222\000\000\000\000\004=\004=\000\242\011\230\012)\000\000\000\000\000\000*\170\004=\000\000\004=\004=\018\218\019r\020\026\0202\020\146\004=\004=\012\150\004=\012\141\000\000\012)\000\000\004=\000\000\004=\004=\020\170\012)\000\000\014j\000\000\004=\000\000\012)\004=\000\000\004=\020\194\000\000\004=\004=\004=\004=\000\000\000\000\000\000\012\141\000\000\004=\000\242\004=\004=\000\000\021\"\004=\004=\021Z\020J\004=\004=\012\245\000\000\004=\020\218\004=\000\000\000\000\020b\020z\000\000\000\242\004=\004=\020\242\021\n\003e\000\000\003e\000\000\003e\002\250\000\000\000\000\003e\012\141\000\000\003e\025\238\003e\000\000\005\206\003e\002V\012\141\003e\003e\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\242\000\000\003e\003e\003e\003e\003e\000\000\003e\030\n\000\000\000\000\000\000\000\000\000\000\003e\003e\003e\003e\003e\003e\011\162\000\000\000\000\000\000\011n\003e\000\000\003e\003e\000\000\000\000\011\222\002\234\000\000\003e\003e\003e\011\230\005\201\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\003e\003e\003e\003e\003e\003e\003e\005\201\003e\000\000\000\000\012\130\000\242\003e\000\000\003e\003e\003e\005\201\000\000\000\000\000\000\003e\000\000\005\201\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\017\026\003e\003e\003e\003e\003e\003e\005\249\000\000\003e\003e\018\158\000\000\000\000\003e\003e\000\000\030\014\003e\003e\003e\003e\003a\005\249\003a\000\000\003a\012\130\000\000\000\000\003a\000\000\000\000\003a\005\249\003a\000\000\002\250\003a\002V\005\249\003a\003a\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\242\000\000\003a\003a\003a\003a\003a\000\000\003a\r\005\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\000\000\000\000\002\234\000\000\003a\003a\003a\000\000\005\233\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\018\218\003a\003a\003a\003a\003a\003a\005\233\003a\000\000\000\000\012\130\000\242\003a\000\000\003a\003a\003a\005\233\000\000\000\000\000\000\003a\000\000\005\233\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\003a\003a\003a\022V\000\000\003a\003a\003a\000\000\000\000\003a\003a\000\000\r\005\003a\003a\003a\003a\0035\022^\0035\000\000\0035\012\130\000\000\000\000\0035\000\000\000\000\0035\022\142\0035\000\000\002\250\0035\002V\022\150\0035\0035\0035\000\000\0035\0035\0035\000\000\000\000\000\000\000\242\000\000\0035\0035\0035\0035\0035\000\000\0035\r\001\000\000\000\000\000\000\000\000\000\000\0035\0035\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\000\000\000\000\002\234\000\000\0035\0035\0035\000\000\005\217\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\0035\0035\0035\0035\0035\0035\0035\005\217\0035\000\000\000\000\012\130\000\242\0035\000\000\0035\0035\0035\005\217\000\000\000\000\000\000\0035\000\000\005\217\0035\000\000\0035\0035\000\000\0035\0035\0035\0035\000\000\000\000\000\000\000\000\000\000\0035\000\000\0035\0035\000\000\017\026\0035\0035\0035\0035\0035\0035\n\249\000\000\0035\0035\018\158\000\000\000\000\0035\0035\000\000\r\001\0035\0035\0035\0035\0031\011\162\0031\000\000\0031\011n\000\000\002V\0031\000\000\000\000\0031\n\249\0031\000\000\002\250\0031\000\000\n\249\0031\0031\0031\000\000\0031\0031\0031\000\000\000\000,z\000\242\000\000\0031\0031\0031\0031\0031\000\000\0031\000\000\000\000\000\000\001\129\000\000\000\000\0031\0031\0031\0031\0031\0031\000\000\000\000\002\234\000\000\000\000\0031\000\000\0031\0031\000\000\000\000\000\000\001\129\000\000\0031\0031\0031\000\000\025>\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\018\218\0031\0031\0031\0031\0031\0031\022^\0031\000\000\000\000\012\130\000\000\0031\000\000\0031\0031\0031\022\142\000\000\000\000\000\000\0031\000\000\022\150\0031\000\000\0031\0031\000\000\0031\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\0031\0031\0031\0031\0031\0031\0031,~\000\000\0031\0031\0031\000\000\000\000\0031\0031\000\000\001\129\0031\0031\0031\0031\003M\000\000\003M\000\000\003M\002\250\000\000\002V\003M\000\000\000\000\003M\000\000\003M\000\000\000\000\003M\002V\001\129\003M\003M\003M\000\000\003M\003M\003M\001\129\000\000\r\017\000\000\000\000\003M\003M\003M\003M\003M\025\158\003M\r\r\000\000\000\000\000\000\000\000\000\000\003M\003M\003M\003M\003M\003M\000\000\000\000\002\234\000\000\000\000\003M\000\000\003M\003M\000\000\000\000\000\000\002\234\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\003M\003M\003M\003M\003M\003M\003M\000\000\003M\000\000\011%\000\000\000\000\003M\011%\003M\003M\003M\000\000\000\000\000\000\000\000\003M\000\000\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\017\026\003M\003M\003M\003M\003M\003M\r\017\000\000\003M\003M\018\158\011%\000\000\003M\003M\000\000\r\r\003M\003M\003M\003M\003I\000\000\003I\000\000\003I\002\250\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\000\000\002\250\018\194\000\000\011%\003I\003I\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\003I\003I\019B\003I\000\000\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\019Z\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\011%\000\000\000\000\005\206\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\018\218\019r\003I\003I\003I\003I\003I\000\000\003I\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\003I\000\000\000\000\000\000\000\000\003I\000\000\000\000\003I\000\000\003I\003I\000\000\003I\003I\003I\003I\000\000\000\000\000\000\000\000\000\000\003I\000\000\003I\003I\000\000\003I\003I\003I\003I\003I\003I\003I\000\000\000\000\003I\003I\003I\000\000\000\000\003I\003I\000\000\000\000\003I\003I\003I\003I\003m\000\000\003m\000\000\003m\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\000\000\000\000\003m\000\000\000\000\003m\003m\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\003m\003m\000\000\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\003m\003m\003m\003m\003m\003m\003m\000\000\003m\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\003m\000\000\003m\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\017\026\003m\003m\003m\003m\003m\003m\000\000\000\000\003m\003m\018\158\000\000\000\000\003m\003m\000\000\000\000\003m\003m\003m\003m\003i\000\000\003i\000\000\003i\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\000\000\000\000\003i\000\000\000\000\003i\003i\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003i\000\000\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\018\218\003i\003i\003i\003i\003i\003i\000\000\003i\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\003i\003i\003i\000\000\000\000\003i\003i\003i\000\000\000\000\003i\003i\000\000\000\000\003i\003i\003i\003i\003-\000\000\003-\000\000\003-\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\000\000\000\000\003-\000\000\000\000\003-\003-\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\003-\003-\000\000\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\003-\003-\003-\003-\003-\003-\003-\000\000\003-\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\003-\000\000\003-\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\017\026\003-\003-\003-\003-\003-\003-\000\000\000\000\003-\003-\018\158\000\000\000\000\003-\003-\000\000\000\000\003-\003-\003-\003-\003)\000\000\003)\000\000\003)\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\000\000\000\000\003)\000\000\000\000\003)\003)\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\018\218\003)\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\003)\000\000\003)\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\003)\003)\003)\003)\003)\003)\003)\000\000\000\000\003)\003)\003)\000\000\000\000\003)\003)\000\000\000\000\003)\003)\003)\003)\003%\000\000\003%\000\000\003%\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\000\000\000\000\003%\000\000\000\000\003%\003%\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\003%\003%\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\003%\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\003%\003%\003%\003%\003%\003%\003%\000\000\003%\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\017\026\003%\003%\003%\003%\003%\003%\000\000\000\000\003%\003%\018\158\000\000\000\000\003%\003%\000\000\000\000\003%\003%\003%\003%\003!\000\000\003!\000\000\003!\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\000\000\000\000\003!\000\000\000\000\003!\003!\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\018\218\003!\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\003!\000\000\003!\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\003!\003!\003!\003!\003!\003!\003!\000\000\000\000\003!\003!\003!\000\000\000\000\003!\003!\000\000\000\000\003!\003!\003!\003!\003E\000\000\003E\000\000\003E\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\000\000\000\000\003E\000\000\000\000\003E\003E\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\003E\000\000\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\003E\003E\003E\003E\003E\003E\003E\000\000\003E\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\003E\000\000\000\000\000\000\000\000\003E\000\000\000\000\003E\000\000\003E\003E\000\000\003E\003E\003E\003E\000\000\000\000\000\000\000\000\000\000\003E\000\000\003E\003E\000\000\017\026\003E\003E\003E\003E\003E\003E\000\000\000\000\003E\003E\018\158\000\000\000\000\003E\003E\000\000\000\000\003E\003E\003E\003E\003A\000\000\003A\000\000\003A\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\000\000\000\000\018\194\000\000\000\000\003A\003A\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\019B\003A\000\000\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\019Z\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\018\218\019r\003A\003A\003A\003A\003A\000\000\003A\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\003A\000\000\000\000\000\000\000\000\003A\000\000\000\000\003A\000\000\003A\003A\000\000\003A\003A\003A\003A\000\000\000\000\000\000\000\000\000\000\003A\000\000\003A\003A\000\000\003A\003A\003A\003A\003A\003A\003A\000\000\000\000\003A\003A\003A\000\000\000\000\003A\003A\000\000\000\000\003A\003A\003A\003A\003=\000\000\003=\000\000\003=\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\000\000\000\000\003=\000\000\000\000\003=\003=\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\003=\000\000\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\003=\003=\003=\003=\003=\003=\003=\000\000\003=\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\003=\000\000\000\000\000\000\000\000\003=\000\000\000\000\003=\000\000\003=\003=\000\000\003=\003=\003=\003=\000\000\000\000\000\000\000\000\000\000\003=\000\000\003=\003=\000\000\017\026\003=\003=\003=\003=\003=\003=\000\000\000\000\003=\003=\018\158\000\000\000\000\003=\003=\000\000\000\000\003=\003=\003=\003=\0039\000\000\0039\000\000\0039\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\000\000\000\000\018\194\000\000\000\000\0039\0039\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\019B\0039\000\000\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\019Z\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\018\218\019r\0039\0039\0039\0039\0039\000\000\0039\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\0039\000\000\000\000\0039\000\000\0039\0039\000\000\0039\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\0039\000\000\0039\0039\000\000\0039\0039\0039\0039\0039\0039\0039\000\000\000\000\0039\0039\0039\000\000\000\000\0039\0039\000\000\000\000\0039\0039\0039\0039\003\141\000\000\003\141\000\000\003\141\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\000\000\000\000\003\141\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\003\141\003\141\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\003\141\003\141\003\141\003\141\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\017\026\003\141\003\141\003\141\003\141\003\141\003\141\000\000\000\000\003\141\003\141\018\158\000\000\000\000\003\141\003\141\000\000\000\000\003\141\003\141\003\141\003\141\003\137\000\000\003\137\000\000\003\137\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\000\000\000\000\018\194\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\019Z\003\137\019\210\019\234\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\020\002\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\018\218\019r\020\026\0202\020\146\003\137\003\137\000\000\003\137\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\020\170\000\000\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\020\194\000\000\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\003\137\003\137\003\137\003\137\020J\003\137\003\137\000\000\000\000\003\137\020\218\003\137\000\000\000\000\020b\020z\000\000\000\000\003\137\003\137\020\242\021\n\003]\000\000\003]\000\000\003]\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\000\000\000\000\003]\000\000\000\000\003]\003]\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\003]\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\003]\003]\003]\003]\003]\003]\003]\000\000\003]\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\017\026\003]\003]\003]\003]\003]\003]\000\000\000\000\003]\003]\018\158\000\000\000\000\003]\003]\000\000\000\000\003]\003]\003]\003]\003Y\000\000\003Y\000\000\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\000\000\000\000\018\194\000\000\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\019B\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\019Z\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\018\218\019r\003Y\003Y\003Y\003Y\003Y\000\000\003Y\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\003Y\003Y\003Y\000\000\000\000\003Y\003Y\000\000\000\000\003Y\003Y\003Y\003Y\003U\000\000\003U\000\000\003U\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\000\000\000\000\003U\000\000\000\000\003U\003U\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\003U\003U\000\000\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\003U\003U\003U\003U\003U\003U\003U\000\000\003U\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\003U\000\000\003U\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\017\026\003U\003U\003U\003U\003U\003U\000\000\000\000\003U\003U\018\158\000\000\000\000\003U\003U\000\000\000\000\003U\003U\003U\003U\003Q\000\000\003Q\000\000\003Q\000\000\000\000\000\000\003Q\000\000\000\000\003Q\000\000\003Q\000\000\000\000\018\194\000\000\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\019B\003Q\000\000\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\019Z\003Q\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\018\218\019r\003Q\003Q\003Q\003Q\003Q\000\000\003Q\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\003Q\000\000\000\000\003Q\000\000\003Q\003Q\000\000\003Q\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\000\000\003Q\003Q\003Q\003Q\003Q\003Q\003Q\000\000\000\000\003Q\003Q\003Q\000\000\000\000\003Q\003Q\000\000\000\000\003Q\003Q\003Q\003Q\003}\000\000\003}\000\000\003}\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\000\000\000\000\003}\000\000\000\000\003}\003}\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\003}\003}\000\000\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\003}\003}\003}\003}\003}\003}\003}\000\000\003}\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\003}\000\000\003}\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\003}\000\000\003}\003}\000\000\017\026\003}\003}\003}\003}\003}\003}\000\000\000\000\003}\003}\018\158\000\000\000\000\003}\003}\000\000\000\000\003}\003}\003}\003}\003y\000\000\003y\000\000\003y\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\000\000\000\000\018\194\000\000\000\000\003y\003y\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\019Z\003y\019\210\019\234\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\018\218\019r\020\026\0202\003y\003y\003y\000\000\003y\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\020J\003y\003y\000\000\000\000\003y\003y\003y\000\000\000\000\020b\020z\000\000\000\000\003y\003y\003y\003y\003\029\000\000\003\029\000\000\003\029\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\000\000\000\000\003\029\000\000\000\000\003\029\003\029\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\003\029\003\029\003\029\003\029\003\029\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\017\026\003\029\003\029\003\029\003\029\003\029\003\029\000\000\000\000\003\029\003\029\018\158\000\000\000\000\003\029\003\029\000\000\000\000\003\029\003\029\003\029\003\029\003\025\000\000\003\025\000\000\003\025\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\000\000\000\000\018\194\000\000\000\000\003\025\003\025\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\019B\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\019Z\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\018\218\019r\003\025\003\025\003\025\003\025\003\025\000\000\003\025\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\003\025\000\000\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\003\025\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\003\025\003\025\003\025\000\000\000\000\003\025\003\025\000\000\000\000\003\025\003\025\003\025\003\025\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\003\021\000\000\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\003\021\003\021\003\021\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\017\026\003\021\003\021\003\021\003\021\003\021\003\021\000\000\000\000\003\021\003\021\018\158\000\000\000\000\003\021\003\021\000\000\000\000\003\021\003\021\003\021\003\021\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\000\000\000\000\018\194\000\000\000\000\003\017\003\017\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\019Z\003\017\019\210\019\234\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\018\218\019r\020\026\0202\003\017\003\017\003\017\000\000\003\017\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\003\017\000\000\003\017\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\003\017\003\017\003\017\003\017\020J\003\017\003\017\000\000\000\000\003\017\003\017\003\017\000\000\000\000\020b\020z\000\000\000\000\003\017\003\017\003\017\003\017\003\189\000\000\003\189\000\000\003\189\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\000\000\000\000\003\189\000\000\000\000\003\189\003\189\003\189\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\003\189\003\189\003\189\003\189\003\189\000\000\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\003\189\003\189\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\000\000\000\000\000\000\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\003\189\003\189\003\189\003\189\003\189\003\189\003\189\000\000\003\189\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\003\189\000\000\000\000\000\000\000\000\003\189\000\000\000\000\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\000\000\000\000\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\017\026\003\189\003\189\003\189\003\189\003\189\003\189\000\000\000\000\003\189\003\189\018\158\000\000\000\000\003\189\003\189\000\000\000\000\003\189\003\189\003\189\003\189\003\185\000\000\003\185\000\000\003\185\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\000\000\000\000\018\194\000\000\000\000\003\185\003\185\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003\185\000\000\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\019Z\003\185\019\210\019\234\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\018\218\019r\020\026\003\185\003\185\003\185\003\185\000\000\003\185\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\003\185\000\000\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\020J\003\185\003\185\000\000\000\000\003\185\003\185\003\185\000\000\000\000\003\185\003\185\000\000\000\000\003\185\003\185\003\185\003\185\003\r\000\000\003\r\000\000\003\r\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\000\000\000\000\003\r\000\000\000\000\003\r\003\r\003\r\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\003\r\003\r\003\r\003\r\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\003\r\003\r\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\003\r\000\000\003\r\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\017\026\003\r\003\r\003\r\003\r\003\r\003\r\000\000\000\000\003\r\003\r\018\158\000\000\000\000\003\r\003\r\000\000\000\000\003\r\003\r\003\r\003\r\003\t\000\000\003\t\000\000\003\t\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\000\000\000\000\018\194\000\000\000\000\003\t\003\t\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\019Z\003\t\019\210\019\234\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\003\t\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\018\218\019r\020\026\0202\003\t\003\t\003\t\000\000\003\t\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\003\t\000\000\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\003\t\003\t\003\t\003\t\020J\003\t\003\t\000\000\000\000\003\t\003\t\003\t\000\000\000\000\020b\020z\000\000\000\000\003\t\003\t\003\t\003\t\003\005\000\000\003\005\000\000\003\005\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\000\000\000\000\003\005\000\000\000\000\003\005\003\005\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\017\026\003\005\003\005\003\005\003\005\003\005\003\005\000\000\000\000\003\005\003\005\018\158\000\000\000\000\003\005\003\005\000\000\000\000\003\005\003\005\003\005\003\005\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\018\194\000\000\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\019Z\003\001\019\210\019\234\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\018\218\019r\020\026\0202\003\001\003\001\003\001\000\000\003\001\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\003\001\003\001\003\001\003\001\020J\003\001\003\001\000\000\000\000\003\001\003\001\003\001\000\000\000\000\020b\020z\000\000\000\000\003\001\003\001\003\001\003\001\002\253\000\000\002\253\000\000\002\253\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\000\000\000\000\002\253\000\000\000\000\002\253\002\253\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\002\253\002\253\000\000\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\000\000\002\253\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\002\253\000\000\002\253\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\017\026\002\253\002\253\002\253\002\253\002\253\002\253\000\000\000\000\002\253\002\253\018\158\000\000\000\000\002\253\002\253\000\000\000\000\002\253\002\253\002\253\002\253\002\249\000\000\002\249\000\000\002\249\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\000\000\000\000\018\194\000\000\000\000\002\249\002\249\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\002\249\000\000\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\019Z\002\249\019\210\019\234\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\002\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\018\218\019r\020\026\0202\002\249\002\249\002\249\000\000\002\249\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\020J\002\249\002\249\000\000\000\000\002\249\002\249\002\249\000\000\000\000\020b\020z\000\000\000\000\002\249\002\249\002\249\002\249\003\133\000\000\003\133\000\000\003\133\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\000\000\000\000\003\133\000\000\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\003\133\000\000\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\003\133\003\133\003\133\003\133\003\133\003\133\003\133\000\000\003\133\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\017\026\003\133\003\133\003\133\003\133\003\133\003\133\000\000\000\000\003\133\003\133\018\158\000\000\000\000\003\133\003\133\000\000\000\000\003\133\003\133\003\133\003\133\003\129\000\000\003\129\000\000\003\129\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\000\000\000\000\018\194\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003\129\000\000\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\019Z\003\129\019\210\019\234\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\018\218\019r\020\026\0202\003\129\003\129\003\129\000\000\003\129\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\020J\003\129\003\129\000\000\000\000\003\129\003\129\003\129\000\000\000\000\020b\020z\000\000\000\000\003\129\003\129\003\129\003\129\003u\000\000\003u\000\000\003u\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\000\000\000\000\003u\000\000\000\000\003u\003u\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\003u\003u\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\003u\003u\003u\003u\003u\003u\003u\000\000\003u\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\003u\000\000\003u\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\017\026\003u\003u\003u\003u\003u\003u\000\000\000\000\003u\003u\018\158\000\000\000\000\003u\003u\000\000\000\000\003u\003u\003u\003u\003q\000\000\003q\000\000\003q\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\000\000\000\000\018\194\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\019Z\003q\019\210\019\234\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\018\218\019r\020\026\0202\003q\003q\003q\000\000\003q\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\020J\003q\003q\000\000\000\000\003q\003q\003q\000\000\000\000\020b\020z\000\000\000\000\003q\003q\003q\003q\003\149\000\000\003\149\000\000\003\149\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\000\000\000\000\003\149\000\000\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\003\149\003\149\003\149\000\000\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\003\149\003\149\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\003\149\003\149\003\149\003\149\003\149\003\149\003\149\000\000\003\149\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\017\026\003\149\003\149\003\149\003\149\003\149\003\149\000\000\000\000\003\149\003\149\018\158\000\000\000\000\003\149\003\149\000\000\000\000\003\149\003\149\003\149\003\149\003\145\000\000\003\145\000\000\003\145\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\000\000\000\000\018\194\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\019Z\003\145\019\210\019\234\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\020\002\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\018\218\019r\020\026\0202\020\146\003\145\003\145\000\000\003\145\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\020\170\000\000\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\020\194\000\000\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\003\145\003\145\003\145\003\145\020J\003\145\003\145\000\000\000\000\003\145\020\218\003\145\000\000\000\000\020b\020z\000\000\000\000\003\145\003\145\020\242\021\n\003\157\000\000\003\157\000\000\003\157\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\000\000\000\000\003\157\000\000\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\003\157\003\157\003\157\000\000\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\003\157\003\157\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\000\000\003\157\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\017\026\003\157\003\157\003\157\003\157\003\157\003\157\000\000\000\000\003\157\003\157\018\158\000\000\000\000\003\157\003\157\000\000\000\000\003\157\003\157\003\157\003\157\003\153\000\000\003\153\000\000\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\000\000\000\000\018\194\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\019Z\003\153\019\210\019\234\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\020\002\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\018\218\019r\020\026\0202\020\146\003\153\003\153\000\000\003\153\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\020\170\000\000\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\020\194\000\000\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\020J\003\153\003\153\000\000\000\000\003\153\003\153\003\153\000\000\000\000\020b\020z\000\000\000\000\003\153\003\153\020\242\021\n\003\165\000\000\003\165\000\000\003\165\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\000\000\000\000\003\165\000\000\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\003\165\003\165\003\165\000\000\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\003\165\003\165\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\000\000\003\165\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\017\026\003\165\003\165\003\165\003\165\003\165\003\165\000\000\000\000\003\165\003\165\018\158\000\000\000\000\003\165\003\165\000\000\000\000\003\165\003\165\003\165\003\165\003\161\000\000\003\161\000\000\003\161\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\000\000\000\000\018\194\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\019Z\003\161\019\210\019\234\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\020\002\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\018\218\019r\020\026\0202\020\146\003\161\003\161\000\000\003\161\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\020\170\000\000\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\020\194\000\000\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\003\161\003\161\003\161\003\161\020J\003\161\003\161\000\000\000\000\003\161\003\161\003\161\000\000\000\000\020b\020z\000\000\000\000\003\161\003\161\020\242\021\n\011\177\000\000\011\177\000\000\011\177\000\000\000\000\000\000\011\177\000\000\000\000\011\177\000\000\011\177\000\000\000\000\011\177\000\000\000\000\011\177\011\177\011\177\000\000\011\177\011\177\011\177\000\000\000\000\000\000\000\000\000\000\011\177\011\177\011\177\011\177\011\177\000\000\011\177\000\000\000\000\000\000\000\000\000\000\000\000\011\177\011\177\011\177\011\177\011\177\011\177\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\000\000\000\000\000\000\000\000\000\000\011\177\011\177\011\177\000\000\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\011\177\011\177\011\177\011\177\011\177\011\177\011\177\000\000\011\177\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\011\177\000\000\000\000\000\000\000\000\011\177\000\000\000\000\011\177\000\000\011\177\011\177\000\000\011\177\011\177\011\177\011\177\000\000\000\000\000\000\000\000\000\000\011\177\000\000\011\177\011\177\000\000\017\026\011\177\011\177\011\177\011\177\011\177\011\177\000\000\000\000\011\177\011\177\018\158\000\000\000\000\011\177\011\177\000\000\000\000\011\177\011\177\011\177\011\177\011\173\000\000\011\173\000\000\011\173\000\000\000\000\000\000\011\173\000\000\000\000\011\173\000\000\011\173\000\000\000\000\018\194\000\000\000\000\011\173\011\173\011\173\000\000\011\173\011\173\011\173\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\011\173\000\000\000\000\000\000\000\000\000\000\000\000\011\173\019Z\011\173\019\210\019\234\011\173\000\000\000\000\000\000\000\000\000\000\011\173\000\000\020\002\011\173\000\000\000\000\000\000\000\000\000\000\011\173\011\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\018\218\019r\020\026\0202\020\146\011\173\011\173\000\000\011\173\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\020\170\000\000\000\000\000\000\000\000\011\173\000\000\000\000\011\173\000\000\011\173\020\194\000\000\011\173\011\173\011\173\011\173\000\000\000\000\000\000\000\000\000\000\011\173\000\000\011\173\011\173\000\000\011\173\011\173\011\173\011\173\020J\011\173\011\173\000\000\000\000\011\173\020\218\011\173\000\000\000\000\020b\020z\000\000\000\000\011\173\011\173\020\242\021\n\003\173\000\000\003\173\000\000\003\173\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\000\000\000\000\003\173\000\000\000\000\003\173\003\173\003\173\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\003\173\003\173\003\173\003\173\003\173\000\000\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\003\173\003\173\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\000\000\000\000\000\000\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\000\000\003\173\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\003\173\000\000\000\000\000\000\000\000\003\173\000\000\000\000\003\173\000\000\003\173\003\173\000\000\003\173\003\173\003\173\003\173\000\000\000\000\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\017\026\003\173\003\173\003\173\003\173\003\173\003\173\000\000\000\000\003\173\003\173\018\158\000\000\000\000\003\173\003\173\000\000\000\000\003\173\003\173\003\173\003\173\003\169\000\000\003\169\000\000\003\169\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\000\000\000\000\018\194\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\019Z\003\169\019\210\019\234\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\020\002\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\018\218\019r\020\026\0202\020\146\003\169\003\169\000\000\003\169\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\020\170\000\000\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\020\194\000\000\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\021\"\003\169\003\169\021Z\020J\003\169\003\169\000\000\000\000\003\169\020\218\003\169\000\000\000\000\020b\020z\000\000\000\000\003\169\003\169\020\242\021\n\011\153\000\000\011\153\000\000\011\153\000\000\000\000\000\000\011\153\000\000\000\000\011\153\000\000\011\153\000\000\000\000\018\194\000\000\000\000\011\153\011\153\011\153\000\000\011\153\011\153\011\153\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\011\153\000\000\000\000\000\000\000\000\000\000\000\000\011\153\019Z\011\153\019\210\019\234\011\153\000\000\000\000\000\000\000\000\000\000\011\153\000\000\020\002\011\153\000\000\000\000\000\000\000\000\000\000\011\153\011\153\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\153\000\000\011\153\011\153\018\218\019r\020\026\0202\020\146\011\153\011\153\000\000\011\153\000\000\000\000\000\000\000\000\011\153\000\000\011\153\011\153\020\170\000\000\000\000\000\000\000\000\011\153\000\000\000\000\011\153\000\000\011\153\020\194\000\000\011\153\011\153\011\153\011\153\000\000\000\000\000\000\000\000\000\000\011\153\000\000\011\153\011\153\000\000\011\153\011\153\011\153\011\153\020J\011\153\011\153\000\000\000\000\011\153\020\218\011\153\000\000\000\000\020b\020z\000\000\000\000\011\153\011\153\020\242\021\n\003\237\000\000\003\237\000\000\003\237\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\000\000\000\000\003\237\000\000\000\000\003\237\003\237\003\237\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\003\237\003\237\003\237\003\237\000\000\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\003\237\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\000\000\003\237\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\003\237\003\237\000\000\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\017\026\003\237\003\237\003\237\003\237\003\237\003\237\000\000\000\000\003\237\003\237\018\158\000\000\000\000\003\237\003\237\000\000\000\000\003\237\003\237\003\237\003\237\003\233\000\000\003\233\000\000\003\233\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\000\000\000\000\018\194\000\000\000\000\003\233\003\233\003\233\000\000\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\233\000\000\000\000\000\000\000\000\000\000\000\000\003\233\019Z\003\233\019\210\019\234\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\020\002\003\233\000\000\000\000\000\000\000\000\000\000\003\233\003\233\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\018\218\019r\020\026\0202\020\146\003\233\003\233\000\000\003\233\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\020\170\000\000\000\000\000\000\000\000\003\233\000\000\000\000\003\233\000\000\003\233\020\194\000\000\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\021\"\003\233\003\233\021Z\020J\003\233\003\233\000\000\000\000\003\233\020\218\003\233\000\000\000\000\020b\020z\000\000\000\000\003\233\003\233\020\242\021\n\004\r\000\000\004\r\000\000\004\r\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\000\000\000\000\004\r\000\000\000\000\004\r\004\r\004\r\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\004\r\004\r\004\r\004\r\004\r\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\004\r\004\r\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\000\000\000\000\000\000\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\004\r\004\r\004\r\004\r\004\r\004\r\004\r\000\000\004\r\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\004\r\000\000\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\004\r\004\r\000\000\004\r\004\r\004\r\004\r\000\000\000\000\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\017\026\004\r\004\r\004\r\004\r\004\r\004\r\000\000\000\000\004\r\004\r\018\158\000\000\000\000\004\r\004\r\000\000\000\000\004\r\004\r\004\r\004\r\004\t\000\000\004\t\000\000\004\t\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\000\000\000\000\018\194\000\000\000\000\004\t\004\t\004\t\000\000\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\t\019Z\004\t\019\210\019\234\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\020\002\004\t\000\000\000\000\000\000\000\000\000\000\004\t\004\t\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\018\218\019r\020\026\0202\020\146\004\t\004\t\000\000\004\t\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\020\170\000\000\000\000\000\000\000\000\004\t\000\000\000\000\004\t\000\000\004\t\020\194\000\000\004\t\004\t\004\t\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\021\"\004\t\004\t\021Z\020J\004\t\004\t\000\000\000\000\004\t\020\218\004\t\000\000\000\000\020b\020z\000\000\000\000\004\t\004\t\020\242\021\n\003\253\000\000\003\253\000\000\003\253\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\000\000\000\000\003\253\000\000\000\000\003\253\003\253\003\253\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\003\253\003\253\003\253\003\253\003\253\000\000\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\003\253\003\253\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\000\000\000\000\000\000\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\003\253\003\253\003\253\003\253\003\253\003\253\003\253\000\000\003\253\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\003\253\000\000\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\003\253\003\253\000\000\003\253\003\253\003\253\003\253\000\000\000\000\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\017\026\003\253\003\253\003\253\003\253\003\253\003\253\000\000\000\000\003\253\003\253\018\158\000\000\000\000\003\253\003\253\000\000\000\000\003\253\003\253\003\253\003\253\003\249\000\000\003\249\000\000\003\249\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\000\000\000\000\018\194\000\000\000\000\003\249\003\249\003\249\000\000\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\249\000\000\000\000\000\000\000\000\000\000\000\000\003\249\019Z\003\249\019\210\019\234\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\020\002\003\249\000\000\000\000\000\000\000\000\000\000\003\249\003\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\018\218\019r\020\026\0202\020\146\003\249\003\249\000\000\003\249\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\020\170\000\000\000\000\000\000\000\000\003\249\000\000\000\000\003\249\000\000\003\249\020\194\000\000\003\249\003\249\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\021\"\003\249\003\249\021Z\020J\003\249\003\249\000\000\000\000\003\249\020\218\003\249\000\000\000\000\020b\020z\000\000\000\000\003\249\003\249\020\242\021\n\003\213\000\000\003\213\000\000\003\213\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\000\000\000\000\003\213\000\000\000\000\003\213\003\213\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\003\213\003\213\000\000\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\003\213\003\213\003\213\003\213\003\213\003\213\003\213\000\000\003\213\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\003\213\000\000\000\000\000\000\000\000\003\213\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\000\000\000\000\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\017\026\003\213\003\213\003\213\003\213\003\213\003\213\000\000\000\000\003\213\003\213\018\158\000\000\000\000\003\213\003\213\000\000\000\000\003\213\003\213\003\213\003\213\003\209\000\000\003\209\000\000\003\209\000\000\000\000\000\000\003\209\000\000\000\000\003\209\000\000\003\209\000\000\000\000\018\194\000\000\000\000\003\209\003\209\003\209\000\000\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\209\000\000\000\000\000\000\000\000\000\000\000\000\003\209\019Z\003\209\019\210\019\234\003\209\000\000\000\000\000\000\000\000\000\000\003\209\000\000\020\002\003\209\000\000\000\000\000\000\000\000\000\000\003\209\003\209\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\018\218\019r\020\026\0202\020\146\003\209\003\209\000\000\003\209\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\020\170\000\000\000\000\000\000\000\000\003\209\000\000\000\000\003\209\000\000\003\209\020\194\000\000\003\209\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\000\000\021\"\003\209\003\209\021Z\020J\003\209\003\209\000\000\000\000\003\209\020\218\003\209\000\000\000\000\020b\020z\000\000\000\000\003\209\003\209\020\242\021\n\003\229\000\000\003\229\000\000\003\229\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\000\000\000\000\003\229\000\000\000\000\003\229\003\229\003\229\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\003\229\003\229\003\229\003\229\000\000\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\003\229\003\229\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\000\000\003\229\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\003\229\003\229\000\000\003\229\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\017\026\003\229\003\229\003\229\003\229\003\229\003\229\000\000\000\000\003\229\003\229\018\158\000\000\000\000\003\229\003\229\000\000\000\000\003\229\003\229\003\229\003\229\003\225\000\000\003\225\000\000\003\225\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\000\000\000\000\018\194\000\000\000\000\003\225\003\225\003\225\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\225\000\000\000\000\000\000\000\000\000\000\000\000\003\225\019Z\003\225\019\210\019\234\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\020\002\003\225\000\000\000\000\000\000\000\000\000\000\003\225\003\225\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\018\218\019r\020\026\0202\020\146\003\225\003\225\000\000\003\225\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\020\170\000\000\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\003\225\020\194\000\000\003\225\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\021\"\003\225\003\225\021Z\020J\003\225\003\225\000\000\000\000\003\225\020\218\003\225\000\000\000\000\020b\020z\000\000\000\000\003\225\003\225\020\242\021\n\003\221\000\000\003\221\000\000\003\221\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\000\000\000\000\003\221\000\000\000\000\003\221\003\221\003\221\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\003\221\003\221\003\221\003\221\003\221\000\000\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\003\221\003\221\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\000\000\000\000\000\000\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\000\000\003\221\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\003\221\003\221\000\000\003\221\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\017\026\003\221\003\221\003\221\003\221\003\221\003\221\000\000\000\000\003\221\003\221\018\158\000\000\000\000\003\221\003\221\000\000\000\000\003\221\003\221\003\221\003\221\003\217\000\000\003\217\000\000\003\217\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\000\000\000\000\018\194\000\000\000\000\003\217\003\217\003\217\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\217\000\000\000\000\000\000\000\000\000\000\000\000\003\217\019Z\003\217\019\210\019\234\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\020\002\003\217\000\000\000\000\000\000\000\000\000\000\003\217\003\217\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\018\218\019r\020\026\0202\020\146\003\217\003\217\000\000\003\217\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\020\170\000\000\000\000\000\000\000\000\003\217\000\000\000\000\003\217\000\000\003\217\020\194\000\000\003\217\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\021\"\003\217\003\217\021Z\020J\003\217\003\217\000\000\000\000\003\217\020\218\003\217\000\000\000\000\020b\020z\000\000\000\000\003\217\003\217\020\242\021\n\003\245\000\000\003\245\000\000\003\245\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\000\000\000\000\003\245\000\000\000\000\003\245\003\245\003\245\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\003\245\003\245\003\245\003\245\000\000\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\003\245\003\245\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\003\245\003\245\003\245\003\245\003\245\003\245\003\245\000\000\003\245\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\003\245\003\245\000\000\003\245\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\017\026\003\245\003\245\003\245\003\245\003\245\003\245\000\000\000\000\003\245\003\245\018\158\000\000\000\000\003\245\003\245\000\000\000\000\003\245\003\245\003\245\003\245\003\241\000\000\003\241\000\000\003\241\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\000\000\000\000\018\194\000\000\000\000\003\241\003\241\003\241\000\000\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\241\000\000\000\000\000\000\000\000\000\000\000\000\003\241\019Z\003\241\019\210\019\234\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\020\002\003\241\000\000\000\000\000\000\000\000\000\000\003\241\003\241\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\018\218\019r\020\026\0202\020\146\003\241\003\241\000\000\003\241\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\020\170\000\000\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\003\241\020\194\000\000\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\021\"\003\241\003\241\021Z\020J\003\241\003\241\000\000\000\000\003\241\020\218\003\241\000\000\000\000\020b\020z\000\000\000\000\003\241\003\241\020\242\021\n\004\021\000\000\004\021\000\000\004\021\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\000\000\000\000\004\021\000\000\000\000\004\021\004\021\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\004\021\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\004\021\004\021\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\004\021\004\021\004\021\004\021\004\021\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\004\021\000\000\004\021\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\017\026\004\021\004\021\004\021\004\021\004\021\004\021\000\000\000\000\004\021\004\021\018\158\000\000\000\000\004\021\004\021\000\000\000\000\004\021\004\021\004\021\004\021\004\017\000\000\004\017\000\000\004\017\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\000\000\000\000\018\194\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\004\017\019Z\004\017\019\210\019\234\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\020\002\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\018\218\019r\020\026\0202\020\146\004\017\004\017\000\000\004\017\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\020\170\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\020\194\000\000\004\017\004\017\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\021\"\004\017\004\017\021Z\020J\004\017\004\017\000\000\000\000\004\017\020\218\004\017\000\000\000\000\020b\020z\000\000\000\000\004\017\004\017\020\242\021\n\004\005\000\000\004\005\000\000\004\005\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\000\000\000\000\004\005\000\000\000\000\004\005\004\005\004\005\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\004\005\004\005\004\005\004\005\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\004\005\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\004\005\004\005\004\005\004\005\004\005\004\005\004\005\000\000\004\005\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\004\005\004\005\000\000\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\017\026\004\005\004\005\004\005\004\005\004\005\004\005\000\000\000\000\004\005\004\005\018\158\000\000\000\000\004\005\004\005\000\000\000\000\004\005\004\005\004\005\004\005\004\001\000\000\004\001\000\000\004\001\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\000\000\000\000\018\194\000\000\000\000\004\001\004\001\004\001\000\000\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\004\001\000\000\000\000\000\000\000\000\000\000\000\000\004\001\019Z\004\001\019\210\019\234\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\020\002\004\001\000\000\000\000\000\000\000\000\000\000\004\001\004\001\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\018\218\019r\020\026\0202\020\146\004\001\004\001\000\000\004\001\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\020\170\000\000\000\000\000\000\000\000\004\001\000\000\000\000\004\001\000\000\004\001\020\194\000\000\004\001\004\001\004\001\004\001\000\000\000\000\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\021\"\004\001\004\001\021Z\020J\004\001\004\001\000\000\000\000\004\001\020\218\004\001\000\000\000\000\020b\020z\000\000\000\000\004\001\004\001\020\242\021\n\003\205\000\000\003\205\000\000\003\205\000\000\000\000\000\000\003\205\000\000\000\000\003\205\000\000\003\205\000\000\000\000\003\205\000\000\000\000\003\205\003\205\003\205\000\000\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\003\205\003\205\003\205\003\205\003\205\000\000\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\205\003\205\003\205\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\000\000\000\000\000\000\000\000\000\000\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\003\205\003\205\003\205\003\205\003\205\003\205\003\205\000\000\003\205\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\003\205\000\000\000\000\000\000\000\000\003\205\000\000\000\000\003\205\000\000\003\205\003\205\000\000\003\205\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\003\205\000\000\003\205\003\205\000\000\017\026\003\205\003\205\003\205\003\205\003\205\003\205\000\000\000\000\003\205\003\205\018\158\000\000\000\000\003\205\003\205\000\000\000\000\003\205\003\205\003\205\003\205\003\201\000\000\003\201\000\000\003\201\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\000\000\000\000\018\194\000\000\000\000\003\201\003\201\003\201\000\000\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\201\000\000\000\000\000\000\000\000\000\000\000\000\003\201\019Z\003\201\019\210\019\234\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\020\002\003\201\000\000\000\000\000\000\000\000\000\000\003\201\003\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\018\218\019r\020\026\0202\020\146\003\201\003\201\000\000\003\201\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\020\170\000\000\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\003\201\020\194\000\000\003\201\003\201\003\201\003\201\000\000\000\000\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\021\"\003\201\003\201\021Z\020J\003\201\003\201\000\000\000\000\003\201\020\218\003\201\000\000\000\000\020b\020z\000\000\000\000\003\201\003\201\020\242\021\n\011\197\000\000\011\197\000\000\011\197\000\000\000\000\000\000\011\197\000\000\000\000\011\197\000\000\011\197\000\000\000\000\011\197\000\000\000\000\011\197\011\197\011\197\000\000\011\197\011\197\011\197\000\000\000\000\000\000\000\000\000\000\011\197\011\197\011\197\011\197\011\197\000\000\011\197\000\000\000\000\000\000\000\000\000\000\000\000\011\197\011\197\011\197\011\197\011\197\011\197\000\000\000\000\000\000\000\000\000\000\011\197\000\000\011\197\011\197\000\000\000\000\000\000\000\000\000\000\011\197\011\197\011\197\000\000\000\000\000\000\000\000\000\000\000\000\011\197\000\000\011\197\011\197\011\197\011\197\011\197\011\197\011\197\011\197\011\197\000\000\011\197\000\000\000\000\000\000\000\000\011\197\000\000\011\197\011\197\011\197\000\000\000\000\000\000\000\000\011\197\000\000\000\000\011\197\000\000\011\197\011\197\000\000\011\197\011\197\011\197\011\197\000\000\000\000\000\000\000\000\000\000\011\197\000\000\011\197\011\197\000\000\017\026\011\197\011\197\011\197\011\197\011\197\011\197\000\000\000\000\011\197\011\197\018\158\000\000\000\000\011\197\011\197\000\000\000\000\011\197\011\197\011\197\011\197\011\193\000\000\011\193\000\000\011\193\000\000\000\000\000\000\011\193\000\000\000\000\011\193\000\000\011\193\000\000\000\000\018\194\000\000\000\000\011\193\011\193\011\193\000\000\011\193\011\193\011\193\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\011\193\000\000\000\000\000\000\000\000\000\000\000\000\011\193\019Z\011\193\019\210\019\234\011\193\000\000\000\000\000\000\000\000\000\000\011\193\000\000\020\002\011\193\000\000\000\000\000\000\000\000\000\000\011\193\011\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\193\000\000\011\193\011\193\018\218\019r\020\026\0202\020\146\011\193\011\193\000\000\011\193\000\000\000\000\000\000\000\000\011\193\000\000\011\193\011\193\020\170\000\000\000\000\000\000\000\000\011\193\000\000\000\000\011\193\000\000\011\193\020\194\000\000\011\193\011\193\011\193\011\193\000\000\000\000\000\000\000\000\000\000\011\193\000\000\011\193\011\193\000\000\011\193\011\193\011\193\011\193\020J\011\193\011\193\000\000\000\000\011\193\020\218\011\193\000\000\000\000\020b\020z\000\000\000\000\011\193\011\193\020\242\021\n\r]\000\000\r]\000\000\r]\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\r]\000\000\000\000\r]\000\000\000\000\r]\r]\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\r]\r]\000\000\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\r]\r]\r]\r]\r]\r]\r]\000\000\r]\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\r]\r]\000\000\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\000\000\017\026\r]\r]\r]\r]\r]\r]\000\000\000\000\r]\r]\018\158\000\000\000\000\r]\r]\000\000\000\000\r]\r]\r]\r]\002\189\000\000\002\189\000\000\002\189\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\002\189\000\000\002\189\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\002\189\000\000\002\189\002\189\027\166\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\017\026\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\002\189\002\189\018\158\000\000\000\000\002\189\002\189\000\000\000\000\002\189\002\189\002\189\002\189\002\181\000\000\002\181\000\000\002\181\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\002\181\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\017\026\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\002\181\002\181\018\158\000\000\000\000\002\181\002\181\000\000\000\000\002\181\002\181\002\181\002\181\002\177\000\000\002\177\000\000\002\177\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\018\194\000\000\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\019Z\002\177\019\210\019\234\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\020\002\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\018\218\019r\020\026\0202\020\146\002\177\002\177\000\000\002\177\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\020\170\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\020\194\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\021\"\002\177\002\177\021Z\020J\002\177\002\177\000\000\000\000\002\177\020\218\002\177\000\000\000\000\020b\020z\000\000\000\000\002\177\002\177\020\242\021\n\002\185\000\000\002\185\000\000\002\185\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\018\194\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\019Z\002\185\019\210\019\234\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\020\002\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\018\218\019r\020\026\0202\020\146\002\185\002\185\000\000\002\185\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\020\170\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\020\194\000\000\002\185\002\185\027\194\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\021\"\002\185\002\185\021Z\020J\002\185\002\185\000\000\000\000\002\185\020\218\002\185\000\000\000\000\020b\020z\000\000\000\000\002\185\002\185\020\242\021\n\002\173\000\000\002\173\000\000\002\173\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\002\173\000\000\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\017\026\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\002\173\018\158\000\000\000\000\002\173\002\173\000\000\000\000\002\173\002\173\002\173\002\173\002\169\000\000\002\169\000\000\002\169\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\018\194\000\000\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\019Z\002\169\019\210\019\234\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\020\002\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\018\218\019r\020\026\0202\020\146\002\169\002\169\000\000\002\169\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\020\170\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\020\194\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\021\"\002\169\002\169\021Z\020J\002\169\002\169\000\000\000\000\002\169\020\218\002\169\000\000\000\000\020b\020z\000\000\000\000\002\169\002\169\020\242\021\n\011\217\000\000\011\217\000\000\011\217\000\000\000\000\000\000\011\217\000\000\000\000\011\217\000\000\011\217\000\000\000\000\011\217\000\000\000\000\011\217\011\217\011\217\000\000\011\217\011\217\011\217\000\000\000\000\000\000\000\000\000\000\011\217\011\217\011\217\011\217\011\217\000\000\011\217\000\000\000\000\000\000\000\000\000\000\000\000\011\217\011\217\011\217\011\217\011\217\011\217\000\000\000\000\000\000\000\000\000\000\011\217\000\000\011\217\011\217\000\000\000\000\000\000\000\000\000\000\011\217\011\217\011\217\000\000\000\000\000\000\000\000\000\000\000\000\011\217\000\000\011\217\011\217\011\217\011\217\011\217\011\217\011\217\011\217\011\217\000\000\011\217\000\000\000\000\000\000\000\000\011\217\000\000\011\217\011\217\011\217\000\000\000\000\000\000\000\000\011\217\000\000\000\000\011\217\000\000\011\217\011\217\000\000\011\217\011\217\011\217\011\217\000\000\000\000\000\000\000\000\000\000\011\217\000\000\011\217\011\217\000\000\017\026\011\217\011\217\011\217\011\217\011\217\011\217\000\000\000\000\011\217\011\217\018\158\000\000\000\000\011\217\011\217\000\000\000\000\011\217\011\217\011\217\011\217\011\213\000\000\011\213\000\000\011\213\000\000\000\000\000\000\011\213\000\000\000\000\011\213\000\000\011\213\000\000\000\000\018\194\000\000\000\000\011\213\011\213\011\213\000\000\011\213\011\213\011\213\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\011\213\000\000\000\000\000\000\000\000\000\000\000\000\011\213\019Z\011\213\019\210\019\234\011\213\000\000\000\000\000\000\000\000\000\000\011\213\000\000\020\002\011\213\000\000\000\000\000\000\000\000\000\000\011\213\011\213\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\213\000\000\011\213\011\213\018\218\019r\020\026\0202\020\146\011\213\011\213\000\000\011\213\000\000\000\000\000\000\000\000\011\213\000\000\011\213\011\213\020\170\000\000\000\000\000\000\000\000\011\213\000\000\000\000\011\213\000\000\011\213\020\194\000\000\011\213\011\213\011\213\011\213\000\000\000\000\000\000\000\000\000\000\011\213\000\000\011\213\011\213\000\000\011\213\011\213\011\213\011\213\020J\011\213\011\213\000\000\000\000\011\213\020\218\011\213\000\000\000\000\020b\020z\000\000\000\000\011\213\011\213\020\242\021\n\003\197\000\000\003\197\000\000\003\197\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\000\000\000\000\003\197\000\000\000\000\003\197\003\197\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\003\197\003\197\003\197\003\197\000\000\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\003\197\003\197\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\000\000\003\197\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\003\197\000\000\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000\003\197\003\197\000\000\003\197\003\197\003\197\003\197\000\000\000\000\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\017\026\003\197\003\197\003\197\003\197\003\197\003\197\000\000\000\000\003\197\003\197\018\158\000\000\000\000\003\197\003\197\000\000\000\000\003\197\003\197\003\197\003\197\003\193\000\000\003\193\000\000\003\193\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\000\000\000\000\018\194\000\000\000\000\003\193\003\193\003\193\000\000\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\003\193\000\000\000\000\000\000\000\000\000\000\000\000\003\193\019Z\003\193\019\210\019\234\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\020\002\003\193\000\000\000\000\000\000\000\000\000\000\003\193\003\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\018\218\019r\020\026\0202\020\146\003\193\003\193\000\000\003\193\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\020\170\000\000\000\000\000\000\000\000\003\193\000\000\000\000\003\193\000\000\003\193\020\194\000\000\003\193\003\193\003\193\003\193\000\000\000\000\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\021\"\003\193\003\193\021Z\020J\003\193\003\193\000\000\000\000\003\193\020\218\003\193\000\000\000\000\020b\020z\000\000\000\000\003\193\003\193\020\242\021\n\002\161\000\000\002\161\000\000\002\161\000\000\000\000\000\000\002\161\000\000\000\000\002\161\000\000\002\161\000\000\000\000\002\161\000\000\000\000\002\161\002\161\002\161\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\161\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\002\161\002\161\002\161\002\161\002\161\002\161\002\161\000\000\002\161\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\002\161\000\000\000\000\002\161\000\000\002\161\002\161\000\000\002\161\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\002\161\002\161\002\161\002\161\002\161\002\161\002\161\000\000\000\000\002\161\002\161\018\158\000\000\000\000\002\161\002\161\000\000\000\000\002\161\002\161\002\161\002\161\012\001\000\000\012\001\000\000\012\001\000\000\000\000\000\000\012\001\000\000\000\000\012\001\000\000\012\001\000\000\000\000\012\001\000\000\000\000\012\001\012\001\012\001\000\000\012\001\012\001\012\001\000\000\000\000\000\000\000\000\000\000\012\001\012\001\012\001\012\001\012\001\000\000\012\001\000\000\000\000\000\000\000\000\000\000\000\000\012\001\012\001\012\001\012\001\012\001\012\001\000\000\000\000\000\000\000\000\000\000\012\001\000\000\012\001\012\001\000\000\000\000\000\000\000\000\000\000\012\001\012\001\012\001\000\000\000\000\000\000\000\000\000\000\000\000\012\001\000\000\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\000\000\012\001\000\000\000\000\000\000\000\000\012\001\000\000\012\001\012\001\012\001\000\000\000\000\000\000\000\000\012\001\000\000\000\000\012\001\000\000\012\001\012\001\000\000\012\001\012\001\012\001\012\001\000\000\000\000\000\000\000\000\000\000\012\001\000\000\012\001\012\001\000\000\017\026\012\001\012\001\012\001\012\001\012\001\012\001\000\000\000\000\012\001\012\001\018\158\000\000\000\000\012\001\012\001\000\000\000\000\012\001\012\001\012\001\012\001\011\253\000\000\011\253\000\000\011\253\000\000\000\000\000\000\011\253\000\000\000\000\011\253\000\000\011\253\000\000\000\000\018\194\000\000\000\000\011\253\011\253\011\253\000\000\011\253\011\253\011\253\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\011\253\000\000\000\000\000\000\000\000\000\000\000\000\011\253\019Z\011\253\019\210\019\234\011\253\000\000\000\000\000\000\000\000\000\000\011\253\000\000\020\002\011\253\000\000\000\000\000\000\000\000\000\000\011\253\011\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\253\000\000\011\253\011\253\018\218\019r\020\026\0202\020\146\011\253\011\253\000\000\011\253\000\000\000\000\000\000\000\000\011\253\000\000\011\253\011\253\020\170\000\000\000\000\000\000\000\000\011\253\000\000\000\000\011\253\000\000\011\253\020\194\000\000\011\253\011\253\011\253\011\253\000\000\000\000\000\000\000\000\000\000\011\253\000\000\011\253\011\253\000\000\011\253\011\253\011\253\011\253\020J\011\253\011\253\000\000\000\000\011\253\020\218\011\253\000\000\000\000\020b\020z\000\000\000\000\011\253\011\253\020\242\021\n\011\237\000\000\011\237\000\000\011\237\000\000\000\000\000\000\011\237\000\000\000\000\011\237\000\000\011\237\000\000\000\000\011\237\000\000\000\000\011\237\011\237\011\237\000\000\011\237\011\237\011\237\000\000\000\000\000\000\000\000\000\000\011\237\011\237\011\237\011\237\011\237\000\000\011\237\000\000\000\000\000\000\000\000\000\000\000\000\011\237\011\237\011\237\011\237\011\237\011\237\000\000\000\000\000\000\000\000\000\000\011\237\000\000\011\237\011\237\000\000\000\000\000\000\000\000\000\000\011\237\011\237\011\237\000\000\000\000\000\000\000\000\000\000\000\000\011\237\000\000\011\237\011\237\011\237\011\237\011\237\011\237\011\237\011\237\011\237\000\000\011\237\000\000\000\000\000\000\000\000\011\237\000\000\011\237\011\237\011\237\000\000\000\000\000\000\000\000\011\237\000\000\000\000\011\237\000\000\011\237\011\237\000\000\011\237\011\237\011\237\011\237\000\000\000\000\000\000\000\000\000\000\011\237\000\000\011\237\011\237\000\000\017\026\011\237\011\237\011\237\011\237\011\237\011\237\000\000\000\000\011\237\011\237\018\158\000\000\000\000\011\237\011\237\000\000\000\000\011\237\011\237\011\237\011\237\011\233\000\000\011\233\000\000\011\233\000\000\000\000\000\000\011\233\000\000\000\000\011\233\000\000\011\233\000\000\000\000\018\194\000\000\000\000\011\233\011\233\011\233\000\000\011\233\011\233\011\233\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\011\233\000\000\000\000\000\000\000\000\000\000\000\000\011\233\019Z\011\233\019\210\019\234\011\233\000\000\000\000\000\000\000\000\000\000\011\233\000\000\020\002\011\233\000\000\000\000\000\000\000\000\000\000\011\233\011\233\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\233\000\000\011\233\011\233\018\218\019r\020\026\0202\020\146\011\233\011\233\000\000\011\233\000\000\000\000\000\000\000\000\011\233\000\000\011\233\011\233\020\170\000\000\000\000\000\000\000\000\011\233\000\000\000\000\011\233\000\000\011\233\020\194\000\000\011\233\011\233\011\233\011\233\000\000\000\000\000\000\000\000\000\000\011\233\000\000\011\233\011\233\000\000\011\233\011\233\011\233\011\233\020J\011\233\011\233\000\000\000\000\011\233\020\218\011\233\000\000\000\000\020b\020z\000\000\000\000\011\233\011\233\020\242\021\n\002\165\000\000\002\165\000\000\002\165\000\000\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\000\000\000\000\002\165\000\000\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\002\165\002\165\002\165\002\165\000\000\002\165\000\000\000\000\000\000\002]\000\000\000\000\002\165\002\165\002\165\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\000\000\000\000\002]\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\n\000\000\002\165\000\000\002\165\002\165\002\165\002\165\002\165\002\165\002\165\002\165\002\165\000\000\002\165\002]\000\000\002]\000\000\002\165\000\000\002\165\002\165\002\165\002]\000\000\000\000\000\000\002\165\015^\002]\002\165\002]\002\165\002\165\000\000\002\165\002\165\002\165\002\165\000\000\002]\002]\000\000\000\000\002\165\000\000\002\165\002\165\000\000\002\165\002\165\002\165\002\165\002\165\002\165\002\165\000\000\000\000\002\165\002\165\018\158\000\000\000\000\002\165\002\165\000\000\000\000\002\165\002\165\002\165\002\165\000\006\027z\002]\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\002]\bf\000\000\bj\000\000\tV\000\000\000\000\000\242\007%\000\000\tZ\001\234\000\000 \"\002]\bn\000\000\t^\tb \222\000\000\000\000\tf\t\130\000\000\br\000\000\t\134\000\000\031\182\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000 \026\003\138\000\n\000\000\t\206\014\250 2\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000 :\nZ\000\000\000\000\011\162\000\000\002]\000\000\011n J\000\000\015>\000\000\nr\nv\011\222\015\022\000\000\000\000\002]\002]\011\230\000\000\000\000\015J\015b\017\166\n\138\n\142 R\017\186 \146\000\000\000\000\007%\007%\000\000\000\000\015&\000\000\015*\tz\000\000\t\030\003\154\000\000\000\000\000\000\000\000\000\000\000\000\t\"\000\000 \206 \218\n\146\0152\000\000\014\202\000\000\017:\007\166\000\006\001\234\017\190\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\007E\n%\000\000\000\000\000\000\n%\tZ\001\234\tv\000\000\000\000\bn\000\000\t^\tb\000\000\003\138\000\000\tf\t\130\000\000\br\000\000\t\134\000\000\031\182\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000 \026\003\138\000\000\000\000\t\206\014\250 2\000\000\000\000\014\254\015\002\015\014\015\026\015.\r\170 :\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000 J\000\000\015>-\226\nr\nv\000\000\015\022.\002\000\000\n%\000\000\000\000\000\000\000\000\015J\015b\017\166\n\138\n\142 R\017\186 \146\000\000\000\000.#\027\218\000\000\000\000\015&\000\000\015*\000\000\000\000\000\000\001\230\000\000\000\000\000\000\017\026\000\000\000\000\000\000\000\000\000\000 \218\n\146\0152\000\000\000\000\018\158\017:\007\166\000\006\001\234\017\190\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf!\022\bj\000\000.R\000\000\000\000\000\000\000\000\000\000\tZ\001\234\000\000\000\000\003\234\bn!\142\t^\tb\000\000\003\138\000\000\tf\t\130\000\000\br\000\000\t\134!\166\031\182\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000 \026\003\138\000\000\000\000\t\206\014\250 2\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000 :\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000 J\000\000\015>-\226\nr\nv\000\000\015\022.\002\000\000\000\000\000\000\000\000\000\000\000\000\015J\015b\017\166\n\138\n\142 R\017\186 \146\000\000\000\000\007M\000\000\000\000\000\000\015&\000\000\015*\001\202\b\130\003\154\016\002\000\000\003j\000\000\b\134\000\000\000\000\bf\001\n\000\000 \218\n\146\0152\003v\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\001\014\001\018\001\022\b\234\001\030\001\"\015\t\000\000\001\206\000\000\000\000\000\000\000\000\000\000\b\238\001&\000\000\001*\011\142\000\000\000\000\015~\001\210\001\190\0012\000\000\000\000\0016\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\n~\000\000\000\000\nZ\015\t\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\n^\nr\nv\001N\nz\n\130\015\t\000\000\000\000\001R\015\t\022*\000\000\000\000\000\000\n\138\n\142\015\t\000\000\011\006\001V\004F\000\000\015\t\000\000\004\157\004\157\001Z\000\000\000\000\000\000\000\000\000\000\004\157\000\000\000\000\000\000\004\157\000\000\001\150\011\146\000\000\006\129\n\146\000\000\004\157\001\154\000\000\001\158\007\166\001\162\001\166\000\000\004\157\001\170\000\000\001\174\001\178\000\181\000\000\003\150\003\154\000\181\004\157\003j\000\000\018\022\000\000\000\000\bf\004\157\000\000\004\157\000\181\000\000\000\181\000\000\000\181\004\157\000\181\001\234\000\000\018.\000\000\bn\004\157\000\000\000\242\000\000\000\000\0186\000\181\000\153\000\000\br\000\000\t\134\000\000\000\181\000\000\000\000\000\153\000\000\000\181\000\000\t\198\000\153\001\190\000\000\000\181\000\000\000\000\000\181\003\138\000\000 N\t\206\014\250\000\181\000\181\000\181\014\254\015\002\015\014\000\000\023b\006\129\000\181\nZ\000\181\000\181\000\153\000\000\000\000\000\000\000\000\000\181\000\000\000\153\000\181\nr\nv\011\162\015\022\000\181\000\000\011n\015\186\000\000\000\000\000\000\000\153\000\000\011\222\n\138\n\142\000\181\004F\000\181\011\230\000\000\000\181\000\181\000\149\000\000\015&\000\000\015*\000\000\000\000\000\000\000\000\000\149\000\181\000\000\000\153\000\000\000\149\000\000\000\000\000\181\000\181\n\146\0152\000\000\000\000\000\000\017:\007\166\000\000\000\000\000\000\000\181\000\205\000\181\003\150\003\154\000\205\000\000\003j\000\000\018\022\000\149\000\000\bf\000\000\000\153\000\000\000\205\000\149\000\205\002\022\000\205\000\000\000\205\001\234\000\000\018.\000\000\bn\000\000\000\153\000\149\000\153\000\000\0186\000\205\000\153\000\000\br\000\000\t\134\000\000\000\205\000\000\000\000\000\153\000\000\000\205\000\000\t\198\000\153\001\190\012.\000\205\000\000\000\149\000\205\003\138\000\000\000\000\t\206\014\250\000\205\000\205\000\205\014\254\015\002\015\014\000\000\023b\000\000\000\205\nZ\000\205\000\205\000\153\000\000\000\000\000\000\000\000\000\205\000\000\000\153\000\205\nr\nv\000\149\015\022\000\205\000\000\000\000\002:\000\000\000\000\000\000\000\153\000\000\n\205\n\138\n\142\000\205\000\149\000\205\000\149\000\000\000\205\000\205\000\000\000\000\015&\000\000\015*\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\153\000\000\000\000\000\000\000\000\000\205\000\205\n\146\0152\000\000\000\000\000\000\017:\007\166\b\130\003\154\011~\000\205\003j\000\205\b\134\000\000\000\000\bf\001\n\000\000\000\000\000\000\000\000\003v\000\000\000\153\000\000\n\205\001\234\000\000\004\174\n\205\001\014\001\018\001\022\b\234\001\030\001\"\n\205\000\000\000\153\000\000\000\153\000\000\n\205\000\000\b\238\001&\000\000\001*\011\142\000\000\000\000\b\230\000\000\001\190\0012\000\000\000\000\0016\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\n~\000\000\000\000\nZ\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\n^\nr\nv\001N\nz\n\130\000\000\000\000\000\000\001R\002]\002]\000\000\000\000\000\000\n\138\n\142\000\000\002]\011\006\001V\000\000\000\000\000\000\000\000\002]\002]\001Z\000\000\000\000\002]\000\000\000\000\002]\000\000\000\000\000\000\002]\000\n\001\150\011\146\000\000\000\000\n\146\000\000\002]\001\154\000\000\001\158\007\166\001\162\001\166\000\000\000\n\001\170\002]\001\174\001\178\006\029\000\000\b\130\003\154\006\029\002]\003j\000\000\r6\000\000\000\000\bf\002]\000\000\002]\006\029\000\000\000\000\000\000\006\029\002]\006\029\001\234\000\000\r\130\000\000\000\000\002]\000\000\b\190\000\000\000\000\015n\006\029\000\000\000\000\000\000\000\000\000\000\000\000\006\029\000\000\002]\000\000\b\210\000\000\011\158\015\254\000\000\001\190\000\000\006\029\000\000\000\000\006\029\003\138\000\000\002]\n\026\n\030\006\029\006\029\015\005\n\"\000\000\n*\000\000\016\142\000\000\006\029\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\029\006\029\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\000\000\000\000\000\242\000\000\000\000\tj\000\000\n\138\n\142\006\029\000\000\006\029\021\138\000\000\006\029\006\029\000\000\000\000\002]\002]\011\158\000\000\000\000\000\000\000\000\000\000\002]\000\000\015\005\000\000\003\182\000\000\015\005\021\182\006\029\n\146\000\000\000\000\002]\015\005\000\000\007\166\000\000\004F\000\006\015\005\000\n\006\029\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\029R\011\162\bf\003j\bj\011n\015\134\002]\r)\000\242\r)\r)\011\222\001\234\000\000\002]\004F\bn\011\230\t^\tb\000\000\002]\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\029V\000\000\003\138\000\000\000\000\t\206\014\250\007\017\002]\000\000\014\254\015\002\015\014\015\026\015.\000\000\029b\nZ(n\000\000\011\162\000\000\000\000\000\000\011n\016F\000\000\015>\007\017\nr\nv\011\222\015\022\000\000\000\000\004F\000\000\011\230\000\000\000\000\017\230\015b\017\166\n\138\n\142\r\158\017\186\000\000\000\000\000\000\n\142\000\000\007\017\000\000\015&\000\000\015*\000\000\000\000\000\000\000\000\007\017\000\000(z\000\000\r)\000\000\007\017\tN\000\242\000\000\n\146\0152\r)\000\000\000\000\017:\007\166\000\006\007\017\017\190(&\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\029R\000\000\bf\003j\bj\000\000\000\000\000\000\r!\000\000\r!\r!\000\000\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\007\017(j\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\007\017\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\029V\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\029b\nZ(\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\230\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\n\142\000\000\000\000\002]\015&\000\000\015*\002]\002]\002]\000\000\002]\002](\142\002]\r!\000\000\002]\000\000\002]\000\000\n\146\0152\r!\002]\000\000\017:\007\166\002]\002]\017\190(&\002]\000\000\002]\002]\000\n\000\000\000\000\r\154\002]\000\000\002]\002]\002]\000\000\029\n\000\000\000\000\002]\002]\000\000\002]\002]\002]\002]\002]\002]\000\000\000\000\000\000\002]\000\000\000\000\002]\002]\000\000\000\000\002]\002]\002]\002]\002]\002]\003\154\000\000\002]\000\000\000\000\000\000\000\000\002]\000\000\000\000\000\000\000\000\002]\002]\002]\002]\000\000\002]\002]\001\234\000\000\000\000\000\000\000\000\000\000\002]\002]\002]\002]\002]\000\000\002]\029F\"n\000\000\000\000\002]\000\000\000\000\002]\000\000\002]\001\021\000\000#\174\000\000\t\146\000\000#\178\000\000\000\000\000\000\003\138\000\000\000\000&\254\002]\002]\000\000\000\000#\226\002]\002]\001\021\000\000\002]\000\014\000\018\000\022\000\026\000\030\000\000\000\000\000\"\000&\000*\000.\0002\000\000\0006\000:\000\000\000\000\000\000\000>\000\000\000\000\001\021\000B\b~\000\000#\242\000\000\000\000\000\000\000F\001\021\000\000\000\000\000\000\000\242\000J\001\021\000N\000\000\000R\000V\000Z\000^\000b\000f\000\000\000\000\001\021\001\021\000j\000n\000\000\000r\000v\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000~\000\000\000\000\000\000\000\000\000\130\000\134\000\000\000\000\000\000\001\021\000\000\000\138\000\142\000\146\000\000\000\000\000\000\000\000\011\162\000\000\001\021\000\000\011n'\002\000\000\000\150\000\154\000\158\000\162\011\222\000\166\000\170\000\000\000\174\000\000\011\230\000\000\000\178\000\182\000\186\000\000\000\000\000\000\000\000\000\000\000\190\000\006\000\194\000\198\007\017\003\146\003\150\003\154\007\017\003\158\003j\000\202\003\170\000\206\000\000\bf\000\000\bj\000\000\007\017\000\000\000\210\000\214\007\017\000\218\007\017\001\234\000\000\000\000\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\007\017\t\130\000\000\br\000\000\t\134\000\000\007\017\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\007\017\003\138\000\000\000\000\t\206\014\250\007\017\tN\000\000\014\254\015\002\015\014\015\026\015.\000\000\007\017\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\190\015b\017\166\n\138\n\142\007\017\017\186\007\017\000\000\000\000\007\017\007\017\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\030\214\000\000\bf\000\000\bj\007\017\n\146\0152\000\000\000\000(2\017:\007\166\001\234\000\000\017\190\000\000\bn\007\017\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\194\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\028\218\000\000\n&\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\150\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000A\015&\000\000\015*\000A\000A\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000A\000\000\000A\000\000\n\146\0152\t\173\000\000\000\000\017:\007\166\000A\000\000\017\190\000\000\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000A\000\000\000A\000\000\000A\000\000\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000=\000A\000\000\000A\000=\000=\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000=\000\000\000=\000\000\000A\000A\t\169\000\000\000\000\000A\000A\000=\000\000\000A\000\000\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000=\000\000\000=\000\000\000=\000\000\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\000\000\000=\000=\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000=\000\000\000=\018\181\018\181\018\181\000\000\018\181\018\181\000\000\018\181\000\000\000\000\018\181\000\000\018\181\000\000\000=\000=\t\185\000\000\000\000\000=\000=\018\181\000\000\000=\000\000\018\181\000\000\018\181\018\181\000\000\000\000\000\000\000\000\018\181\000\000\018\181\000\000\018\181\000\000\000\000\000\000\000\000\018\181\018\181\000\000\018\181\018\181\018\181\018\181\018\181\018\181\000\000\000\000\000\000\018\181\000\000\000\000\018\181\018\181\000\000\000\000\000\000\018\181\018\181\018\181\018\181\018\181\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\018\181\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\018\181\018\181\018\181\018\181\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\018\177\018\181\000\000\018\181\018\177\018\177\018\177\000\000\018\177\018\177\000\000\018\177\000\000\000\000\018\177\000\000\018\177\000\000\018\181\018\181\t\181\000\000\000\000\018\181\018\181\018\177\000\000\018\181\000\000\018\177\000\000\018\177\018\177\000\000\000\000\000\000\000\000\018\177\000\000\018\177\000\000\018\177\000\000\000\000\000\000\000\000\018\177\018\177\000\000\018\177\018\177\018\177\018\177\018\177\018\177\000\000\000\000\000\000\018\177\000\000\000\000\018\177\018\177\000\000\000\000\000\000\018\177\018\177\018\177\018\177\018\177\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\018\177\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\018\177\018\177\018\177\018\177\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\006\018\177\000\000\018\177\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\018\177\018\177\000\000\000\000\000\000\018\177\018\177\001\234\000\000\018\177\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025n\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\026\134\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\162\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\026\186\000\000\026\214\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\218\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\bN\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026'\030\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000'&\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031:\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\166\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028j\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028F\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\"\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\n\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\017\030\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\0176\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027V\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\254\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\018^\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\018v\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\142\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\198\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\222\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\002\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019.\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019F\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019^\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019v\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\142\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\166\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\190\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\214\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\238\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\006\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\030\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0206\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020N\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020~\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\150\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\174\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\198\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\222\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\246\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\014\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\021&\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\021>\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021F\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021^\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023~\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\162\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\198\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\238\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\018\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0246\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024b\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\134\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\170\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\198\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\130\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\178\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\210\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\242\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\014\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026&\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026:\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026V\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\150\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\170\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\015.\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\198\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000\027\238\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026\028\006\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\014\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\006\015&\000\000\015*\003\146\003\150\003\154\000\000\003\158\003j\000\000'B\000\000\000\000\bf\000\000\bj\000\000\n\146\0152\000\000\000\000\000\000\017:\007\166\001\234\000\000\017\190\000\000\bn\000\000\t^\tb\000\000\000\000\000\000\000\000\t\130\000\000\br\000\000\t\134\000\000\000\000\000\000\000\000\t\178\t\182\000\000\t\186\t\198\t\210\t\214\t\222\r\150\000\000\019\133\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\015\026'Z\000\000\000\000\nZ\000\000\000\000\007\245\000\000\000\000\000\000\007\245\000\000\000\000\015>\000\000\nr\nv\000\000\015\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000'b\015b\017\166\n\138\n\142\000\000\017\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015&\000\000\015*\000\000\000\000\000\000\r\185\000\000\"z\000\000\r\185\r\185\000\000\000\000\r\185\000\000\r\185\n\146\0152\r\185\000\000\000\000\017:\007\166\r\185\r\185\017\190\r\185\r\185\tZ\r\185\019\133\r\185\000\000\019\133\000\000\019\133\r\185\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\007\245\r\185\"\238\000\000\r\185\000\000\r\185\019\133\000\000\000\000\019\133 \026\r\185\000\000\000\000\r\185\r\185 2\007\245\r\185\r\185\007\245\r\185\000\000\r\185\000\000\000\000\r\185#\146#\162\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\r\185\r\185\r\185\000\000\r\185\r\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\r\185\000\000\000\000\000\000\r\185\000\000\r\185\007=\000\000\000\000\000\000\000\000\000\000\n\222\000\000\000\000\000\000\000\000$\218\000\000\r\185\r\185\r\185\000\000\r\185\r\185\000\000\r\185\000\000\r\185\000\000\r\185\019A\r\185\000\000\r\185\019A\r\185\000\000\019A\019A\000\000\000\000\019A\019A\000\000\000\000\019A\019A\000\000\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\000\000\000\000\019A\000\000\000\000\000\000\019A\000\000\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\019A\019A\019A\000\000\019A\019A\019A\000\000\019A\019A\019A\019A\019A\019A\000\000\019A\019A\019A\019A\019A\019A\002^\019A\000\000\000\000\002^\019A\000\000\000\000\002^\019A\000\000\000\000\000\000\019A\000\000\000\000\000\000\019A\000\000\019A\019A\019A\019A\019A\019A\019A\019A\019A\019A\000\000\019A\019A\000\000\000\000\019A\000\000\019A\000\000\019A\019A\019A\002b\019A\019A\019A\005n\019A\019A\000\000\005\146\019A\019A\000\000\019A\019A\019A\019A\019A\019A\019A\019A\019A\015)\019A\019A\025\166\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\000\000\bf\000\000\000\000\000\000\000\000\015)\015)\000\000\015)\015)\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\149\000\000\025\198\000\000\000\000\000\000\000\000\000\000\000\000\000\149\015)\006\157\b\210\000\000\000\149\b\230\025\230\001\190\000\000\000\000\012q\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\015)\n\"\000\000\n*\nN\n~\000\000\000\000\nZ\000\149\000\000\000\000\000\000\000\000\012q\000\000\000\149\015)\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\242\000\000\000\000\000\149\000\000\000\000\000\000\000\000\n\138\n\142\000\000\000\000\011\006\015)\000\000\015)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149\000\000\015)\015)\000\000\000\000\015)\015)\000\000\n\146\000\000\015)\011\158\015)\000\000\007\166\015%\015)\000\000\015)\b\130\003\154\000\000\000\000\003j\012q\b\134\000\000\011\162\bf\000\000\000\149\011n\016b\015%\015%\002:\015%\015%\011\222\001\234\000\000\000\000\004F\000\000\011\230\000\149\b\190\000\149\000\000\000\149\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\149\015%\000\000\b\210\000\000\000\149\011z\000\000\001\190\000\000\000\000\012q\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\015%\n\"\000\000\n*\nN\n~\000\000\000\000\nZ\000\149\000\000\000\000\000\000\000\000\012q\000\000\000\149\015%\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\000\000\000\000\000\149\000\000\000\000\011\162\000\000\n\138\n\142\011n\016\154\011\006\015%\000\000\015%\000\000\011\222\000\000\000\000\000\000\004F\000\000\011\230\000\000\000\000\000\000\000\149\000\000\015%\015%\000\000\000\000\015%\015%\000\000\n\146\000\000\015%\000\000\015%\019\t\007\166\000\000\015%\019\t\015%\000\000\001\230\019\t\000\000\000\000\012q\000\000\000\000\000\250\000\000\005f\000\149\002\158\019\t\019\t\019\t\030\002\019\t\019\t\019\t\000\000\000\000\000\000(\250\000\000\000\000\000\149\007\025\000\149\tZ\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\019\t\019\t\019\t(\254\000\000\019\t\000\000\000\000\000\000\003\226)&\019\t\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\019\t\019\t\019\t\000\000 \026\000\000\000\000\000\000\000\000\019\t 2\019\t\019\t\000\000\000\000\000\000\000\000\000\000\019\t :\000\000\019\t\000\000\000\000\000\000\000\000\005v\000\000 J\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\019\t\000\000\019\t\019\t\000\000\000\000\000\000 R\000\000)\186\000\000\000\000\007\025\007\025\019\t\000\000\019\t\000\000\019\t\019\t\000\000\012\217\019\t\000\000\000\000\012\217\000\000\019\t\001\230\012\217\019\t\019\t)\202\019\t\000\000\019\t\019\t\012\217\000\000\000\000\012\217\012\217\012\217\000\000\012\217\012\217\012\217\000\000\019I\0191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\217\000\000\000\000\000\000\000\000\000\000\000\000\012\217\012\217\012\217\000\000\019I\012\217\000\000\002\170\000\000\003\226\002\174\012\217\019I\0191\012\217\000\000\000\000\000\000\002\182\000\000\012\217\012\217\012\217\000\000\000\000\002\186\000\000\000\000\002\194\012\217\0191\012\217\012\217\019I\000\000\000\000\002\170\000\000\012\217\002\174\000\000\012\217\000\000\000\000\000\000\000\000\005v\t6\000\000\000\000\012\217\000\000\000\000\000\000\002\186\000\000\002\198\002\194\012\217\0191\012\217\012\217\000\000\012\217\012\217\000\000\016\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\217\000\000\012\217\000\000\012\217\012\217\000\000\012\225\012\217\000\000\002\198\012\225\000\000\012\217\001\230\012\225\012\217\012\217\000\000\012\217\000\000\012\217\012\217\012\225\000\000\000\000\012\225\012\225\012\225\000\000\012\225\012\225\012\225\000\000\000\000\002\202\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\225\000\000\000\000\000\000\000\000\000\000\000\000\012\225\012\225\012\225\000\000\000\000\012\225\000\000\000\000\000\000\003\226\000\149\012\225\000\000\002\202\012\225\000\000\000\000\000\000\000\000\000\149\012\225\012\225\012\225\000\000\000\149\000\000\000\000\000\000\000\000\012\225\000\000\012\225\012\225\000\000\000\000\000\000\000\000\000\000\012\225\000\000\011\162\012\225\000\000\000\000\011n\016\186\005v\000\000\000\000\000\149\012\225\011\222\000\000\000\000\000\000\004F\000\149\011\230\012\225\000\000\012\225\012\225\000\000\012\225\012\225\000\000\015\005\000\000\000\000\000\149\000\000\000\000\000\000\000\000\000\000\012\225\000\000\012\225\000\000\012\225\012\225\000\000\012\221\012\225\000\000\000\000\012\221\000\000\012\225\001\230\012\221\012\225\012\225\000\149\012\225\000\000\012\225\012\225\012\221\000\000\000\000\012\221\012\221\012\221\000\000\012\221\012\221\012\221\000\000\000\000\000\000\015\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\221\000\000\000\000\000\000\000\000\000\149\000\000\012\221\012\221\012\221\004\190\000\000\012\221\000\000\000\000\000\000\003\226\000\153\012\221\000\000\000\149\012\221\000\149\000\000\000\000\000\000\000\153\012\221\012\221\012\221\000\000\000\153\000\000\000\000\000\000\000\000\012\221\000\000\012\221\012\221\000\000\000\000\000\000\000\000\000\000\012\221\000\000\015\005\012\221\000\000\000\000\015\005\015\005\005v\000\000\019\133\000\153\012\221\015\005\000\000\000\000\000\000\004F\000\153\015\005\012\221\000\000\012\221\012\221\000\000\012\221\012\221\000\000\000\000\000\000\007\249\000\153\000\000\000\000\007\249\000\000\000\000\012\221\000\000\012\221\000\000\012\221\012\221\000\000\012\213\012\221\000\000\000\000\012\213\000\000\012\221\001\230\012\213\012\221\012\221\000\153\012\221\000\000\012\221\012\221\012\213\000\000\000\000\012\213\012\213\012\213\000\000\012\213\012\213\012\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\213\000\000\001\029\000\000\000\000\000\153\000\000\012\213\012\213\012\213\006\018\000\000\012\213\000\000\019\133\000\000\003\226\019\133\012\213\019\133\000\153\012\213\000\153\001\029\000\000\000\000\000\000\012\213\012\213\012\213\000\000\000\000\000\000\000\000\007\249\000\000\012\213\000\000\012\213\012\213\000\000\019\133\000\000\000\000\019\133\012\213\000\000\001\029\012\213!\030\000\000\000\000\007\249\005v\000\000\007\249\001\029\012\213\000\000\000\000\000\157\000\000\001\029\000\157\000\157\012\213\000\000\012\213\012\213\000\000\012\213\012\213\000\157\000\000\001\029\000\157\000\157\000\157\000\000\000\157\000\157\000\157\012\213\012u\012\213\000\000\012\213\012\213\000\000\000\000\012\213\000\000\000\000\000\157\000\000\012\213\000\000\000\000\012\213\012\213\000\157\012\213\000\157\012\213\012\213\000\157\001\029\012u\000\000\000\157\000\149\000\157\000\000\000\000\000\157\000\000\000\000\001\029\000\000\000\149\000\157\000\157\000\157\000\000\000\149\000\000\000\149\000\000\000\149\000\157\000\000\000\157\000\157\000\000\000\000\000\149\000\000\000\149\000\157\000\157\000\149\000\157\000\149\000\000\000\000\007\017\000\157\000\000\000\000\000\149\000\157\000\000\000\000\000\149\000\000\000\000\000\149\000\149\000\157\000\000\000\157\000\157\000\000\000\157\000\157\000\149\007\017\000\149\000\149\000\149\000\149\012u\000\149\000\149\000\149\000\157\012q\000\157\000\000\000\157\000\000\000\000\000\000\000\157\000\000\000\149\000\149\000\149\000\157\000\000\007\017\000\157\000\157\000\149\000\157\000\149\000\157\000\000\000\149\007\017\012q\000\000\000\149\000\000\000\149\007\017\tN\000\149\000\000\000\149\000\000\000\149\000\000\000\149\000\149\000\149\007\017\007\017\000\000\000\000\000\000\000\000\000\149\000\000\000\149\000\149\000\000\000\000\000\000\006\"\000\000\000\149\000\149\000\000\000\149\000\000\000\000\000\000\000\000\000\149\000\149\000\149\000\149\000\149\000\000\030&\000\000,\150\000\000\007\017\000\000\000\149\000\000\000\149\000\149\000\149\000\149\000\149\000\000\000\149\007\017\000\000\000\000\000\000\012q\000\000\000\000\000\000\000\149\002v\000\000\000\000\000\149\000\000\019\r\000\000\000\149\000\000\019\r\000\000\002z\000\149\019\r\r\198\000\149\000\149\000\000\000\149\001\234\000\149\005\138\000\000\000\000\019\r\019\r\019\r\000\000\019\r\019\r\019\r\000\000\000\000\000\000\000\000\000\000\000\000\t\014\000\000\000\000\000\000\000\000\019\r\000\000\r\194\000\000\001\246\000\000\000\000\019\r\019\r\019\r\003\138\000\000\019\r\000\000\000\000\000\000\000\000\000\153\019\r\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\153\019\r\019\r\019\r\000\000\000\153\000\000\000\000\000\000\000\000\019\r\000\000\019\r\019\r\000\000\000\000\000\000\000\000\000\000\019\r\000\000\r\206\019\r\000\000\000\000\000\000\000\000\019\r\000\000\000\000\000\153\019\r\000\000\000\000\000\000\000\000\000\000\000\153\000\000\019\r\000\000\019\r\019\r\000\000\019\r\019\r\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\019\r\000\000\019\r\000\000\019\r\019\r\000\000\018a\019\r\000\000\000\000\018a\000\000\019\r\019\145\018a\019\r\019\r\000\153\019\r\000\000\019\r\019\r\005\138\000\000\000\000\018a\018a\018a\000\000\018a\018a\018a\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\000\000\000\000\000\000\000\153\000\000\018a\018a,\"\030\022\000\000\018a\000\000\000\000\019\145\000\000\000\000\018a\000\000\000\153\018a\000\153\000\000\019\145\000\000\000\000\018a\018a\018a\019\145\019\145\000\242\000\000\000\000\000\000\018a\000\000\018a\018a\000\000\019\145\019\145\000\000\000\000\018a\000\000\000\000\018a\000\000\000\000\000\000\000\000\018a\000\000\000\000\000\000\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\018a\000\000\018a\018a\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018a\019\145\018a\018a\004M\000\000\018a\000\000\004M\000\000\000\000\018a\004M\000\000\018a\004F\000\000\018a\000\000\018a\018a\000\000\000\000\004M\004M\004M\000\000\004M\004M\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\004M\004M\004>\000\153\000\000\004M\000\000\000\000\000\000\000\000\000\000\004M\000\153\000\000\004M\000\000\000\000\000\153\000\000\000\000\004M\004M\004M\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\004M\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\004M\000\153\000\000\000\000\000\000\004M\000\000\000\000\000\153\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\004M\000\153\004M\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\000\000\004M\004M\017\177\000\000\004M\000\000\017\177\000\153\000\000\004M\017\177\000\000\004M\004F\000\000\004M\000\000\004M\004M\000\000\000\000\017\177\017\177\017\177\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\017\177\000\000\000\000\000\000,\134\000\000\000\000\017\177\017\177\004>\000\000\000\000\017\177\000\000\000\153\000\000\000\153\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\017\177\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\017\177\000\000\000\000\017\177\000\000\000\000\000\000\000\000\017\177\000\000\000\000\000\000\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\017\177\000\000\017\177\017\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\177\000\000\017\177\000\000\017\177\017\177\b\221\000\000\017\177\000\000\b\221\000\000\000\000\017\177\b\221\000\000\017\177\004F\000\000\017\177\000\000\017\177\017\177\000\000\000\000\b\221\b\221\b\221\000\000\b\221\b\221\b\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\000\000\b\221\b\221\b\221\000\000\000\000\b\221\000\000\000\000\000\000\004J\000\000\b\221\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\b\221\b\221\b\221\000\000\000\000\000\000\000\000\000\000\000\000\b\221\000\000\b\221\b\221\000\000\000\000\000\000\000\000\000\000\b\221\000\000\000\000\b\221\000\000\000\000\000\000\000\000\b\221\000\000\000\000\000\000\b\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\221\000\000\b\221\b\221\000\000\b\221\b\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\221\000\000\b\221\000\000\b\221\b\221\017\193\000\000\b\221\000\000\017\193\000\000\000\000\b\221\017\193\000\000\b\221\000\000\000\000\b\221\000\000\b\221\b\221\000\000\000\000\017\193\017\193\017\193\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\017\193\004>\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\017\193\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\017\193\000\000\000\000\017\193\000\000\000\000\000\000\000\000\017\193\000\000\000\000\000\000\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\017\193\000\000\017\193\017\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\193\000\000\017\193\000\000\017\193\017\193\017\209\000\000\017\193\000\000\017\209\000\000\000\000\017\193\017\209\000\000\017\193\004F\000\000\017\193\000\000\017\193\017\193\000\000\000\000\017\209\017\209\017\209\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\017\209\004>\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\017\209\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\017\209\000\000\000\000\017\209\000\000\000\000\000\000\000\000\017\209\000\000\000\000\000\000\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\017\209\000\000\017\209\017\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\209\000\000\017\209\000\000\017\209\017\209\017\217\000\000\017\209\000\000\017\217\000\000\000\000\017\209\017\217\000\000\017\209\004F\000\000\017\209\000\000\017\209\017\209\000\000\000\000\017\217\017\217\017\217\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\017\217\005*\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\017\217\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\017\217\000\000\000\000\017\217\000\000\000\000\000\000\000\000\017\217\000\000\000\000\000\000\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\017\217\000\000\017\217\017\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\217\000\000\017\217\000\000\017\217\017\217\017\241\000\000\017\217\000\000\017\241\000\000\000\000\017\217\017\241\000\000\017\217\004F\000\000\017\217\000\000\017\217\017\217\000\000\000\000\017\241\017\241\017\241\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\017\241\004>\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\017\241\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\017\241\000\000\000\000\017\241\000\000\000\000\000\000\000\000\017\241\000\000\000\000\000\000\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\017\241\000\000\017\241\017\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\241\000\000\017\241\000\000\017\241\017\241\017\249\000\000\017\241\000\000\017\249\000\000\000\000\017\241\017\249\000\000\017\241\004F\000\000\017\241\000\000\017\241\017\241\000\000\000\000\017\249\017\249\017\249\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\017\249\005*\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\017\249\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\017\249\000\000\000\000\017\249\000\000\000\000\000\000\000\000\017\249\000\000\000\000\000\000\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\017\249\000\000\017\249\017\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\249\000\000\017\249\000\000\017\249\017\249\018\001\000\000\017\249\000\000\018\001\000\000\000\000\017\249\018\001\000\000\017\249\004F\000\000\017\249\000\000\017\249\017\249\000\000\000\000\018\001\018\001\018\001\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\018\001\004>\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\018\001\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\018\001\000\000\000\000\018\001\000\000\000\000\000\000\000\000\018\001\000\000\000\000\000\000\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\018\001\000\000\018\001\018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\001\000\000\018\001\000\000\018\001\018\001\018\t\000\000\018\001\000\000\018\t\000\000\000\000\018\001\018\t\000\000\018\001\004F\000\000\018\001\000\000\018\001\018\001\000\000\000\000\018\t\018\t\018\t\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\018\t\005*\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\018\t\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\018\t\000\000\000\000\018\t\000\000\000\000\000\000\000\000\018\t\000\000\000\000\000\000\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\018\t\000\000\018\t\018\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\t\000\000\018\t\000\000\018\t\018\t\017\225\000\000\018\t\000\000\017\225\000\000\000\000\018\t\017\225\000\000\018\t\004F\000\000\018\t\000\000\018\t\018\t\000\000\000\000\017\225\017\225\017\225\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\017\225\004>\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\017\225\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\017\225\000\000\000\000\017\225\000\000\000\000\000\000\000\000\017\225\000\000\000\000\000\000\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\017\225\000\000\017\225\017\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\225\000\000\017\225\000\000\017\225\017\225\017\233\000\000\017\225\000\000\017\233\000\000\000\000\017\225\017\233\000\000\017\225\004F\000\000\017\225\000\000\017\225\017\225\000\000\000\000\017\233\017\233\017\233\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\017\233\005*\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\017\233\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\017\233\000\000\000\000\017\233\000\000\000\000\000\000\000\000\017\233\000\000\000\000\000\000\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\017\233\000\000\017\233\017\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\233\000\000\017\233\000\000\017\233\017\233\016\145\000\000\017\233\000\000\016\145\000\000\000\000\017\233\016\145\000\000\017\233\004F\000\000\017\233\000\000\017\233\017\233\000\000\000\000\016\145\016\145\016\145\000\000\016\145\016\145\016\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\145\000\000\000\000\000\000\000\000\000\000\000\000\016\145\016\145\004>\000\000\000\000\016\145\000\000\000\000\000\000\000\000\000\000\016\145\000\000\000\000\016\145\000\000\000\000\000\000\000\000\000\000\016\145\016\145\016\145\000\000\000\000\000\000\000\000\000\000\000\000\016\145\000\000\016\145\016\145\000\000\000\000\000\000\000\000\000\000\016\145\000\000\000\000\016\145\000\000\000\000\000\000\000\000\016\145\000\000\000\000\000\000\016\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\145\000\000\016\145\016\145\000\000\016\145\016\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\145\000\000\016\145\000\000\016\145\016\145\016\153\000\000\016\145\000\000\016\153\000\000\000\000\016\145\016\153\000\000\016\145\004F\000\000\016\145\000\000\016\145\016\145\000\000\000\000\016\153\016\153\016\153\000\000\016\153\016\153\016\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\153\000\000\000\000\000\000\000\000\000\000\000\000\016\153\016\153\005*\000\000\000\000\016\153\000\000\000\000\000\000\000\000\000\000\016\153\000\000\000\000\016\153\000\000\000\000\000\000\000\000\000\000\016\153\016\153\016\153\000\000\000\000\000\000\000\000\000\000\000\000\016\153\000\000\016\153\016\153\000\000\000\000\000\000\000\000\000\000\016\153\000\000\000\000\016\153\000\000\000\000\000\000\000\000\016\153\000\000\000\000\000\000\016\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\153\000\000\016\153\016\153\000\000\016\153\016\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\153\000\000\016\153\000\000\016\153\016\153\016\161\000\000\016\153\000\000\016\161\000\000\000\000\016\153\016\161\000\000\016\153\004F\000\000\016\153\000\000\016\153\016\153\000\000\000\000\016\161\016\161\016\161\000\000\016\161\016\161\016\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\161\000\000\000\000\000\000\000\000\000\000\000\000\016\161\016\161\004>\000\000\000\000\016\161\000\000\000\000\000\000\000\000\000\000\016\161\000\000\000\000\016\161\000\000\000\000\000\000\000\000\000\000\016\161\016\161\016\161\000\000\000\000\000\000\000\000\000\000\000\000\016\161\000\000\016\161\016\161\000\000\000\000\000\000\000\000\000\000\016\161\000\000\000\000\016\161\000\000\000\000\000\000\000\000\016\161\000\000\000\000\000\000\016\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\161\000\000\016\161\016\161\000\000\016\161\016\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\161\000\000\016\161\000\000\016\161\016\161\016\169\000\000\016\161\000\000\016\169\000\000\000\000\016\161\016\169\000\000\016\161\004F\000\000\016\161\000\000\016\161\016\161\000\000\000\000\016\169\016\169\016\169\000\000\016\169\016\169\016\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\169\000\000\000\000\000\000\000\000\000\000\000\000\016\169\016\169\005*\000\000\000\000\016\169\000\000\000\000\000\000\000\000\000\000\016\169\000\000\000\000\016\169\000\000\000\000\000\000\000\000\000\000\016\169\016\169\016\169\000\000\000\000\000\000\000\000\000\000\000\000\016\169\000\000\016\169\016\169\000\000\000\000\000\000\000\000\000\000\016\169\000\000\000\000\016\169\000\000\000\000\000\000\000\000\016\169\000\000\000\000\000\000\016\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\169\000\000\016\169\016\169\000\000\016\169\016\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\169\000\000\016\169\000\000\016\169\016\169\016\177\000\000\016\169\000\000\016\177\000\000\000\000\016\169\016\177\000\000\016\169\004F\000\000\016\169\000\000\016\169\016\169\000\000\000\000\016\177\016\177\016\177\000\000\016\177\016\177\016\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177\000\000\000\000\000\000\000\000\000\000\000\000\016\177\016\177\004>\000\000\000\000\016\177\000\000\000\000\000\000\000\000\000\000\016\177\000\000\000\000\016\177\000\000\000\000\000\000\000\000\000\000\016\177\016\177\016\177\000\000\000\000\000\000\000\000\000\000\000\000\016\177\000\000\016\177\016\177\000\000\000\000\000\000\000\000\000\000\016\177\000\000\000\000\016\177\000\000\000\000\000\000\000\000\016\177\000\000\000\000\000\000\016\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177\000\000\016\177\016\177\000\000\016\177\016\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177\000\000\016\177\000\000\016\177\016\177\016\185\000\000\016\177\000\000\016\185\000\000\000\000\016\177\016\185\000\000\016\177\004F\000\000\016\177\000\000\016\177\016\177\000\000\000\000\016\185\016\185\016\185\000\000\016\185\016\185\016\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\185\000\000\000\000\000\000\000\000\000\000\000\000\016\185\016\185\005*\000\000\000\000\016\185\000\000\000\000\000\000\000\000\000\000\016\185\000\000\000\000\016\185\000\000\000\000\000\000\000\000\000\000\016\185\016\185\016\185\000\000\000\000\000\000\000\000\000\000\000\000\016\185\000\000\016\185\016\185\000\000\000\000\000\000\000\000\000\000\016\185\000\000\000\000\016\185\000\000\000\000\000\000\000\000\016\185\000\000\000\000\000\000\016\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\185\000\000\016\185\016\185\000\000\016\185\016\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\185\000\000\016\185\000\000\016\185\016\185\016\193\000\000\016\185\000\000\016\193\000\000\000\000\016\185\016\193\000\000\016\185\004F\000\000\016\185\000\000\016\185\016\185\000\000\000\000\016\193\016\193\016\193\000\000\016\193\016\193\016\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\193\000\000\000\000\000\000\000\000\000\000\000\000\016\193\016\193\004>\000\000\000\000\016\193\000\000\000\000\000\000\000\000\000\000\016\193\000\000\000\000\016\193\000\000\000\000\000\000\000\000\000\000\016\193\016\193\016\193\000\000\000\000\000\000\000\000\000\000\000\000\016\193\000\000\016\193\016\193\000\000\000\000\000\000\000\000\000\000\016\193\000\000\000\000\016\193\000\000\000\000\000\000\000\000\016\193\000\000\000\000\000\000\016\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\193\000\000\016\193\016\193\000\000\016\193\016\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\193\000\000\016\193\000\000\016\193\016\193\016\201\000\000\016\193\000\000\016\201\000\000\000\000\016\193\016\201\000\000\016\193\004F\000\000\016\193\000\000\016\193\016\193\000\000\000\000\016\201\016\201\016\201\000\000\016\201\016\201\016\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\201\000\000\000\000\000\000\000\000\000\000\000\000\016\201\016\201\005*\000\000\000\000\016\201\000\000\000\000\000\000\000\000\000\000\016\201\000\000\000\000\016\201\000\000\000\000\000\000\000\000\000\000\016\201\016\201\016\201\000\000\000\000\000\000\000\000\000\000\000\000\016\201\000\000\016\201\016\201\000\000\000\000\000\000\000\000\000\000\016\201\000\000\000\000\016\201\000\000\000\000\000\000\000\000\016\201\000\000\000\000\000\000\016\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\201\000\000\016\201\016\201\000\000\016\201\016\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\201\000\000\016\201\000\000\016\201\016\201\016\209\000\000\016\201\000\000\016\209\000\000\000\000\016\201\016\209\000\000\016\201\004F\000\000\016\201\000\000\016\201\016\201\000\000\000\000\016\209\016\209\016\209\000\000\016\209\016\209\016\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\209\000\000\000\000\000\000\000\000\000\000\000\000\016\209\016\209\004>\000\000\000\000\016\209\000\000\000\000\000\000\000\000\000\000\016\209\000\000\000\000\016\209\000\000\000\000\000\000\000\000\000\000\016\209\016\209\016\209\000\000\000\000\000\000\000\000\000\000\000\000\016\209\000\000\016\209\016\209\000\000\000\000\000\000\000\000\000\000\016\209\000\000\000\000\016\209\000\000\000\000\000\000\000\000\016\209\000\000\000\000\000\000\016\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\209\000\000\016\209\016\209\000\000\016\209\016\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\209\000\000\016\209\000\000\016\209\016\209\016\217\000\000\016\209\000\000\016\217\000\000\000\000\016\209\016\217\000\000\016\209\004F\000\000\016\209\000\000\016\209\016\209\000\000\000\000\016\217\016\217\016\217\000\000\016\217\016\217\016\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\217\000\000\000\000\000\000\000\000\000\000\000\000\016\217\016\217\005*\000\000\000\000\016\217\000\000\000\000\000\000\000\000\000\000\016\217\000\000\000\000\016\217\000\000\000\000\000\000\000\000\000\000\016\217\016\217\016\217\000\000\000\000\000\000\000\000\000\000\000\000\016\217\000\000\016\217\016\217\000\000\000\000\000\000\000\000\000\000\016\217\000\000\000\000\016\217\000\000\000\000\000\000\000\000\016\217\000\000\000\000\000\000\016\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\217\000\000\016\217\016\217\000\000\016\217\016\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\217\000\000\016\217\000\000\016\217\016\217\016\225\000\000\016\217\000\000\016\225\000\000\000\000\016\217\016\225\000\000\016\217\004F\000\000\016\217\000\000\016\217\016\217\000\000\000\000\016\225\016\225\016\225\000\000\016\225\016\225\016\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\225\000\000\000\000\000\000\000\000\000\000\000\000\016\225\016\225\004>\000\000\000\000\016\225\000\000\000\000\000\000\000\000\000\000\016\225\000\000\000\000\016\225\000\000\000\000\000\000\000\000\000\000\016\225\016\225\016\225\000\000\000\000\000\000\000\000\000\000\000\000\016\225\000\000\016\225\016\225\000\000\000\000\000\000\000\000\000\000\016\225\000\000\000\000\016\225\000\000\000\000\000\000\000\000\016\225\000\000\000\000\000\000\016\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\225\000\000\016\225\016\225\000\000\016\225\016\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\225\000\000\016\225\000\000\016\225\016\225\016\233\000\000\016\225\000\000\016\233\000\000\000\000\016\225\016\233\000\000\016\225\004F\000\000\016\225\000\000\016\225\016\225\000\000\000\000\016\233\016\233\016\233\000\000\016\233\016\233\016\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\000\000\000\000\000\000\000\000\000\000\016\233\016\233\005*\000\000\000\000\016\233\000\000\000\000\000\000\000\000\000\000\016\233\000\000\000\000\016\233\000\000\000\000\000\000\000\000\000\000\016\233\016\233\016\233\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\016\233\016\233\000\000\000\000\000\000\000\000\000\000\016\233\000\000\000\000\016\233\000\000\000\000\000\000\000\000\016\233\000\000\000\000\000\000\016\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\016\233\016\233\000\000\016\233\016\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\016\233\000\000\016\233\016\233\016\241\000\000\016\233\000\000\016\241\000\000\000\000\016\233\016\241\000\000\016\233\004F\000\000\016\233\000\000\016\233\016\233\000\000\000\000\016\241\016\241\016\241\000\000\016\241\016\241\016\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\241\000\000\000\000\000\000\000\000\000\000\000\000\016\241\016\241\004>\000\000\000\000\016\241\000\000\000\000\000\000\000\000\000\000\016\241\000\000\000\000\016\241\000\000\000\000\000\000\000\000\000\000\016\241\016\241\016\241\000\000\000\000\000\000\000\000\000\000\000\000\016\241\000\000\016\241\016\241\000\000\000\000\000\000\000\000\000\000\016\241\000\000\000\000\016\241\000\000\000\000\000\000\000\000\016\241\000\000\000\000\000\000\016\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\241\000\000\016\241\016\241\000\000\016\241\016\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\241\000\000\016\241\000\000\016\241\016\241\016\249\000\000\016\241\000\000\016\249\000\000\000\000\016\241\016\249\000\000\016\241\004F\000\000\016\241\000\000\016\241\016\241\000\000\000\000\016\249\016\249\016\249\000\000\016\249\016\249\016\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\249\000\000\000\000\000\000\000\000\000\000\000\000\016\249\016\249\005*\000\000\000\000\016\249\000\000\000\000\000\000\000\000\000\000\016\249\000\000\000\000\016\249\000\000\000\000\000\000\000\000\000\000\016\249\016\249\016\249\000\000\000\000\000\000\000\000\000\000\000\000\016\249\000\000\016\249\016\249\000\000\000\000\000\000\000\000\000\000\016\249\000\000\000\000\016\249\000\000\000\000\000\000\000\000\016\249\000\000\000\000\000\000\016\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\249\000\000\016\249\016\249\000\000\016\249\016\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\249\000\000\016\249\000\000\016\249\016\249\017\001\000\000\016\249\000\000\017\001\000\000\000\000\016\249\017\001\000\000\016\249\004F\000\000\016\249\000\000\016\249\016\249\000\000\000\000\017\001\017\001\017\001\000\000\017\001\017\001\017\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\001\000\000\000\000\000\000\000\000\000\000\000\000\017\001\017\001\004>\000\000\000\000\017\001\000\000\000\000\000\000\000\000\000\000\017\001\000\000\000\000\017\001\000\000\000\000\000\000\000\000\000\000\017\001\017\001\017\001\000\000\000\000\000\000\000\000\000\000\000\000\017\001\000\000\017\001\017\001\000\000\000\000\000\000\000\000\000\000\017\001\000\000\000\000\017\001\000\000\000\000\000\000\000\000\017\001\000\000\000\000\000\000\017\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\001\000\000\017\001\017\001\000\000\017\001\017\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\001\000\000\017\001\000\000\017\001\017\001\017\t\000\000\017\001\000\000\017\t\000\000\000\000\017\001\017\t\000\000\017\001\004F\000\000\017\001\000\000\017\001\017\001\000\000\000\000\017\t\017\t\017\t\000\000\017\t\017\t\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\000\000\017\t\017\t\005*\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\017\t\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\017\t\017\t\017\t\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\017\t\017\t\000\000\000\000\000\000\000\000\000\000\017\t\000\000\000\000\017\t\000\000\000\000\000\000\000\000\017\t\000\000\000\000\000\000\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\017\t\017\t\000\000\017\t\017\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\017\t\000\000\017\t\017\t\017\201\000\000\017\t\000\000\017\201\000\000\000\000\017\t\017\201\000\000\017\t\004F\000\000\017\t\000\000\017\t\017\t\000\000\000\000\017\201\017\201\017\201\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\017\201\005*\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\017\201\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\017\201\000\000\000\000\017\201\000\000\000\000\000\000\000\000\017\201\000\000\000\000\000\000\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\017\201\000\000\017\201\017\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\201\000\000\017\201\000\000\017\201\017\201\017\185\000\000\017\201\000\000\017\185\000\000\000\000\017\201\017\185\000\000\017\201\004F\000\000\017\201\000\000\017\201\017\201\000\000\000\000\017\185\017\185\017\185\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\017\185\005*\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\017\185\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\017\185\000\000\000\000\017\185\000\000\000\000\000\000\000\000\017\185\000\000\000\000\000\000\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\017\185\000\000\017\185\017\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\185\000\000\017\185\000\000\017\185\017\185\017\145\000\000\017\185\000\000\017\145\000\000\000\000\017\185\017\145\000\000\017\185\004F\000\000\017\185\000\000\017\185\017\185\000\000\000\000\017\145\017\145\017\145\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\017\145\004>\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\017\145\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\017\145\000\000\000\000\017\145\000\000\000\000\000\000\000\000\017\145\000\000\000\000\000\000\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\017\145\000\000\017\145\017\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\145\000\000\017\145\000\000\017\145\017\145\017\153\000\000\017\145\000\000\017\153\000\000\000\000\017\145\017\153\000\000\017\145\004F\000\000\017\145\000\000\017\145\017\145\000\000\000\000\017\153\017\153\017\153\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\017\153\005*\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\017\153\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\017\153\000\000\000\000\017\153\000\000\000\000\000\000\000\000\017\153\000\000\000\000\000\000\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\017\153\000\000\017\153\017\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\153\000\000\017\153\000\000\017\153\017\153\017\161\000\000\017\153\000\000\017\161\000\000\000\000\017\153\017\161\000\000\017\153\004F\000\000\017\153\000\000\017\153\017\153\000\000\000\000\017\161\017\161\017\161\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\017\161\004>\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\017\161\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\017\161\000\000\000\000\017\161\000\000\000\000\000\000\000\000\017\161\000\000\000\000\000\000\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\017\161\000\000\017\161\017\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\161\000\000\017\161\000\000\017\161\017\161\017\169\000\000\017\161\000\000\017\169\000\000\000\000\017\161\017\169\000\000\017\161\004F\000\000\017\161\000\000\017\161\017\161\000\000\000\000\017\169\017\169\017\169\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\017\169\005*\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\017\169\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\017\169\000\000\000\000\017\169\000\000\000\000\000\000\000\000\017\169\000\000\000\000\000\000\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\017\169\000\000\017\169\017\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\169\000\000\017\169\000\000\017\169\017\169\017\017\000\000\017\169\000\000\017\017\000\000\000\000\017\169\017\017\000\000\017\169\004F\000\000\017\169\000\000\017\169\017\169\000\000\000\000\017\017\017\017\017\017\000\000\017\017\017\017\017\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\017\000\000\000\000\000\000\000\000\000\000\000\000\017\017\017\017\004>\000\000\000\000\017\017\000\000\000\000\000\000\000\000\000\000\017\017\000\000\000\000\017\017\000\000\000\000\000\000\000\000\000\000\017\017\017\017\017\017\000\000\000\000\000\000\000\000\000\000\000\000\017\017\000\000\017\017\017\017\000\000\000\000\000\000\000\000\000\000\017\017\000\000\000\000\017\017\000\000\000\000\000\000\000\000\017\017\000\000\000\000\000\000\017\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\017\000\000\017\017\017\017\000\000\017\017\017\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\017\000\000\017\017\000\000\017\017\017\017\017\025\000\000\017\017\000\000\017\025\000\000\000\000\017\017\017\025\000\000\017\017\004F\000\000\017\017\000\000\017\017\017\017\000\000\000\000\017\025\017\025\017\025\000\000\017\025\017\025\017\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\025\000\000\000\000\000\000\000\000\000\000\000\000\017\025\017\025\005*\000\000\000\000\017\025\000\000\000\000\000\000\000\000\000\000\017\025\000\000\000\000\017\025\000\000\000\000\000\000\000\000\000\000\017\025\017\025\017\025\000\000\000\000\000\000\000\000\000\000\000\000\017\025\000\000\017\025\017\025\000\000\000\000\000\000\000\000\000\000\017\025\000\000\000\000\017\025\000\000\000\000\000\000\000\000\017\025\000\000\000\000\000\000\017\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\025\000\000\017\025\017\025\000\000\017\025\017\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\025\000\000\017\025\000\000\017\025\017\025\017!\000\000\017\025\000\000\017!\000\000\000\000\017\025\017!\000\000\017\025\004F\000\000\017\025\000\000\017\025\017\025\000\000\000\000\017!\017!\017!\000\000\017!\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\000\000\017!\017!\004>\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\017!\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\017!\000\000\000\000\000\000\000\000\000\000\017!\000\000\000\000\017!\000\000\000\000\000\000\000\000\017!\000\000\000\000\000\000\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\017!\000\000\017!\017!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017!\000\000\017!\000\000\017!\017!\017)\000\000\017!\000\000\017)\000\000\000\000\017!\017)\000\000\017!\004F\000\000\017!\000\000\017!\017!\000\000\000\000\017)\017)\017)\000\000\017)\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\000\000\017)\017)\005*\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\017)\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\017)\000\000\000\000\000\000\000\000\000\000\017)\000\000\000\000\017)\000\000\000\000\000\000\000\000\017)\000\000\000\000\000\000\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\017)\000\000\017)\017)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017)\000\000\017)\000\000\017)\017)\0171\000\000\017)\000\000\0171\000\000\000\000\017)\0171\000\000\017)\004F\000\000\017)\000\000\017)\017)\000\000\000\000\0171\0171\0171\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\0171\004>\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\0171\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\0171\000\000\000\000\0171\000\000\000\000\000\000\000\000\0171\000\000\000\000\000\000\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\0171\000\000\0171\0171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0171\000\000\0171\000\000\0171\0171\0179\000\000\0171\000\000\0179\000\000\000\000\0171\0179\000\000\0171\004F\000\000\0171\000\000\0171\0171\000\000\000\000\0179\0179\0179\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\0179\005*\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\0179\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\0179\000\000\000\000\0179\000\000\000\000\000\000\000\000\0179\000\000\000\000\000\000\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\0179\000\000\0179\0179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0179\000\000\0179\000\000\0179\0179\017A\000\000\0179\000\000\017A\000\000\000\000\0179\017A\000\000\0179\004F\000\000\0179\000\000\0179\0179\000\000\000\000\017A\017A\017A\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\017A\004>\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\017A\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\017A\000\000\000\000\017A\000\000\000\000\000\000\000\000\017A\000\000\000\000\000\000\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\017A\000\000\017A\017A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017A\000\000\017A\000\000\017A\017A\017I\000\000\017A\000\000\017I\000\000\000\000\017A\017I\000\000\017A\004F\000\000\017A\000\000\017A\017A\000\000\000\000\017I\017I\017I\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\017I\005*\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\017I\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\017I\000\000\000\000\017I\000\000\000\000\000\000\000\000\017I\000\000\000\000\000\000\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\017I\000\000\017I\017I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017I\000\000\017I\000\000\017I\017I\017Q\000\000\017I\000\000\017Q\000\000\000\000\017I\017Q\000\000\017I\004F\000\000\017I\000\000\017I\017I\000\000\000\000\017Q\017Q\017Q\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\017Q\004>\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\017Q\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\017Q\000\000\000\000\017Q\000\000\000\000\000\000\000\000\017Q\000\000\000\000\000\000\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\017Q\000\000\017Q\017Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Q\000\000\017Q\000\000\017Q\017Q\017Y\000\000\017Q\000\000\017Y\000\000\000\000\017Q\017Y\000\000\017Q\004F\000\000\017Q\000\000\017Q\017Q\000\000\000\000\017Y\017Y\017Y\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\017Y\005*\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\017Y\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\017Y\000\000\000\000\017Y\000\000\000\000\000\000\000\000\017Y\000\000\000\000\000\000\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\017Y\000\000\017Y\017Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017Y\000\000\017Y\000\000\017Y\017Y\017a\000\000\017Y\000\000\017a\000\000\000\000\017Y\017a\000\000\017Y\004F\000\000\017Y\000\000\017Y\017Y\000\000\000\000\017a\017a\017a\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\017a\004>\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\017a\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\017a\000\000\000\000\017a\000\000\000\000\000\000\000\000\017a\000\000\000\000\000\000\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\017a\000\000\017a\017a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017a\000\000\017a\000\000\017a\017a\017i\000\000\017a\000\000\017i\000\000\000\000\017a\017i\000\000\017a\004F\000\000\017a\000\000\017a\017a\000\000\000\000\017i\017i\017i\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\017i\005*\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\017i\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\017i\000\000\000\000\017i\000\000\000\000\000\000\000\000\017i\000\000\000\000\000\000\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\017i\000\000\017i\017i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017i\000\000\017i\000\000\017i\017i\017q\000\000\017i\000\000\017q\000\000\000\000\017i\017q\000\000\017i\004F\000\000\017i\000\000\017i\017i\000\000\000\000\017q\017q\017q\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\017q\004>\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\017q\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\017q\000\000\000\000\017q\000\000\000\000\000\000\000\000\017q\000\000\000\000\000\000\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\017q\000\000\017q\017q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017q\000\000\017q\000\000\017q\017q\017y\000\000\017q\000\000\017y\000\000\000\000\017q\017y\000\000\017q\004F\000\000\017q\000\000\017q\017q\000\000\000\000\017y\017y\017y\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\017y\005*\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\017y\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\017y\000\000\000\000\017y\000\000\000\000\000\000\000\000\017y\000\000\000\000\000\000\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\017y\000\000\017y\017y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017y\000\000\017y\000\000\017y\017y\017\129\000\000\017y\000\000\017\129\000\000\000\000\017y\017\129\000\000\017y\004F\000\000\017y\000\000\017y\017y\000\000\000\000\017\129\017\129\017\129\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\017\129\004>\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\017\129\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\017\129\000\000\000\000\017\129\000\000\000\000\000\000\000\000\017\129\000\000\000\000\000\000\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\017\129\000\000\017\129\017\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\129\000\000\017\129\000\000\017\129\017\129\017\137\000\000\017\129\000\000\017\137\000\000\000\000\017\129\017\137\000\000\017\129\004F\000\000\017\129\000\000\017\129\017\129\000\000\000\000\017\137\017\137\017\137\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\017\137\005*\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\017\137\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\017\137\000\000\000\000\017\137\000\000\000\000\000\000\000\000\017\137\000\000\000\000\000\000\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\017\137\000\000\017\137\017\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\137\000\000\017\137\000\000\017\137\017\137\018A\000\000\017\137\000\000\018A\000\000\000\000\017\137\018A\000\000\017\137\004F\000\000\017\137\000\000\017\137\017\137\000\000\000\000\018A\018A\018A\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\018A\004>\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\018A\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\018A\000\000\000\000\018A\000\000\000\000\000\000\000\000\018A\000\000\000\000\000\000\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\018A\000\000\018A\018A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018A\000\000\018A\000\000\018A\018A\018I\000\000\018A\000\000\018I\000\000\000\000\018A\018I\000\000\018A\004F\000\000\018A\000\000\018A\018A\000\000\000\000\018I\018I\018I\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\018I\005*\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018I\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\018I\000\000\000\000\018I\000\000\000\000\000\000\000\000\018I\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\018I\000\000\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018I\000\000\018I\018I\018Q\000\000\018I\000\000\018Q\000\000\000\000\018I\018Q\000\000\018I\004F\000\000\018I\000\000\018I\018I\000\000\000\000\018Q\018Q\018Q\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\018Q\004>\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018Q\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018Q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\000\000\000\000\000\000\000\000\018Q\000\000\000\000\018Q\000\000\000\000\000\000\000\000\018Q\000\000\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\018Q\000\000\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018Q\000\000\018Q\018Q\018Y\000\000\018Q\000\000\018Y\000\000\000\000\018Q\018Y\000\000\018Q\004F\000\000\018Q\000\000\018Q\018Q\000\000\000\000\018Y\018Y\018Y\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\018Y\005*\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\018Y\000\000\000\000\018Y\000\000\000\000\000\000\000\000\018Y\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\018Y\000\000\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018Y\000\000\018Y\018Y\018!\000\000\018Y\000\000\018!\000\000\000\000\018Y\018!\000\000\018Y\004F\000\000\018Y\000\000\018Y\018Y\000\000\000\000\018!\018!\018!\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\018!\004>\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\018!\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\018!\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\018!\000\000\018!\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\018!\000\000\018!\018!\018)\000\000\018!\000\000\018)\000\000\000\000\018!\018)\000\000\018!\004F\000\000\018!\000\000\018!\018!\000\000\000\000\018)\018)\018)\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\018)\005*\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\018)\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\018)\000\000\000\000\018)\000\000\000\000\000\000\000\000\018)\000\000\000\000\000\000\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\018)\000\000\018)\018)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018)\000\000\018)\000\000\018)\018)\0181\000\000\018)\000\000\0181\000\000\000\000\018)\0181\000\000\018)\004F\000\000\018)\000\000\018)\018)\000\000\000\000\0181\0181\0181\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\0181\004>\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\0181\000\000\000\000\0181\000\000\000\000\000\000\000\000\0181\000\000\000\000\000\000\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\0181\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\000\000\0181\000\000\0181\0181\0189\000\000\0181\000\000\0189\000\000\000\000\0181\0189\000\000\0181\004F\000\000\0181\000\000\0181\0181\000\000\000\000\0189\0189\0189\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\0189\005*\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\0189\000\000\000\000\0189\000\000\000\000\000\000\000\000\0189\000\000\000\000\000\000\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\0189\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\000\000\0189\000\000\0189\0189\017\181\000\000\0189\000\000\017\181\000\000\000\000\0189\017\181\000\000\0189\004F\000\000\0189\000\000\0189\0189\000\000\000\000\017\181\017\181\017\181\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\017\181\004Z\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\017\181\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\017\181\000\000\000\000\017\181\000\000\000\000\000\000\000\000\017\181\000\000\000\000\000\000\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\017\181\000\000\017\181\017\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\181\000\000\017\181\000\000\017\181\017\181\017\197\000\000\017\181\000\000\017\197\000\000\000\000\017\181\017\197\000\000\017\181\000\000\000\000\017\181\000\000\017\181\017\181\000\000\000\000\017\197\017\197\017\197\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\017\197\004Z\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\017\197\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\017\197\000\000\000\000\017\197\000\000\000\000\000\000\000\000\017\197\000\000\000\000\000\000\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\017\197\000\000\017\197\017\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\197\000\000\017\197\000\000\017\197\017\197\017\213\000\000\017\197\000\000\017\213\000\000\000\000\017\197\017\213\000\000\017\197\000\000\000\000\017\197\000\000\017\197\017\197\000\000\000\000\017\213\017\213\017\213\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\017\213\004Z\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\017\213\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\017\213\000\000\000\000\017\213\000\000\000\000\000\000\000\000\017\213\000\000\000\000\000\000\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\017\213\000\000\017\213\017\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\213\000\000\017\213\000\000\017\213\017\213\017\245\000\000\017\213\000\000\017\245\000\000\000\000\017\213\017\245\000\000\017\213\000\000\000\000\017\213\000\000\017\213\017\213\000\000\000\000\017\245\017\245\017\245\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\017\245\004Z\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\017\245\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\017\245\000\000\000\000\017\245\000\000\000\000\000\000\000\000\017\245\000\000\000\000\000\000\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\017\245\000\000\017\245\017\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\245\000\000\017\245\000\000\017\245\017\245\017\253\000\000\017\245\000\000\017\253\000\000\000\000\017\245\017\253\000\000\017\245\000\000\000\000\017\245\000\000\017\245\017\245\000\000\000\000\017\253\017\253\017\253\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\017\253\005F\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\017\253\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\017\253\000\000\000\000\017\253\000\000\000\000\000\000\000\000\017\253\000\000\000\000\000\000\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\017\253\000\000\017\253\017\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\253\000\000\017\253\000\000\017\253\017\253\018\005\000\000\017\253\000\000\018\005\000\000\000\000\017\253\018\005\000\000\017\253\000\000\000\000\017\253\000\000\017\253\017\253\000\000\000\000\018\005\018\005\018\005\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\018\005\004Z\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\018\005\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\018\005\000\000\000\000\018\005\000\000\000\000\000\000\000\000\018\005\000\000\000\000\000\000\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\018\005\000\000\018\005\018\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\005\000\000\018\005\000\000\018\005\018\005\018\r\000\000\018\005\000\000\018\r\000\000\000\000\018\005\018\r\000\000\018\005\000\000\000\000\018\005\000\000\018\005\018\005\000\000\000\000\018\r\018\r\018\r\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\018\r\005F\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\018\r\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\018\r\000\000\000\000\018\r\000\000\000\000\000\000\000\000\018\r\000\000\000\000\000\000\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\018\r\000\000\018\r\018\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\r\000\000\018\r\000\000\018\r\018\r\017\221\000\000\018\r\000\000\017\221\000\000\000\000\018\r\017\221\000\000\018\r\000\000\000\000\018\r\000\000\018\r\018\r\000\000\000\000\017\221\017\221\017\221\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\017\221\005F\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\017\221\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\017\221\000\000\000\000\017\221\000\000\000\000\000\000\000\000\017\221\000\000\000\000\000\000\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\017\221\000\000\017\221\017\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\221\000\000\017\221\000\000\017\221\017\221\017\229\000\000\017\221\000\000\017\229\000\000\000\000\017\221\017\229\000\000\017\221\000\000\000\000\017\221\000\000\017\221\017\221\000\000\000\000\017\229\017\229\017\229\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\017\229\004Z\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\017\229\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\017\229\000\000\000\000\017\229\000\000\000\000\000\000\000\000\017\229\000\000\000\000\000\000\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\017\229\000\000\017\229\017\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\229\000\000\017\229\000\000\017\229\017\229\017\237\000\000\017\229\000\000\017\237\000\000\000\000\017\229\017\237\000\000\017\229\000\000\000\000\017\229\000\000\017\229\017\229\000\000\000\000\017\237\017\237\017\237\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\017\237\005F\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\017\237\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\017\237\000\000\000\000\017\237\000\000\000\000\000\000\000\000\017\237\000\000\000\000\000\000\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\017\237\000\000\017\237\017\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\237\000\000\017\237\000\000\017\237\017\237\002\021\000\000\017\237\000\000\002\021\000\000\000\000\017\237\002\021\000\000\017\237\000\000\000\000\017\237\000\000\017\237\017\237\000\000\000\000\002\021\002\021\002\021\000\000\002\021\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\002\021\002\021\002\021\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\002\021\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\002\021\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\002\021\002\021\000\000\000\000\000\000\000\000\000\000\002\021\000\000\000\000\002\021\000\000\000\000\000\000\000\000\002\021\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\002\021\002\021\000\000\002\021\002\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\002\021\000\000\002\021\002\021\016\149\000\000\002\021\000\000\016\149\000\000\000\000\002\021\016\149\000\000\002\021\000\000\000\000\005\206\000\000\002\021\002\021\000\000\000\000\016\149\016\149\016\149\000\000\016\149\016\149\016\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\149\000\000\000\000\000\000\000\000\000\000\000\000\016\149\016\149\004Z\000\000\000\000\016\149\000\000\000\000\000\000\000\000\000\000\016\149\000\000\000\000\016\149\000\000\000\000\000\000\000\000\000\000\016\149\016\149\016\149\000\000\000\000\000\000\000\000\000\000\000\000\016\149\000\000\016\149\016\149\000\000\000\000\000\000\000\000\000\000\016\149\000\000\000\000\016\149\000\000\000\000\000\000\000\000\016\149\000\000\000\000\000\000\016\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\149\000\000\016\149\016\149\000\000\016\149\016\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\149\000\000\016\149\000\000\016\149\016\149\016\157\000\000\016\149\000\000\016\157\000\000\000\000\016\149\016\157\000\000\016\149\000\000\000\000\016\149\000\000\016\149\016\149\000\000\000\000\016\157\016\157\016\157\000\000\016\157\016\157\016\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\157\000\000\000\000\000\000\000\000\000\000\000\000\016\157\016\157\005F\000\000\000\000\016\157\000\000\000\000\000\000\000\000\000\000\016\157\000\000\000\000\016\157\000\000\000\000\000\000\000\000\000\000\016\157\016\157\016\157\000\000\000\000\000\000\000\000\000\000\000\000\016\157\000\000\016\157\016\157\000\000\000\000\000\000\000\000\000\000\016\157\000\000\000\000\016\157\000\000\000\000\000\000\000\000\016\157\000\000\000\000\000\000\016\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\157\000\000\016\157\016\157\000\000\016\157\016\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\157\000\000\016\157\000\000\016\157\016\157\016\165\000\000\016\157\000\000\016\165\000\000\000\000\016\157\016\165\000\000\016\157\000\000\000\000\016\157\000\000\016\157\016\157\000\000\000\000\016\165\016\165\016\165\000\000\016\165\016\165\016\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\165\000\000\000\000\000\000\000\000\000\000\000\000\016\165\016\165\004Z\000\000\000\000\016\165\000\000\000\000\000\000\000\000\000\000\016\165\000\000\000\000\016\165\000\000\000\000\000\000\000\000\000\000\016\165\016\165\016\165\000\000\000\000\000\000\000\000\000\000\000\000\016\165\000\000\016\165\016\165\000\000\000\000\000\000\000\000\000\000\016\165\000\000\000\000\016\165\000\000\000\000\000\000\000\000\016\165\000\000\000\000\000\000\016\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\165\000\000\016\165\016\165\000\000\016\165\016\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\165\000\000\016\165\000\000\016\165\016\165\016\173\000\000\016\165\000\000\016\173\000\000\000\000\016\165\016\173\000\000\016\165\000\000\000\000\016\165\000\000\016\165\016\165\000\000\000\000\016\173\016\173\016\173\000\000\016\173\016\173\016\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\173\000\000\000\000\000\000\000\000\000\000\000\000\016\173\016\173\005F\000\000\000\000\016\173\000\000\000\000\000\000\000\000\000\000\016\173\000\000\000\000\016\173\000\000\000\000\000\000\000\000\000\000\016\173\016\173\016\173\000\000\000\000\000\000\000\000\000\000\000\000\016\173\000\000\016\173\016\173\000\000\000\000\000\000\000\000\000\000\016\173\000\000\000\000\016\173\000\000\000\000\000\000\000\000\016\173\000\000\000\000\000\000\016\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\173\000\000\016\173\016\173\000\000\016\173\016\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\173\000\000\016\173\000\000\016\173\016\173\016\181\000\000\016\173\000\000\016\181\000\000\000\000\016\173\016\181\000\000\016\173\000\000\000\000\016\173\000\000\016\173\016\173\000\000\000\000\016\181\016\181\016\181\000\000\016\181\016\181\016\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\181\000\000\000\000\000\000\000\000\000\000\000\000\016\181\016\181\004Z\000\000\000\000\016\181\000\000\000\000\000\000\000\000\000\000\016\181\000\000\000\000\016\181\000\000\000\000\000\000\000\000\000\000\016\181\016\181\016\181\000\000\000\000\000\000\000\000\000\000\000\000\016\181\000\000\016\181\016\181\000\000\000\000\000\000\000\000\000\000\016\181\000\000\000\000\016\181\000\000\000\000\000\000\000\000\016\181\000\000\000\000\000\000\016\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\181\000\000\016\181\016\181\000\000\016\181\016\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\181\000\000\016\181\000\000\016\181\016\181\016\189\000\000\016\181\000\000\016\189\000\000\000\000\016\181\016\189\000\000\016\181\000\000\000\000\016\181\000\000\016\181\016\181\000\000\000\000\016\189\016\189\016\189\000\000\016\189\016\189\016\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\189\000\000\000\000\000\000\000\000\000\000\000\000\016\189\016\189\005F\000\000\000\000\016\189\000\000\000\000\000\000\000\000\000\000\016\189\000\000\000\000\016\189\000\000\000\000\000\000\000\000\000\000\016\189\016\189\016\189\000\000\000\000\000\000\000\000\000\000\000\000\016\189\000\000\016\189\016\189\000\000\000\000\000\000\000\000\000\000\016\189\000\000\000\000\016\189\000\000\000\000\000\000\000\000\016\189\000\000\000\000\000\000\016\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\189\000\000\016\189\016\189\000\000\016\189\016\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\189\000\000\016\189\000\000\016\189\016\189\016\197\000\000\016\189\000\000\016\197\000\000\000\000\016\189\016\197\000\000\016\189\000\000\000\000\016\189\000\000\016\189\016\189\000\000\000\000\016\197\016\197\016\197\000\000\016\197\016\197\016\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\197\000\000\000\000\000\000\000\000\000\000\000\000\016\197\016\197\004Z\000\000\000\000\016\197\000\000\000\000\000\000\000\000\000\000\016\197\000\000\000\000\016\197\000\000\000\000\000\000\000\000\000\000\016\197\016\197\016\197\000\000\000\000\000\000\000\000\000\000\000\000\016\197\000\000\016\197\016\197\000\000\000\000\000\000\000\000\000\000\016\197\000\000\000\000\016\197\000\000\000\000\000\000\000\000\016\197\000\000\000\000\000\000\016\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\197\000\000\016\197\016\197\000\000\016\197\016\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\197\000\000\016\197\000\000\016\197\016\197\016\205\000\000\016\197\000\000\016\205\000\000\000\000\016\197\016\205\000\000\016\197\000\000\000\000\016\197\000\000\016\197\016\197\000\000\000\000\016\205\016\205\016\205\000\000\016\205\016\205\016\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\205\000\000\000\000\000\000\000\000\000\000\000\000\016\205\016\205\005F\000\000\000\000\016\205\000\000\000\000\000\000\000\000\000\000\016\205\000\000\000\000\016\205\000\000\000\000\000\000\000\000\000\000\016\205\016\205\016\205\000\000\000\000\000\000\000\000\000\000\000\000\016\205\000\000\016\205\016\205\000\000\000\000\000\000\000\000\000\000\016\205\000\000\000\000\016\205\000\000\000\000\000\000\000\000\016\205\000\000\000\000\000\000\016\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\205\000\000\016\205\016\205\000\000\016\205\016\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\205\000\000\016\205\000\000\016\205\016\205\016\213\000\000\016\205\000\000\016\213\000\000\000\000\016\205\016\213\000\000\016\205\000\000\000\000\016\205\000\000\016\205\016\205\000\000\000\000\016\213\016\213\016\213\000\000\016\213\016\213\016\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\213\000\000\000\000\000\000\000\000\000\000\000\000\016\213\016\213\004Z\000\000\000\000\016\213\000\000\000\000\000\000\000\000\000\000\016\213\000\000\000\000\016\213\000\000\000\000\000\000\000\000\000\000\016\213\016\213\016\213\000\000\000\000\000\000\000\000\000\000\000\000\016\213\000\000\016\213\016\213\000\000\000\000\000\000\000\000\000\000\016\213\000\000\000\000\016\213\000\000\000\000\000\000\000\000\016\213\000\000\000\000\000\000\016\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\213\000\000\016\213\016\213\000\000\016\213\016\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\213\000\000\016\213\000\000\016\213\016\213\016\221\000\000\016\213\000\000\016\221\000\000\000\000\016\213\016\221\000\000\016\213\000\000\000\000\016\213\000\000\016\213\016\213\000\000\000\000\016\221\016\221\016\221\000\000\016\221\016\221\016\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\221\000\000\000\000\000\000\000\000\000\000\000\000\016\221\016\221\005F\000\000\000\000\016\221\000\000\000\000\000\000\000\000\000\000\016\221\000\000\000\000\016\221\000\000\000\000\000\000\000\000\000\000\016\221\016\221\016\221\000\000\000\000\000\000\000\000\000\000\000\000\016\221\000\000\016\221\016\221\000\000\000\000\000\000\000\000\000\000\016\221\000\000\000\000\016\221\000\000\000\000\000\000\000\000\016\221\000\000\000\000\000\000\016\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\221\000\000\016\221\016\221\000\000\016\221\016\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\221\000\000\016\221\000\000\016\221\016\221\016\229\000\000\016\221\000\000\016\229\000\000\000\000\016\221\016\229\000\000\016\221\000\000\000\000\016\221\000\000\016\221\016\221\000\000\000\000\016\229\016\229\016\229\000\000\016\229\016\229\016\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\229\000\000\000\000\000\000\000\000\000\000\000\000\016\229\016\229\004Z\000\000\000\000\016\229\000\000\000\000\000\000\000\000\000\000\016\229\000\000\000\000\016\229\000\000\000\000\000\000\000\000\000\000\016\229\016\229\016\229\000\000\000\000\000\000\000\000\000\000\000\000\016\229\000\000\016\229\016\229\000\000\000\000\000\000\000\000\000\000\016\229\000\000\000\000\016\229\000\000\000\000\000\000\000\000\016\229\000\000\000\000\000\000\016\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\229\000\000\016\229\016\229\000\000\016\229\016\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\229\000\000\016\229\000\000\016\229\016\229\016\237\000\000\016\229\000\000\016\237\000\000\000\000\016\229\016\237\000\000\016\229\000\000\000\000\016\229\000\000\016\229\016\229\000\000\000\000\016\237\016\237\016\237\000\000\016\237\016\237\016\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\237\000\000\000\000\000\000\000\000\000\000\000\000\016\237\016\237\005F\000\000\000\000\016\237\000\000\000\000\000\000\000\000\000\000\016\237\000\000\000\000\016\237\000\000\000\000\000\000\000\000\000\000\016\237\016\237\016\237\000\000\000\000\000\000\000\000\000\000\000\000\016\237\000\000\016\237\016\237\000\000\000\000\000\000\000\000\000\000\016\237\000\000\000\000\016\237\000\000\000\000\000\000\000\000\016\237\000\000\000\000\000\000\016\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\237\000\000\016\237\016\237\000\000\016\237\016\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\237\000\000\016\237\000\000\016\237\016\237\016\245\000\000\016\237\000\000\016\245\000\000\000\000\016\237\016\245\000\000\016\237\000\000\000\000\016\237\000\000\016\237\016\237\000\000\000\000\016\245\016\245\016\245\000\000\016\245\016\245\016\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\245\000\000\000\000\000\000\000\000\000\000\000\000\016\245\016\245\004Z\000\000\000\000\016\245\000\000\000\000\000\000\000\000\000\000\016\245\000\000\000\000\016\245\000\000\000\000\000\000\000\000\000\000\016\245\016\245\016\245\000\000\000\000\000\000\000\000\000\000\000\000\016\245\000\000\016\245\016\245\000\000\000\000\000\000\000\000\000\000\016\245\000\000\000\000\016\245\000\000\000\000\000\000\000\000\016\245\000\000\000\000\000\000\016\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\245\000\000\016\245\016\245\000\000\016\245\016\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\245\000\000\016\245\000\000\016\245\016\245\016\253\000\000\016\245\000\000\016\253\000\000\000\000\016\245\016\253\000\000\016\245\000\000\000\000\016\245\000\000\016\245\016\245\000\000\000\000\016\253\016\253\016\253\000\000\016\253\016\253\016\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\253\000\000\000\000\000\000\000\000\000\000\000\000\016\253\016\253\005F\000\000\000\000\016\253\000\000\000\000\000\000\000\000\000\000\016\253\000\000\000\000\016\253\000\000\000\000\000\000\000\000\000\000\016\253\016\253\016\253\000\000\000\000\000\000\000\000\000\000\000\000\016\253\000\000\016\253\016\253\000\000\000\000\000\000\000\000\000\000\016\253\000\000\000\000\016\253\000\000\000\000\000\000\000\000\016\253\000\000\000\000\000\000\016\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\253\000\000\016\253\016\253\000\000\016\253\016\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\253\000\000\016\253\000\000\016\253\016\253\017\005\000\000\016\253\000\000\017\005\000\000\000\000\016\253\017\005\000\000\016\253\000\000\000\000\016\253\000\000\016\253\016\253\000\000\000\000\017\005\017\005\017\005\000\000\017\005\017\005\017\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\005\000\000\000\000\000\000\000\000\000\000\000\000\017\005\017\005\004Z\000\000\000\000\017\005\000\000\000\000\000\000\000\000\000\000\017\005\000\000\000\000\017\005\000\000\000\000\000\000\000\000\000\000\017\005\017\005\017\005\000\000\000\000\000\000\000\000\000\000\000\000\017\005\000\000\017\005\017\005\000\000\000\000\000\000\000\000\000\000\017\005\000\000\000\000\017\005\000\000\000\000\000\000\000\000\017\005\000\000\000\000\000\000\017\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\005\000\000\017\005\017\005\000\000\017\005\017\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\005\000\000\017\005\000\000\017\005\017\005\017\r\000\000\017\005\000\000\017\r\000\000\000\000\017\005\017\r\000\000\017\005\000\000\000\000\017\005\000\000\017\005\017\005\000\000\000\000\017\r\017\r\017\r\000\000\017\r\017\r\017\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\r\000\000\000\000\000\000\000\000\000\000\000\000\017\r\017\r\005F\000\000\000\000\017\r\000\000\000\000\000\000\000\000\000\000\017\r\000\000\000\000\017\r\000\000\000\000\000\000\000\000\000\000\017\r\017\r\017\r\000\000\000\000\000\000\000\000\000\000\000\000\017\r\000\000\017\r\017\r\000\000\000\000\000\000\000\000\000\000\017\r\000\000\000\000\017\r\000\000\000\000\000\000\000\000\017\r\000\000\000\000\000\000\017\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\r\000\000\017\r\017\r\000\000\017\r\017\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\r\000\000\017\r\000\000\017\r\017\r\017\205\000\000\017\r\000\000\017\205\000\000\000\000\017\r\017\205\000\000\017\r\000\000\000\000\017\r\000\000\017\r\017\r\000\000\000\000\017\205\017\205\017\205\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\017\205\005F\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\017\205\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\017\205\000\000\000\000\017\205\000\000\000\000\000\000\000\000\017\205\000\000\000\000\000\000\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\017\205\000\000\017\205\017\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\205\000\000\017\205\000\000\017\205\017\205\017\189\000\000\017\205\000\000\017\189\000\000\000\000\017\205\017\189\000\000\017\205\000\000\000\000\017\205\000\000\017\205\017\205\000\000\000\000\017\189\017\189\017\189\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\017\189\005F\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\017\189\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\017\189\000\000\000\000\017\189\000\000\000\000\000\000\000\000\017\189\000\000\000\000\000\000\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\017\189\000\000\017\189\017\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\189\000\000\017\189\000\000\017\189\017\189\017\149\000\000\017\189\000\000\017\149\000\000\000\000\017\189\017\149\000\000\017\189\000\000\000\000\017\189\000\000\017\189\017\189\000\000\000\000\017\149\017\149\017\149\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\017\149\004Z\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\017\149\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\017\149\000\000\000\000\017\149\000\000\000\000\000\000\000\000\017\149\000\000\000\000\000\000\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\017\149\000\000\017\149\017\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\149\000\000\017\149\000\000\017\149\017\149\017\157\000\000\017\149\000\000\017\157\000\000\000\000\017\149\017\157\000\000\017\149\000\000\000\000\017\149\000\000\017\149\017\149\000\000\000\000\017\157\017\157\017\157\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\017\157\005F\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\017\157\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\017\157\000\000\000\000\017\157\000\000\000\000\000\000\000\000\017\157\000\000\000\000\000\000\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\017\157\000\000\017\157\017\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\157\000\000\017\157\000\000\017\157\017\157\017\165\000\000\017\157\000\000\017\165\000\000\000\000\017\157\017\165\000\000\017\157\000\000\000\000\017\157\000\000\017\157\017\157\000\000\000\000\017\165\017\165\017\165\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\017\165\004Z\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\017\165\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\017\165\000\000\000\000\017\165\000\000\000\000\000\000\000\000\017\165\000\000\000\000\000\000\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\017\165\000\000\017\165\017\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\165\000\000\017\165\000\000\017\165\017\165\017\173\000\000\017\165\000\000\017\173\000\000\000\000\017\165\017\173\000\000\017\165\000\000\000\000\017\165\000\000\017\165\017\165\000\000\000\000\017\173\017\173\017\173\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\017\173\005F\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\017\173\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\017\173\000\000\000\000\017\173\000\000\000\000\000\000\000\000\017\173\000\000\000\000\000\000\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\017\173\000\000\017\173\017\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\173\000\000\017\173\000\000\017\173\017\173\017\021\000\000\017\173\000\000\017\021\000\000\000\000\017\173\017\021\000\000\017\173\000\000\000\000\017\173\000\000\017\173\017\173\000\000\000\000\017\021\017\021\017\021\000\000\017\021\017\021\017\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\021\000\000\000\000\000\000\000\000\000\000\000\000\017\021\017\021\004Z\000\000\000\000\017\021\000\000\000\000\000\000\000\000\000\000\017\021\000\000\000\000\017\021\000\000\000\000\000\000\000\000\000\000\017\021\017\021\017\021\000\000\000\000\000\000\000\000\000\000\000\000\017\021\000\000\017\021\017\021\000\000\000\000\000\000\000\000\000\000\017\021\000\000\000\000\017\021\000\000\000\000\000\000\000\000\017\021\000\000\000\000\000\000\017\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\021\000\000\017\021\017\021\000\000\017\021\017\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\021\000\000\017\021\000\000\017\021\017\021\017\029\000\000\017\021\000\000\017\029\000\000\000\000\017\021\017\029\000\000\017\021\000\000\000\000\017\021\000\000\017\021\017\021\000\000\000\000\017\029\017\029\017\029\000\000\017\029\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\000\000\017\029\017\029\005F\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\017\029\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\017\029\000\000\000\000\000\000\000\000\000\000\017\029\000\000\000\000\017\029\000\000\000\000\000\000\000\000\017\029\000\000\000\000\000\000\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\017\029\000\000\017\029\017\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\029\000\000\017\029\000\000\017\029\017\029\017%\000\000\017\029\000\000\017%\000\000\000\000\017\029\017%\000\000\017\029\000\000\000\000\017\029\000\000\017\029\017\029\000\000\000\000\017%\017%\017%\000\000\017%\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\000\000\017%\017%\004Z\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\017%\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\017%\000\000\000\000\000\000\000\000\000\000\017%\000\000\000\000\017%\000\000\000\000\000\000\000\000\017%\000\000\000\000\000\000\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\017%\000\000\017%\017%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017%\000\000\017%\000\000\017%\017%\017-\000\000\017%\000\000\017-\000\000\000\000\017%\017-\000\000\017%\000\000\000\000\017%\000\000\017%\017%\000\000\000\000\017-\017-\017-\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\017-\005F\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\017-\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\017-\000\000\000\000\017-\000\000\000\000\000\000\000\000\017-\000\000\000\000\000\000\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\017-\000\000\017-\017-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017-\000\000\017-\000\000\017-\017-\0175\000\000\017-\000\000\0175\000\000\000\000\017-\0175\000\000\017-\000\000\000\000\017-\000\000\017-\017-\000\000\000\000\0175\0175\0175\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\0175\004Z\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\0175\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\0175\000\000\000\000\0175\000\000\000\000\000\000\000\000\0175\000\000\000\000\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\0175\000\000\0175\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\0175\000\000\0175\0175\017=\000\000\0175\000\000\017=\000\000\000\000\0175\017=\000\000\0175\000\000\000\000\0175\000\000\0175\0175\000\000\000\000\017=\017=\017=\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\017=\005F\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\017=\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\017=\000\000\000\000\017=\000\000\000\000\000\000\000\000\017=\000\000\000\000\000\000\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\017=\000\000\017=\017=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017=\000\000\017=\000\000\017=\017=\017E\000\000\017=\000\000\017E\000\000\000\000\017=\017E\000\000\017=\000\000\000\000\017=\000\000\017=\017=\000\000\000\000\017E\017E\017E\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\017E\004Z\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\017E\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\017E\000\000\000\000\017E\000\000\000\000\000\000\000\000\017E\000\000\000\000\000\000\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\017E\000\000\017E\017E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017E\000\000\017E\000\000\017E\017E\017M\000\000\017E\000\000\017M\000\000\000\000\017E\017M\000\000\017E\000\000\000\000\017E\000\000\017E\017E\000\000\000\000\017M\017M\017M\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\017M\005F\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\017M\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\017M\000\000\000\000\017M\000\000\000\000\000\000\000\000\017M\000\000\000\000\000\000\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\017M\000\000\017M\017M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017M\000\000\017M\000\000\017M\017M\017U\000\000\017M\000\000\017U\000\000\000\000\017M\017U\000\000\017M\000\000\000\000\017M\000\000\017M\017M\000\000\000\000\017U\017U\017U\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\017U\004Z\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\017U\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\017U\000\000\000\000\017U\000\000\000\000\000\000\000\000\017U\000\000\000\000\000\000\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\017U\000\000\017U\017U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017U\000\000\017U\000\000\017U\017U\017]\000\000\017U\000\000\017]\000\000\000\000\017U\017]\000\000\017U\000\000\000\000\017U\000\000\017U\017U\000\000\000\000\017]\017]\017]\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\017]\005F\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\017]\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\017]\000\000\000\000\017]\000\000\000\000\000\000\000\000\017]\000\000\000\000\000\000\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\017]\000\000\017]\017]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017]\000\000\017]\000\000\017]\017]\017e\000\000\017]\000\000\017e\000\000\000\000\017]\017e\000\000\017]\000\000\000\000\017]\000\000\017]\017]\000\000\000\000\017e\017e\017e\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\017e\004Z\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\017e\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\017e\000\000\000\000\017e\000\000\000\000\000\000\000\000\017e\000\000\000\000\000\000\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\017e\000\000\017e\017e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017e\000\000\017e\000\000\017e\017e\017m\000\000\017e\000\000\017m\000\000\000\000\017e\017m\000\000\017e\000\000\000\000\017e\000\000\017e\017e\000\000\000\000\017m\017m\017m\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\017m\005F\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\017m\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\017m\000\000\000\000\017m\000\000\000\000\000\000\000\000\017m\000\000\000\000\000\000\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\017m\000\000\017m\017m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017m\000\000\017m\000\000\017m\017m\017u\000\000\017m\000\000\017u\000\000\000\000\017m\017u\000\000\017m\000\000\000\000\017m\000\000\017m\017m\000\000\000\000\017u\017u\017u\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\017u\004Z\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\017u\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\017u\000\000\000\000\017u\000\000\000\000\000\000\000\000\017u\000\000\000\000\000\000\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\017u\000\000\017u\017u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017u\000\000\017u\000\000\017u\017u\017}\000\000\017u\000\000\017}\000\000\000\000\017u\017}\000\000\017u\000\000\000\000\017u\000\000\017u\017u\000\000\000\000\017}\017}\017}\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\017}\005F\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\017}\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\017}\000\000\000\000\017}\000\000\000\000\000\000\000\000\017}\000\000\000\000\000\000\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\017}\000\000\017}\017}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017}\000\000\017}\000\000\017}\017}\017\133\000\000\017}\000\000\017\133\000\000\000\000\017}\017\133\000\000\017}\000\000\000\000\017}\000\000\017}\017}\000\000\000\000\017\133\017\133\017\133\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\017\133\004Z\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\017\133\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\017\133\000\000\000\000\017\133\000\000\000\000\000\000\000\000\017\133\000\000\000\000\000\000\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\017\133\000\000\017\133\017\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\133\000\000\017\133\000\000\017\133\017\133\017\141\000\000\017\133\000\000\017\141\000\000\000\000\017\133\017\141\000\000\017\133\000\000\000\000\017\133\000\000\017\133\017\133\000\000\000\000\017\141\017\141\017\141\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\017\141\005F\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\017\141\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\017\141\000\000\000\000\017\141\000\000\000\000\000\000\000\000\017\141\000\000\000\000\000\000\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\017\141\000\000\017\141\017\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\141\000\000\017\141\000\000\017\141\017\141\018E\000\000\017\141\000\000\018E\000\000\000\000\017\141\018E\000\000\017\141\000\000\000\000\017\141\000\000\017\141\017\141\000\000\000\000\018E\018E\018E\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\018E\004Z\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\018E\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\018E\000\000\000\000\018E\000\000\000\000\000\000\000\000\018E\000\000\000\000\000\000\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\018E\000\000\018E\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018E\000\000\018E\000\000\018E\018E\018M\000\000\018E\000\000\018M\000\000\000\000\018E\018M\000\000\018E\000\000\000\000\018E\000\000\018E\018E\000\000\000\000\018M\018M\018M\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\018M\005F\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018M\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018M\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\000\000\000\000\000\000\000\000\018M\000\000\000\000\018M\000\000\000\000\000\000\000\000\018M\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\018M\000\000\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018M\000\000\018M\018M\018U\000\000\018M\000\000\018U\000\000\000\000\018M\018U\000\000\018M\000\000\000\000\018M\000\000\018M\018M\000\000\000\000\018U\018U\018U\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\018U\004Z\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\018U\000\000\000\000\018U\000\000\000\000\000\000\000\000\018U\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\018U\000\000\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\018U\000\000\018U\018U\018]\000\000\018U\000\000\018]\000\000\000\000\018U\018]\000\000\018U\000\000\000\000\018U\000\000\018U\018U\000\000\000\000\018]\018]\018]\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\018]\005F\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\018]\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000\000\000\000\000\000\000\000\000\018]\000\000\000\000\018]\000\000\000\000\000\000\000\000\018]\000\000\000\000\000\000\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\018]\000\000\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018]\000\000\018]\000\000\018]\018]\018%\000\000\018]\000\000\018%\000\000\000\000\018]\018%\000\000\018]\000\000\000\000\018]\000\000\018]\018]\000\000\000\000\018%\018%\018%\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\018%\004Z\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\018%\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\000\000\000\000\000\000\000\000\018%\000\000\000\000\000\000\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\018%\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018%\000\000\018%\000\000\018%\018%\018-\000\000\018%\000\000\018-\000\000\000\000\018%\018-\000\000\018%\000\000\000\000\018%\000\000\018%\018%\000\000\000\000\018-\018-\018-\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\018-\005F\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\018-\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\018-\000\000\000\000\018-\000\000\000\000\000\000\000\000\018-\000\000\000\000\000\000\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\018-\000\000\018-\018-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018-\000\000\018-\000\000\018-\018-\0185\000\000\018-\000\000\0185\000\000\000\000\018-\0185\000\000\018-\000\000\000\000\018-\000\000\018-\018-\000\000\000\000\0185\0185\0185\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\0185\004Z\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\0185\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\0185\000\000\000\000\0185\000\000\000\000\000\000\000\000\0185\000\000\000\000\000\000\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\0185\000\000\0185\0185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\0185\000\000\0185\0185\018=\000\000\0185\000\000\018=\000\000\000\000\0185\018=\000\000\0185\000\000\000\000\0185\000\000\0185\0185\000\000\000\000\018=\018=\018=\000\000\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\001\202\001\226\001\230\018=\018=\005F\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\000\000\000\000\001\234\002&\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\018=\001\206\018=\018=\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\018=\000\000\002f\001\210\003\226\018=\000\000\000\000\003z\018=\003\138\003\186\003\198\000\000\000\000\000\000\000\000\018=\003\210\018=\018=\000\000\018=\018=\b\130\003\154\000\000\000\000\003j\000\000\r6\000\000\000\000\bf\018=\000\000\018=\000\000\018=\018=\003\214\003\230\018=\000\000\001\234\000\000\r\130\018=\000\000\000\000\018=\b\190\000\000\018=\015n\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\015\254\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\015\005\n\"\000\000\n*\000\000\016\142\000\000\000\000\nZ\000\000\000\000\006\241\000\000\000\000\000\000\006\241\000\000\006\189\000\000\n^\nr\nv\000\000\nz\n\130\000\000\006\241\000\000\000\000\000\000\006\241\000\000\006\241\000\000\n\138\n\142\001\202\b\233\b\233\021\138\000\000\b\233\000\000\b\233\006\241\000\000\b\233\000\000\000\000\000\000\000\000\006\241\000\000\000\000\000\000\015\005\000\000\b\233\b\233\015\005\015\005\000\000\n\146\000\000\b\233\006\241\015\005\000\000\007\166\001\206\000\000\006\241\015\005\006\189\000\000\000\000\000\000\000\000\000\000\b\233\006\241\000\000\b\233\001\210\b\233\000\000\000\000\000\000\b\233\006\241\b\233\b\233\b\233\b\233\b\233\000\000\000\000\000\000\b\233\000\000\b\233\b\233\b\233\000\000\000\000\b\233\000\000\000\000\000\000\006\241\000\000\006\241\000\000\000\000\006\241\006\241\b\233\b\233\b\233\000\000\b\233\b\233\000\000\001\202\b\237\b\237\000\000\000\000\b\237\000\000\b\237\b\233\b\233\b\237\006\241\b\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237\b\237\000\000)r\000\000\000\000\000\000\b\237\000\000\000\000\000\000\000\000\001\206\000\000\000\000\b\233\000\000\000\000\000\000\000\000\000\000\b\233\b\237\000\000\000\000\b\237\001\210\b\237\000\000\000\000\000\000\b\237\000\000\b\237\b\237\b\237\b\237\b\237\000\000\000\000\000\000\b\237\000\000\b\237\b\237\b\237\000\000\000\000\b\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237\b\237\b\237\000\000\b\237\b\237\000\000\001\202\b\229\b\229\000\000\000\000\b\229\000\000\b\229\b\237\b\237\b\229\000\000\b\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\229\b\229\000\000\000\000\000\000\000\000\000\000\b\229\000\000\000\000\000\000\000\000\001\206\000\000\000\000\b\237\000\000\000\000\000\000\000\000\000\000\b\237\b\229\000\000\000\000\b\229\001\210\b\229\000\000\000\000\000\000\b\229\000\000\b\229\b\229\b\229\b\229\b\229\000\000\000\000\000\000\b\229\000\000\b\229\b\229\b\229\000\000\000\000\b\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\229\b\229\b\229\000\000\b\229\b\229\000\000\006\249\006\249\006\249\000\000\000\000\006\249\000\000\006\249\b\229\b\229\006\249\000\000\b\229\000\000\000\000\000\000\000\000\006\249\000\000\000\000\000\000\006\249\000\000\000\000\000\000\000\000\000\000\000\000\006\249#\182\000\000\000\000#\206\006\249\000\000\000\000\b\229\000\000\000\000\000\000\000\000\000\000\b\229\006\249\000\000\000\000\006\249\006\249\006\249\000\000\000\000\000\000\000\000\000\000\006\249\000\000\000\000\006\249\006\249\000\000\000\000\000\242\006\249\000\000\006\249\006\249\006\249\000\000\000\000\006\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\249\006\249\006\249\000\000\006\249\006\249\nI\001\202\001\226\001\230\nI\000\000\000\000\000\000\000\000\006\249\006\249\000\000\000\000\000\000\000\000\nI\000\000\000\000\000\000\nI\000\000\nI\001\234\002&\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\nI\001\206\000\000\000\000\006\249\000\000\000\000\nI\000\000\000\000\006\249\000\000\000\000\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\nI\003\138\003\186\003\198\000\000\000\000\nI\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\nI\000\000\b=\000\000\000\000\000\000\b=\000\000\000\000\nI\b=\000\000\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\000\000\b=\000\000\b=\000\000\b=\000\000\b=\000\000\nI\000\000\nI\000\000\000\000\nI\nI\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\000\000\000\000\b=\000\000\b=\000\000\000\000\000\000\000\000\b=\nI\000\000\000\000\b=\000\000\007\162\b=\007\166\002\130\000\000\000\000\000\000\b=\b=\b=\000\000\000\000\000\000\000\000\000\000\000\000\b=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b=\b=\000\000\b=\000\000\000\000\000\000\000\000\b=\b\130\003\154\000\000\000\000\003j\000\000\r6\000\000\000\000\bf\000\000\b=\000\000\b=\b=\000\000\b=\b=\000\000\000\000\001\234\000\000\r\130\000\000\014~\000\000\000\000\b\190\000\000\000\000\015n\000\000\b=\000\000\000\000\b=\b=\000\000\000\000\000\000\0049\000\000\b\210\000\000\b=\015\254\000\000\001\190\000\000\b=\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\000\000\016\142\019\217\000\000\nZ\000\000\019\217\000\000\000\000\000\000\019\217\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\019\217\000\000\019\217\000\000\019\217\000\000\019\217\000\000\000\000\n\138\n\142\b\130\003\154\000\000\0049\003j\000\000\r6\019\217\000\000\bf\000\000\000\000\000\000\000\000\019\217\000\000\019\217\000\000\000\000\000\000\001\234\0049\r\130\000\000\0049\019\217\n\146\b\190\019\217\000\000\015n\000\000\007\166\000\000\019\217\019\217\019\217\000\000\000\000\000\000\000\000\000\000\b\210\019\217\000\000\015\254\000\000\001\190\000\000\000\000\000\000\000\000\019\217\003\138\000\000\019\217\n\026\n\030\000\000\000\000\019\217\n\"\000\000\n*\000\000\016\142\000\000\000\000\nZ\000\000\000\000\000\000\019\217\000\000\019\217\019\217\000\000\019\217\019\217\n^\nr\nv\000\000\nz\n\130\000\000\000\000\000\000\000\000\014\026\000\000\000\000\000\000\019\217\n\138\n\142\000\000\019\217\000\000\021\138\000\000\000\000\000\000\025\026\000\000\019\217\000\000\000\000\018\194\000\000\019\217\000\000\023>\r\029\000\000\r\029\r\029\003\182\000\000\000\000\022\166\000\000\n\146\019*\019\138\019\162\019B\019\186\007\166\000\000\004F\000\000\001\153\000\000\000\000\000\000\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\000\000\018\194\000\000\000\000\020\002\000\000\031v\000\000\001\153\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\000\000\000\000\028:\020\170\020\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\020\194\000\000\000\000\000\000\000\000\025\030\000\000\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\000\000\021\"\r\029\000\000\021Z\020J\000\000\000\000\000\000\000\000\r\029\020\218\020\170\000\000\000\000\020b\020z\001\153\000\000\000\000\000\000\020\242\021\n\020\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\161\000\000\000\000\021\"\001\153\031z\021Z\020J\031\134\000\000\000\000\000\000\001\153\020\218\018\194\000\000\000\000\020b\020z\000\000\000\000\001\161\001\153\020\242\021\n\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\000\000\000\000\000\000\001\145\000\000\000\000\000\000\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\000\000\018\194\000\000\000\000\020\002\000\000\000\000\000\000\001\145\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\170\020\002\000\000\000\000\000\000\001\161\000\000\000\000\000\000\000\000\000\242\020\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\000\000\021\"\001\161\000\000\021Z\020J\000\000\000\000\000\000\000\000\001\161\020\218\020\170\000\000\000\000\020b\020z\001\145\000\000\000\000\001\161\020\242\021\n\020\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\185\000\000\000\000\021\"\001\145\000\000\021Z\020J\000\000\000\000\000\000\000\000\001\145\020\218\018\194\000\000\000\000\020b\020z\000\000\000\000\001\185\001\145\020\242\021\n\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\000\000\018\194\000\000\000\000\020\002\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\000\242\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\170\020\002\000\000\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\242\020\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\000\000\021\"\001\185\000\000\021Z\020J\000\000\000\000\000\000\000\000\001\185\020\218\020\170\000\000\000\000\020b\020z\001\177\000\000\000\000\001\185\020\242\021\n\020\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\021\"\001\177\000\000\021Z\020J\000\000\000\000\000\000\000\000\001\177\020\218\018\194\000\000\000\000\020b\020z\000\000\000\000\001\169\001\177\020\242\021\n\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\001\234\002&\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\020\170\000\000!\022\000\000\000\000\001\169\000\000\000\000\000\000\000\000\000\000\020\194\000\000\003~\000\000$b\000\000!\142\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\021\"\001\169$r\021Z\020J\000\000\000\000\000\000\004\145\001\169\020\218\000\000\004\145\000\000\020b\020z\004\145\000\000\000\000\001\169\020\242\021\n\000\000\000\000\003\214\003\230\000\000\004\145\000\000\004\145\000\000\004\145\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\000\000\000\000\000\000\000\000\007\189\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\213\004\145\000\000\000\000\004\145\000\000\000\000\000\000\b\213\004\145\000\000\b\213\b\213\000\000\000\000\b\213\b\213\b\213\000\000\000\000\000\000\004\145\000\000\004\145\004\145\000\000\004\145\004\145\000\000\b\213\000\000\000\000\000\000\000\000\007\189\000\000\b\213\000\000\b\213\000\000\000\000\000\000\004\145\004\145\000\000\002\134\004\145\b\213\000\000\000\000\b\213\000\000\000\000\000\000\004\145\000\000\b\213\b\213\b\213\004\145\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\213\b\213\000\000\b\213\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\b\213\bf\b\213\b\213\000\000\b\213\b\213\011\002\000\000\rE\000\000\000\000\001\234\000\000\000\000\000\000\000\000\b\213\000\000\b\190\000\000\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\000\000\b\213\000\000\000\000\000\000\b\210\000\000\000\000\b\230\b\213\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\n~\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\000\000\004\145\000\000\000\000\000\000\004\145\000\000\n\138\n\142\004\145\000\000\011\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\000\000\004\145\000\000\004\145\000\000\000\000\rE\000\000\000\000\011\242\000\000\000\000\n\146\000\000\rE\004\145\015V\000\000\007\166\000\000\000\000\000\000\004\145\000\000\004\145\000\000\000\000\000\000\000\000\007\193\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\000\000\000\000\000\000\004\145\000\000\000\000\b1\000\000\000\000\000\000\b1\000\000\000\000\000\000\b1\004\145\000\000\004\145\004\145\000\000\004\145\004\145\000\000\000\000\000\000\b1\000\000\b1\007\193\b1\000\000\b1\000\000\000\000\000\000\000\000\004\145\004\145\000\000\000\000\004\145\000\000\000\000\b1\000\000\000\000\000\000\000\000\004\145\000\000\b1\000\000\b1\004\145\000\000\000\000\000\000\014\198\000\000\000\000\000\000\b1\000\000\000\000\b1\000\000\000\000\000\000\000\000\000\000\b1\b1\000\242\000\000\002]\002]\000\000\000\000\002]\b1\002]\000\000\000\000\002]\000\000\000\000\000\000\000\000\b1\b1\000\000\b1\000\000\000\000\002]\000\000\b1\000\000\000\000\000\000\000\000\002]\000\n\000\000\000\000\000\000\000\000\000\000\b1\000\000\b1\b1\000\000\b1\b1\000\000\002]\000\000\000\000\002]\000\000\002]\000\000\000\000\000\000\000\000\000\000\002]\000\000\b1\002]\002]\b1\b1\002]\002]\000\000\002]\002]\002]\000\000\b1\002]\000\000\000\000\000\000\b1\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\002]\000\000\002]\002]\000\000\001\202\b\130\003\154\000\000\000\000\003j\000\000\b\134\002]\002]\bf\000\000\002]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002]\000\000\000\000\000\000\002]\000\000\002]\b\210\000\000\000\000\015z\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\n~\000\000\000\000\nZ\000\000\000\000\001\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\018\194\000\000\000\000\000\000\n!\000\000\000\000\001\133\n!\n\138\n\142\000\000\000\000\011\006\000\000\019*\019\138\019\162\019B\019\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\n\146\000\000\001\226\001\230\020\002\000\000\007\166\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\002&\018\218\019r\020\026\0202\020\146\000\000\000\000\000\000\000\000\011Q\011Q\011Q\000\000\000\000\011Q\n!\011Q\020\170\000\000\011Q\000\000\000\000\001\133\003~\000\000\003\218\030v\000\000\020\194\003z\011Q\003\138\003\186\003\198\000\000\000\000\000\000\011Q\000\000\003\210\000\000\000\000\011Q\000\000\021\"\001\133\000\000\021Z\020J\000\000\000\000\000\000\011Q\001\133\020\218\011Q\011Q\011Q\020b\020z\000\000\003\214\003\230\011Q\020\242\021\n\011Q\011Q\000\000\000\000\000\000\011Q\000\000\011Q\011Q\011Q\000\000\000\000\011Q\000\000\000\000\001\n\000\000\000\000\000\000\000\000\003v\000\000\000\000\011Q\011Q\011Q\000\000\011Q\011Q\001\014\001\018\001\022\001\026\001\030\001\"\000\000\000\000\000\000\011Q\011Q\000\000\000\000\000\000\000\000\001&\000\000\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\011Q\b\205\000\000\000\000\000\000\b\205\011Q\000\000\000\000\000\000\001:\001>\001B\001F\001J\000\000\b\205\000\000\b\205\000\000\b\205\001N\b\205\000\000\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\001V\000\000\000\000\b\205\b\205\000\000\000\000\001Z\000\000\000\000\000\000\000\000\002\238\000\000\b\205\000\000\000\000\b\205\000\000\001\150,\246\000\000\000\000\b\205\b\205\000\000\001\154\000\000\001\158\000\000\001\162\001\166\b\205\000\000\001\170\000\000\001\174\001\178\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\000\000\000\000\000\000\b\205\012A\000\000\000\000\000\000\012A\000\000\000\000\000\000\012A\000\000\000\000\b\205\000\000\b\205\b\205\000\000\b\205\b\205\000\000\012A\000\000\012A\000\000\012A\000\000\012A\000\000\000\000\b\205\000\000\b\205\000\000\000\000\b\205\000\000\000\000\b\205\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\012A\000\000\000\000\b\205\b\205\000\000\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\000\000\000\000\000\000\000\000\012A\012A\012A\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012A\000\000\000\000\012A\000\000\000\000\000\000\000\000\012A\000\000\000\000\019\225\000\000\000\000\000\000\019\225\000\000\000\000\000\000\019\225\012A\000\000\012A\012A\000\000\012A\012A\000\000\000\000\000\000\019\225\000\000\019\225\000\000\019\225\000\000\019\225\012A\000\000\000\000\000\000\012A\000\000\000\000\000\000\012A\000\000\000\000\019\225\000\000\000\000\000\000\000\000\012A\000\000\019\225\005\206\019\225\012A\000\000\000\000\000\000\003\242\000\000\000\000\000\000\019\225\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\019\225\019\225\019\225\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\000\000\019\225\000\000\000\000\000\000\000\000\019\225\000\000\000\000\019\229\000\000\000\000\000\000\019\229\000\000\000\000\000\000\019\229\019\225\000\000\019\225\019\225\000\000\019\225\019\225\000\000\000\000\000\000\019\229\000\000\019\229\003\254\019\229\000\000\019\229\000\000\000\000\000\000\000\000\019\225\000\000\000\000\000\000\019\225\000\000\000\000\019\229\000\000\000\000\000\000\000\000\019\225\000\000\019\229\000\000\019\229\019\225\000\000\000\000\000\000\003\242\000\000\000\000\000\000\019\229\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\019\229\019\229\019\229\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\019\229\000\000\000\000\000\000\000\000\019\229\000\000\000\000\b\133\000\000\000\000\018\237\b\133\000\000\000\000\018\237\b\133\019\229\000\000\019\229\019\229\000\000\019\229\019\229\000\000\000\000\018\237\b\133\000\000\b\133\003\254\b\133\018\237\b\133\000\000\000\000\000\000\000\000\019\229\000\000\000\000\000\000\019\229\000\000\018\237\b\133\000\000\000\000\000\000\000\000\019\229\018\237\b\133\000\000\b\133\019\229\000\000\000\000\000\000\003\242\000\000\000\000\018\237\b\133\000\000\018\237\b\133\000\000\000\000\000\000\000\000\018\237\b\133\b\133\b\133\000\000\000\000\000\000\000\000\000\000\018\237\b\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\b\133\000\000\018\237\b\133\000\000\000\000\000\000\018\237\b\133\002]\002]\000\000\000\000\002]\000\000\002]\000\000\000\000\002]\018\237\b\133\018\237\b\133\b\133\018\237\b\133\b\133\000\000\000\000\002]\000\000\002]-\218\003\254\000\000\000\000\002]\000\n\000\000\002]\000\000\b\133\000\000\000\000\018\237\b\133\000\000\000\000\000\000\000\000\000\000\002]\000\000\b\133\002]\000\000\002]\000\000\b\133\000\000\000\000\000\000\002]\000\000\000\000\002]\002]\000\000\000\000\002]\002]\000\000\002]\000\000\002]\000\000\000\000\002]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\002]\000\000\002]\002]\000\000\001\202\b\130\003\154\000\000\000\000\003j\000\000\t\226\002]\002]\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002]\000\000\000\000\000\000\000\000\000\000\002]\b\210\000\000\000\000\021z\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\025~\000\000\n\"\000\000\n*\nN\012\250\001\226\001\230\nZ\000\000\000\000\000\000\000\000\018\194\000\000\000\000\000\000\023>\000\000\n^\nr\nv\000\000\nz\n\130\000\000\001\234\002&\019*\019\138\019\162\019B\019\186\000\000\n\138\n\142\000\000\000\000\000\000\000\000\000\000\000\000\019Z\000\000\019\210\019\234\000\000\000\000\000\000\000\000\000\000\003~\000\000\003\226\020\002\000\000\000\000\003z\000\000\003\138\003\186\003\198\n\146\000\242\000\000\000\000\000\000\003\210\007\166\029n\000\000\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\000\000\025~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\003\230\020\170\000\000\000\000\018\194\029\190\025\150\000\000\023>\000\000\000\000\r\029\020\194\000\000\000\000\000\000\000\000\000\000\000\000\019*\019\138\019\162\019B\019\186\000\000\000\000\000\000\000\000\021\"\r\029\000\000\021Z\020J\019Z\000\000\019\210\019\234\r\029\020\218\000\000\000\000\000\000\020b\020z\000\000\020\002\000\000\000\000\020\242\021\n\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\218\019r\020\026\0202\020\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\170\000\000\000\000\nI\000\000\025\150\001\230\nI\000\000\000\000\000\000\020\194\000\000\000\000\000\000\nI\000\000\000\000\nI\000\000\000\000\000\000\nI\000\000\nI\000\000\000\000\021\"\000\000\000\000\021Z\020J\000\000\000\000\000\000\000\000\nI\020\218\000\000\000\000\000\000\020b\020z\nI\000\000\nI\000\000\020\242\021\n\000\000\000\000\000\000\003\226\000\000\nI\000\000\000\000\nI\000\000\000\000\000\000\000\000\000\000\nI\nI\nI\000\000\nI\000\000\000\000\000\000\000\000\nI\000\000\000\000\000\000\004u\000\000\nI\001\230\004u\nI\nI\000\000\nI\000\000\000\000\000\000\nI\005v\000\000\004u\000\000\000\000\000\000\004u\nI\004u\000\000\000\000\000\000\nI\000\000\nI\000\000\000\000\nI\nI\000\000\004u\000\000\000\000\000\000\000\000\nI\000\000\004u\nI\nI\000\000\000\000\000\000\000\000\nI\nI\003\226\nI\004u\000\000\000\000\004u\nI\nI\000\000\002\130\000\000\004u\004u\004u\nI\000\000\nI\000\000\000\000\nI\004u\000\000\000\000\000\000\nI\000\000\000\000\000\000\000\000\004u\004u\000\000\004u\000\000\000\000\000\000\nI\005v\nI\000\000\000\000\nI\nI\000\000\004q\000\000\000\000\001\230\004q\004u\000\000\004u\000\000\000\000\004u\004u\nI\000\000\000\000\004q\000\000\nI\000\000\004q\000\000\004q\004u\000\000\000\000\002\130\000\000\000\000\000\000\000\000\004u\000\000\000\000\004q\000\000\004u\000\000\000\000\002\130\000\000\004q\000\000\nI\004u\000\000\000\000\000\000\000\000\000\000\003\226\000\000\004q\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\004q\004q\004q\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\004q\000\000\004q\000\000\000\000\000\000\000\000\005v\b\130\003\154\000\000\000\000\003j\000\000\r6\000\000\000\000\bf\000\000\004q\000\000\004q\000\000\000\000\004q\004q\000\000\000\000\001\234\000\000\r\130\000\000\000\000\000\000\000\000\b\190\004q\000\000\015n\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000#\254\004q\b\210\000\000\002\130\"f\000\000\001\190\000\000\004q\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\000\000\016\142\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r6\n\138\n\142\bf\000\000\000\000\"j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r\130\000\000\000\000\000\000\000\000\b\190\000\000\000\000\015n\000\000\000\000%\n\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\015\254\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\000\000\016\142\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r6\n\138\n\142\bf\000\000\000\000\021\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r\130\000\000\000\000\000\000\000\000\b\190\000\000\000\000\015n\000\000\000\000#\006\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\015\254\000\000\001\190\000\000\000\000\000\000\001\226\001\230\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\000\000\016\142\004\197\000\000\nZ\000\000\004\197\001\234\002&\000\000\004\197\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\004\197\018\209\004\197\000\000\004\197\018\209\004\197\000\000\000\000\n\138\n\142\004\202\000\000\003\226\021\138\000\000\018\209\003z\004\197\003\138\003\186\003\198\018\209\000\000\000\000\004\197\004\197\003\210\000\000\000\000\000\000\000\000\000\000\000\000\018\209#f\004\197\n\146\000\000\004\197\000\000\018\209\000\000\007\166\000\000\004\197\004\197\000\242\000\000\003\214\003\230\000\000\018\209\000\000\004\197\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\004\197\000\000\000\000\004\197\000\000\000\000\000\000\018\209\004\197\004\205\000\000\000\000\000\000\004\205\000\000\000\000\018\209\004\205\000\000\018\209\004\197\000\000\004\197\004\197\018\209\004\197\004\197\000\000\004\205\007\017\004\205\000\000\004\205\007\017\004\205\000\000\018\209\004\197\018\209\004\197\000\000\018\209\004\197\000\000\007\017\004\197\004\205\000\000\000\000-\218\007\017\000\000\000\000\004\205\004\205\000\000\000\000\000\000\004\197\004\197\000\000\018\209\007\017\000\000\004\205\000\000\000\000\004\205\000\000\007\017\000\000\000\000\000\000\004\205\004\205\000\242\000\000\000\000\000\000\000\000\007\017\000\000\004\205\007\017\000\000\000\000\000\000\000\000\000\000\007\017\tN\004\205\000\000\000\000\004\205\000\000\000\000\000\000\007\017\004\205\000\000\000\000\000\000\000\000\000\000\000\000\001\n\007\017\000\000\000\000\007\017\004\205\000\000\004\205\004\205\007\017\004\205\004\205\000\000\000\000\001\014\001\018\001\022\001\026\001\030\001\"\000\000\007\017\004\205\007\017\004\205\000\000\007\017\004\205\000\000\001&\004\205\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\004\205\004\205\000\000\007\017\000\000\004\213\000\000\000\000\000\000\004\213\000\000\000\000\000\000\004\213\000\000\000\000\000\000\000\000\001:\001>\001B\001F\001J\000\000\004\213\000\000\004\213\000\000\004\213\001N\004\213\000\000\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\000\000\000\000\001V\000\000\000\000\004\213\004\213\000\000\000\000\001Z\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\000\000\004\213\000\000\001\150-\018\000\000\000\000\004\213\004\213\000\000\001\154\000\000\001\158\000\000\001\162\001\166\004\213\000\000\001\170\000\000\001\174\001\178\000\000\000\000\000\000\004\213\000\000\000\000\004\213\000\000\000\000\000\000\000\000\004\213\b\130\003\154\000\000\000\000\003j\000\000\b\162\000\000\000\000\bf\000\000\004\213\000\000\004\213\004\213\000\000\004\213\004\213\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\004\213\000\000\004\213\000\000\000\000\004\213\000\000\000\000\004\213\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\004\213\002B\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN&\182\000\000\r\238\nZ\000\000\000\000\007\017\000\000\003\150\003\154\007\017\000\000\003j\000\000\n^\nr\nv\bf\nz\n\130\000\000\007\017\000\000\t]\000\000\007\017\000\000\007\017\001\234\n\138\n\142\000\000\bn\011\006\000\000\000\000\000\000\000\000\000\000\007\017\000\000\000\000\br&\190\t\134\000\000\007\017\000\000\014j\000\000\000\000\000\000\000\000\t\198\000\000\001\190\000\000\n\146\000\000\000\000\007\017\003\138\000\000\007\166\t\206\014\250\007\017\tN\000\242\014\254\015\002\015\014\000\000\000\000\000\000\007\017\nZ\000\000\000\000\000\000\000\000\b\130\003\154\000\000\007\017\003j\000\000\b\134\nr\nv\bf\015\022\000\000\000\000\000\000\000\000\000\000\000\000\n&\000\000\000\000\001\234\n\138\n\142\007\017\000\000\007\017\000\000\b\190\007\017\007\017\000\000\000\000\015&\000\000\015*\000\000\014~\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\007\017\n\146\0152\000\000\000\000\003\138\017:\007\166\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\n~\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\n\178\n\138\n\142\bf\000\000\011\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\012b\000\000\000\000\000\000\000\000\000\000\n\146\000\000\012V\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\n\206\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\0116\n\138\n\142\bf\000\000\011\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\012\"\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\011R\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\011\166\n\138\n\142\bf\000\000\011\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\011f\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\011\194\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\n\138\n\142\bf\000\000\011\006\000\000\000\000\000\000\000\000\000\000\012\006\000\000\000\000\001\234\011\202\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\n~\019\221\000\000\nZ\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\019\221\000\000\019\221\000\000\019\221\000\000\019\221\000\000\000\000\n\138\n\142\000\000\000\000\011\006\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\n\146\000\000\019\221\000\000\000\000\000\000\007\166\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\019\221\000\000\000\000\000\000\000\000\019\221\000\000\000\000\012E\000\000\000\000\000\000\012E\000\000\000\000\000\000\012E\019\221\000\000\019\221\019\221\000\000\019\221\019\221\000\000\000\000\000\000\012E\000\000\012E\000\000\012E\000\000\012E\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\012E\000\000\000\000\000\000\000\000\019\221\000\000\012E\005\206\012E\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012E\000\000\000\000\012E\000\000\000\000\000\000\000\000\000\000\012E\012E\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012E\000\000\000\000\012E\000\000\000\000\000\000\000\000\012E\000\000\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\000\000\000\000\012E\bf\012E\012E\000\000\012E\012E\t\133\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\bn\012E\000\000\000\000\000\000\012E\000\000\000\000\000\000\012E\br\000\000\t\134\000\000\000\000\000\000\000\000\012E\000\000\000\000\000\000\t\198\012E\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\206\014\250\000\000\000\000\000\000\014\254\015\002\015\014\000\000\000\000\000\000\000\000\nZ\000\000\000\189\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\nr\nv\000\000\015\022\000\000\000\189\000\000\000\189\000\000\000\189\000\000\000\189\000\000\000\000\n\138\n\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\189\000\000\015&\000\000\015*\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\000\189\n\146\0152\000\189\000\000\000\000\017:\007\166\000\000\000\189\000\189\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\189\000\000\000\189\000\189\000\000\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\189\000\250\000\000\000\000\000\000\t*\001\001\000\000\000\000\000\000\001\001\000\000\000\189\000\000\000\189\000\000\007E\000\189\000\189\000\000\000\000\001\001\tZ\001\001\000\000\001\001\000\000\001\001\000\000\000\189\000\000\000\000\000\000\000\000\tf\000\000\000\189\000\189\000\000\001\001\000\000\031\182\000\000\000\000\000\000\000\000\001\001\000\000\000\189\000\000\000\189\001\001%V\000\000\000\000 \026\000\000\001\001\000\000\000\000\001\001 2\000\000\000\000\000\000\000\000\001\001\001\001\000\242\000\000 :\000\000\000\000\000\000\000\000\001\001\000\000\001\001\001\001 J\000\000\000\000\000\000\000\000\001\001\000\000\000\000\001\001\000\000\000\000\000\000\000\000\001\001\000\000\000\000\000\000\000\000\000\000\000\197 R\000\000 \146\000\197\000\000\001\001\000\000\001\001\000\000\000\000\001\001\001\001\000\000\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\001\001\000\000\000\000 \218\000\000\000\000\000\000\001\001\001\001\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\001\001\000\000\001\001\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\197\000\000\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\197\000\000\000\197\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\193\be\000\000\000\000\000\000\be\000\000\000\000\000\000\be\000\000\000\000\000\193\000\000\000\193\000\000\000\000\000\193\000\193\000\000\be\000\000\be\000\000\be\000\000\be\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\193\be\000\000\000\000\000\000\000\000\000\000\000\000\be\000\000\be\000\193\000\000\000\193\000\000\014\198\000\000\000\000\000\000\be\000\000\000\000\be\000\000\000\000\000\000\000\000\000\000\be\be\000\242\000\000\b\130\003\154\000\000\000\000\003j\be&\206\000\000\000\000\bf\000\000\000\000\000\000\000\000\be\000\000\000\000\be\000\000\000\000\001\234\000\000\be\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\be\000\000\be\be\000\000\be\be\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\be\n\026\n\030\000\000\be\000\000\n\"\000\000\n*\nN&\234\000\000\be\nZ\000\000\001\217\000\000\be\000\000\001\217\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\001\217\000\000\000\000\000\000\001\217\000\000\001\217\000\000\000\000\n\138\n\142\000\000\000\000\011\006\001\226\001\230\000\000\000\000\001\217\000\000\001\217\000\000\000\000&\242\000\000\001\217\000\000\000\000\000\000\000\000\000\000\000\000\007\189\000\000\001\234\002&\001\217\n\146\000\000\001\217\000\000\000\000\000\000\007\166\000\000\001\217\001\217\001\217\000\000\000\000\000\000\000\000\000\000\000\000\001\217\000\000\000\000\000\000\000\000\003~\000\000'\142\000\000\001\217\000\000\003z\001\217\003\138\003\186\003\198\000\000\001\217\b\130\003\154\000\000\003\210\003j\000\000\t\254\000\000\000\000\bf\000\000\001\217\000\000\001\217\000\000\000\000\001\217\001\217\000\000\000\000\001\234\000\000\000\000\000\000\007\189\003\214\003\230\b\190\001\217\000\000'\186\000\000\000\000\000\000\000\000\001\217\001\217\000\000\000\000\000\000\000\000\001\217\b\210\000\000\000\000\b\230\000\000\001\190\000\000\001\217'\166\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\012n\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\154\n\138\n\142\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\012v\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\012\182\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\012\206\n\138\n\142\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\012\190\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\012\234\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\006\n\138\n\142\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\012\242\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\r\"\r\238\000\000\nZ\000\000\ba\000\000\000\000\000\000\ba\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\ba\000\000\ba\000\000\ba\000\000\ba\000\000\000\000\n\138\n\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\000\000\000\000\r*\000\000\ba\000\000\014j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ba\n\146\000\000\ba\000\000\000\000\000\000\007\166\000\000\ba\ba\000\242\000\000\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\ba\000\000\000\000\000\000\000\000\ba\000\000\019\233\000\000\000\000\000\000\019\233\000\000\000\000\000\000\019\233\000\000\ba\000\000\ba\ba\000\000\ba\ba\000\000\000\000\019\233\000\000\019\233\000\000\019\233\000\000\019\233\000\000\000\000\000\000\000\000\000\000\ba\000\000\000\000\000\000\ba\000\000\019\233\000\000\000\000\000\000\000\000\000\000\ba\019\233\000\000\019\233\000\000\ba\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\019\233\019\233\000\242\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\019\233\000\000\000\000\000\000\000\000\019\233\000\000\019\237\000\000\000\000\000\000\019\237\000\000\000\000\000\000\019\237\000\000\019\233\000\000\019\233\019\233\000\000\019\233\019\233\000\000\000\000\019\237\000\000\019\237\000\000\019\237\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\000\000\019\233\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\233\019\237\000\000\014j\000\000\019\233\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\237\019\237\000\242\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\019\237\000\000\000\000\000\000\000\000\019\237\000\000\r\238\000\000\000\000\000\000\by\000\000\000\000\000\000\by\000\000\019\237\000\000\019\237\019\237\000\000\019\237\019\237\000\000\000\000\by\000\000\by\000\000\by\000\000\by\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\000\000\019\237\000\000\by\000\000\000\000\000\000\000\000\000\000\019\237\by\000\000\014j\000\000\019\237\000\000\000\000\000\000\000\000\000\000\000\000\by\000\000\000\000\by\000\000\000\000\000\000\000\000\000\000\by\by\000\242\000\000\000\000\000\000\000\000\000\000\000\000\by\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\by\000\000\000\000\by\000\000\000\000\000\000\000\000\by\000\000\b}\000\000\000\000\000\000\b}\000\000\000\000\000\000\b}\000\000\by\000\000\by\by\000\000\by\by\000\000\000\000\b}\000\000\b}\000\000\b}\000\000\b}\000\000\000\000\000\000\000\000\000\000\by\000\000\000\000\000\000\by\000\000\b}\000\000\000\000\000\000\000\000\000\000\by\b}\000\000\b}\000\000\by\000\000\000\000\000\000\000\000\000\000\000\000\b}\000\000\000\000\b}\000\000\000\000\000\000\000\000\000\000\b}\b}\b}\000\000\000\000\000\000\000\000\000\000\000\000\b}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b}\000\000\000\000\b}\000\000\000\000\000\000\000\000\b}\000\000\bu\000\000\000\000\000\000\bu\000\000\000\000\000\000\bu\000\000\b}\000\000\b}\b}\000\000\b}\b}\000\000\000\000\bu\000\000\bu\000\000\bu\000\000\bu\000\000\000\000\000\000\000\000\000\000\b}\000\000\000\000\000\000\b}\000\000\bu\000\000\000\000\000\000\000\000\000\000\b}\bu\000\000\014j\000\000\014\146\000\000\000\000\000\000\000\000\000\000\000\000\bu\000\000\000\000\bu\000\000\000\000\000\000\000\000\000\000\bu\bu\000\242\000\000\b\130\003\154\000\000\000\000\003j\bu\b\134\000\000\000\000\bf\000\000\000\000\000\000\000\000\bu\000\000\000\000\bu\000\000\000\000\001\234\000\000\bu\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\bu\000\000\bu\bu\000\000\bu\bu\000\000\b\210\000\000\000\000\015~\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\bu\n\026\n\030\000\000\bu\000\000\n\"\000\000\n*\nN\n~\000\000\bu\nZ\000\000\000\000\000\000\bu\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\t\226\n\138\n\142\bf\000\000\011\006\000\000\000\000\000\000\ta\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\012\250\000\000\000\000\nZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n^\nr\nv\000\000\nz\n\130\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\022b\n\138\n\142\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\n\026\n\030\000\000\000\000\000\000\n\"\000\000\n*\nN\022~\000\000\000\000\nZ\000\000\007\181\000\000\000\000\019A\007\181\000\000\000\000\000\000\000\000\n^\nr\nv\019A\nz\n\130\007\181\000\000\007\181\000\000\007\181\000\000\007\181\000\000\000\000\n\138\n\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\181\000\000\000\000\000\000\000\000\022\134\000\000\007\181\000\000\019A\000\000\000\000\000\000\000\000\002V\000\000\019A\000\000\004\189\n\146\000\000\007\181\004\189\000\000\000\000\007\166\000\000\007\181\007\181\007\181\000\000\000\000\000\000\004\189\000\000\000\000\007\181\004\189\000\000\004\189\000\000\000\000\000\000\000\000\000\000\007\181\000\000\000\000\002^\000\000\000\000\004\189\000\000\019A\000\000\000\000\000\000\000\000\004\189\002\234\000\000\000\000\000\000\000\000\000\000\007\181\000\000\007\181\007\181\004\189\007\181\007\181\004\189\000\000\000\000\000\000\000\000\000\000\004\189\004\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000$f\007\181\007\017\000\000\000\000\000\000\007\017\004\189\000\000\000\000\004\189\000\000\000\000\000\000\007\181\004\189\000\000\007\017\000\000\000\000\000\000\007\017\000\000\007\017\000\000\007\017\000\000\004\189\000\000\004\189\004\189\000\000\004\189\004\189\000\000\007\017\007\017\000\000\000\000\000\000\007\017\000\000\007\017\000\000\004\189\000\000\000\000\007\017\000\000\004\189\000\000\000\000\004\189\007\017\007\017\000\000\007\017\000\000\000\000\000\000\000\000\007\017\007\017\tN\000\242\004\189\002\250\000\000\003\242\000\000\000\000\007\017\007\017\007\017\007\017\007\017\000\000\000\000\000\000\000\000\007\017\007\017\tN\007\017\000\000\000\000\000\000\000\000\007\017\001\253\007\017\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\007\017\007\017\012\201\007\017\000\000\001\253\007\017\007\017\007\017\001\253\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\007\017\000\000\007\017\001\253\000\000\007\017\007\017\000\000\000\000\000\000\001\253&\"\001\253\003\254\007\017\000\000\000\000\014\026\000\000\007\017\000\000\001\253\000\000\000\000\001\253\007\017\000\000\000\000\000\000\000\000\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\007\017\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\253\001\253\002\005\001\253\000\000\000\000\002\005\000\000\001\253\000\000\000\000\000\000\000\000\000\000\012\209\000\000\000\000\002\005\000\000\000\000\001\253\002\005\001\253\002\005\000\000\001\253\001\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\001\253\000\000\000\000\000\000\000\000\002\005\000\000\002\005\001\253\000\000\000\000\000\000\000\000\001\253\000\000\000\000\002\005\000\000\000\000\002\005\000\000\001\253\000\000\000\000\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\002\005\002\001\002\005\000\000\000\000\002\001\000\000\002\005\000\000\000\000\000\000\000\000\000\000\012\205\000\000\000\000\002\001\000\000\000\000\002\005\002\001\002\005\002\001\000\000\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\002\005\000\000\000\000\000\000\000\000\002\001\000\000\002\001\002\005\000\000\000\000\000\000\000\000\002\005\000\000\000\000\002\001\000\000\000\000\002\001\000\000\002\005\000\000\000\000\000\000\002\001\002\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002\001\001\249\002\001\000\000\000\000\001\249\000\000\002\001\000\000\000\000\000\000\000\000\000\000\012\197\000\000\000\000\001\249\000\000\000\000\002\001\001\249\002\001\001\249\000\000\002\001\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\249\000\000\002\001\000\000\000\000\000\000\000\000\001\249\000\000\001\249\002\001\000\000\000\000\000\000\000\000\002\001\000\000\000\000\001\249\000\000\000\000\001\249\000\000\002\001\000\000\000\000\000\000\001\249\001\249\001\249\000\000\000\000\000\000\000\000\000\000\000\000\001\249\000\000\000\000\000\000\004m\000\000\000\000\001\230\004m\001\249\001\249\000\000\001\249\000\000\000\000\000\000\000\000\001\249\000\000\004m\000\000\000\000\000\000\004m\000\000\004m\000\000\000\000\000\000\001\249\000\000\001\249\000\000\000\000\001\249\001\249\000\000\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\000\000\001\249\000\000\000\000\000\000\000\000\000\000\000\000\003\226\001\249\004m\000\000\000\000\004m\001\249\000\000\000\000\000\000\000\000\004m\004m\004m\001\249\000\000\000\000\000\000\000\000\000\000\004m\000\000\000\000\000\000\004i\000\000\000\000\001\230\004i\004m\004m\000\000\004m\000\000\000\000\000\000\000\000\005v\000\000\004i\000\000\000\000\000\000\004i\000\000\004i\000\000\000\000\000\000\004m\000\000\004m\000\000\000\000\004m\004m\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004m\000\000\000\000\000\000\000\000\000\000\000\000\003\226\004m\004i\000\000\000\000\004i\004m\000\000\000\000\000\000\000\000\004i\004i\004i\004m\000\000\000\000\000\000\000\000\000\000\004i\000\000\000\000\000\000\011!\000\000\000\000\000\000\011!\004i\004i\000\000\004i\000\000\000\000\000\000\000\000\005v\000\000\011!\000\000\000\000\000\000\011!\000\000\011!\000\000\000\000\000\000\004i\000\000\004i\000\000\000\000\004i\004i\000\000\011!\000\000\000\000\000\000\000\000\000\000\000\000\011!\000\000\004i\000\000\000\000\011!\000\000\000\000\000\000\000\000\004i\011!\000\000\000\000\011!\004i\000\000\000\000\000\000\000\000\011!\011!\000\242\004i\000\000\000\000\000\000\000\000\000\000\011!\000\000\011!\011!\011\029\000\000\000\000\000\000\011\029\011!\000\000\000\000\011!\000\000\000\000\000\000\000\000\011!\000\000\011\029\000\000\000\000\000\000\011\029\000\000\011\029\000\000\000\000\000\000\011!\000\000\011!\011!\000\000\011!\011!\000\000\011\029\000\000\000\000\000\000\000\000\000\000\000\000\011\029\000\000\011!\000\000\000\000\011\029\000\000\000\000\000\000\000\000\011!\011\029\000\000\000\000\011\029\000\000\000\000\000\000\011!\000\000\011\029\011\029\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\029\000\000\011\029\011\029\001Q\000\000\000\000\000\000\001Q\011\029\000\000\000\000\011\029\000\000\000\000\000\000\000\000\011\029\000\000\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\000\000\011\029\000\000\011\029\011\029\000\000\011\029\011\029\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\011\029\000\000\000\000\001Q\000\000\000\000\000\000\000\000\011\029\001Q\000\000\000\000\001Q\000\000\000\000\000\000\011\029\000\000\001Q\001Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\001M\000\000\000\000\000\000\001M\001Q\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001Q\000\000\001M\000\000\001M\000\000\001M\000\000\001M\000\000\000\000\000\000\001Q\000\000\001Q\001Q\000\000\001Q\001Q\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\001Q\000\000\000\000\001M\000\000\000\000\000\000\000\000\001Q\001M\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\001M\001M\000\242\001Q\000\000\000\000\000\000\000\000\000\000\001M\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\001M\000\000\000\000\001M\000\000\000\000\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\000\000\019A\007\185\001M\000\000\001M\001M\000\000\001M\001M\019A\000\000\000\000\007\185\000\000\007\185\000\000\007\185\000\000\007\185\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001M\000\000\000\000\007\185\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\019A\001M\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\000\000\000\000\007\185\000\000\000\000\000\000\000\000\000\000\007\185\007\185\007\185\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\000\000\002^\000\000\000\000\000\000\000\000\019A\002\r\000\000\000\000\029R\002\r\000\000\003j\000\000\000\000\000\000\000\000\007\185\000\000\007\185\007\185\002\r\007\185\007\185\000\000\002\r\000\000\002\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\r\000\000\000\000\007\185\000\000\000\000\000\000\002\r\000\000\000\000\000\000\000\000\000\000\000\000\029V\000\000\007\185\000\000\002\r\000\000\000\000\002\r\000\000\000\000\000\000\000\000\000\000\002\r\002\r\000\000\029b\000\000\000\000\000\000\000\000\001A\002\r\000\000\002u\001A\000\000\000\000\000\000\000\000\000\000\002\r\000\000\002u\002\r\000\000\001A\000\000\001A\002\r\001A\000\000\001A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\142\002\r\000\000\002\r\001A\000\000\002\r\002\r\000\000\000\000\000\000\001A\000\000\002u\000\000\000\000\000\000\000\000\002\r\000\000\002u\000\000\000\000\000\000\000\000\001A\002\r\000\000\000\000\000\000\000\000\001A\001A\001A\001\202\001\226\001\230\000\000\000\000\002\r\001A\000\000\000\000\000\000\004a\000\000\000\000\000\000\004a\001A\000\000\000\000\000\000\000\000\000\000\001\234\002&\002u\000\000\004a\000\000\000\000\000\000\004a\000\000\004a\000\000\001\206\000\000\001A\000\000\001A\001A\000\000\001A\001A\000\000\004a\000\000\029j\004n\001\210\003\226\000\000\004a\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\001A\004a\003\210\000\000\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\001A\000\000\000\000\000\000\000\000\000\000\004a\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\004a\000\000\t\253\004a\000\000\000\000\t\253\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\253\000\000\000\000\004a\t\253\004a\t\253\000\000\004a\004a\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\t\253\000\000\004a\000\000\000\000\000\000\000\000\t\253\000\000\029\242\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\t\253\000\000\000\000\t\253\000\000\004a\000\000\000\000\000\000\t\253\t\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\253\000\000\000\000\000\000\004a\000\000\000\000\000\000\004a\t\253\000\000\000\000\t\253\000\000\000\000\000\000\000\000\t\253\000\000\004a\000\000\000\000\000\000\004a\000\000\004a\000\000\000\000\000\000\t\253\000\000\t\253\t\253\000\000\t\253\t\253\000\000\004a\000\000\029j\000\000\004a\000\000\000\000\004a\000\000\t\253\000\000\000\000\000\000\000\000\t\253\004a\003V\t\253\004a\004a\000\000\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\t\253\000\000\000\000\004a\000\000\029j\004a\000\000\000\000\000\000\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\004a\000\000\000\000\004a\000\000\004a\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\000\000\000\000\004a\000\000\004a&*\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\000\000\004a\000\000\000\000\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\029\242\004a\001\226\001\230\000\000\000\000\004a\000\000\000\000\004a\000\000\004a&b\000\000\004a\004a\000\000\000\000\000\000\001\202\001\226\003f\001\234\002&\003j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\242\004a\000\000\000\000\000\000\000\000\004a\001\234\002&\001\254\003n\000\000\000\000\000\000\003~\000\000'\142\002\n\000\000\001\206\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\000\000\003r\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000(\018\000\000(N\000\000\003\214\003\230\b\130\003\154\000\000\007\133\003j\000\000\000\000\000\000\000\000\bf\000\000\000\000\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\001\234\000\000\000\000'\166\000\000\000\000\000\000\b\190\n\142\000\000\000\000\b\025\000\000\000\000\000\000\b\025\000\000\000\000\000\000\000\000\000\000(Z\b\210\000\000\000\000\016\146\b\025\001\190\000\000\000\000\b\025\000\000\b\025\003\138\000\000\000\000\n\026\n\030\000\000(&\000\000\n\"\000\000\n*\b\025\000\000\000\000\000\000\nZ\000\000\000\000\b\025\000\000\000\000\000\000\000\000\000\000\000\000\014\198\n^\nr\nv\b\025\nz\n\130\b\025\000\000\000\000\000\000\000\000\000\000\b\025\b\025\000\242\n\138\n\142\000\000\000\000\000\000\b\029\b\025\000\000\000\000\b\029\000\000\000\000\000\000\000\000\000\000\b\025\b\025\000\000\b\025\000\000\b\029\000\000\000\000\b\025\b\029\000\000\b\029\000\000\n\146\000\000\000\000\000\000\000\000\000\000\007\166\b\025\000\000\b\025\b\029\000\000\b\025\b\025\000\000\000\000\000\000\b\029\000\000\000\000\000\000\000\000\000\000\000\000\014\198\000\000\000\000\000\000\b\029\000\000\000\000\b\029\b\025\000\000\000\000\000\000\000\000\b\029\b\029\000\242\000\000\000\000\000\000\000\000\000\000\b\025\b\029\000\000\000\000\000\000\004a\000\000\000\000\000\000\004a\b\029\b\029\000\000\b\029\000\000\000\000\000\000\000\000\b\029\000\000\004a\000\000\000\000\000\000\004a\000\000\004a\000\000\000\000\000\000\b\029\000\000\b\029\000\000\000\000\b\029\b\029\000\000\004a\000\000\029j\000\000\000\000\000\000\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\029\004a\000\000\000\000\004a\t\r\000\000\000\000\000\000\t\r\004a\004a\004a\b\029\000\000\000\000\000\000\000\000\000\000\004a\t\r\000\000\000\000\000\000\t\r\000\000\t\r\000\000\004a\000\000\000\000\004a\000\000\000\000\000\000\000\000\004a\000\000\t\r\000\000\000\000\000\000\000\000\000\000\000\000\t\r\000\000\000\000\004a\000\000\004a \162\000\000\004a\004a\000\000\t\r\000\000\000\000\t\r\000\000\000\000\000\000\000\000\000\000\t\r\t\r\000\242\000\000\000\000\000\000\000\000\029\242\004a\t\r\000\000\000\000\000\000\018\221\000\000\000\000\003\154\018\221\t\r-\234\000\000\t\r\000\000\000\000-\238\000\000\t\r\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\t\r\000\000\t\r(f\000\000\t\r\t\r\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\t\r\000\000\000\000\000\000\000\000\001\006\000\000\001\190\t\r\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\018\193\000\000\t\r\003\154\018\193\000\000.\n\000\000\018\221-\242\000\000.\014\000\000\000\000\000\000\018\193\000\000\018\221\000\000\000\000\018\221\018\193\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000-\246\018\221\000\000\018\221\018\193\000\000\018\221\000\000\000\000\000\000\000\000\001\006\000\000\001\190\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\193.\018\000\000\000\000\001\226\001\230\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\001\202\001\226\003f\018\193\000\000\003j\000\000\000\000\000\000\000\000\001\234\002&\000\000\000\000.\022\018\193\000\000\018\193\000\000\000\000\018\193\001\234\002&\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\003~\000\000\003\226\019\029\000\000\018\193\003z\019\029\003\138\003\186\003\198\003r\001\210\002Z\000\000\000\000\003\210\003z\019\029\003\138\003\186\003\198\019\029\000\000\019\029\000\000\000\000(\018\000\000(\022\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\003\214\003\230\000\000\000\000\000\000\019\029\029\210\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\000\000\019\029\000\000\000\000\019\029\000\000\000\000\000\000\n\142\000\000\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000(\"\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\019\029\000\000\r\238\000\000\000\000\019\029\n-\000\000(&\000\000\n-\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\019\029\003b\n-\019\029\019\029\000\000\n-\000\000\n-\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\n-\000\000\000\000\019\029\000\000\000\000\000\000\n-\000\000\014j\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\n-\000\000\000\000\n-\002\017\000\000\000\000\000\000\002\017\n-\n-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n-\002\017\000\000\000\000\000\000\002\017\000\000\002\017\000\000\n-\000\000\000\000\n-\000\000\000\000\000\000\000\000\n-\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\n-\000\000\n-\000\000\000\000\n-\n-\000\000\002\017\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\002\017\002\017\000\000\000\000\000\000\000\000\000\000\000\000\n-\002\017\000\000\000\000\000\000\t\017\000\000\000\000\000\000\t\017\002\017\000\000\000\000\002\017\000\000\000\000\000\000\000\000\002\017\000\000\t\017\000\000\000\000\000\000\t\017\000\000\t\017\000\000\000\000\000\000\002\017\000\000\002\017\000\000\000\000\002\017\002\017\000\000\t\017\000\000\000\000\000\000\000\000\000\000\000\000\t\017\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\t\017\000\000\000\000\t\017(2\000\000\000\000\000\000\000\000\t\017\t\017\000\242\002\017\000\000\000\000\000\000\000\000\000\000\t\017\000\000\000\000\000\000\007\017\000\000\000\000\000\000\007\017\t\017\000\000\000\000\t\017\000\000\000\000\000\000\000\000\t\017\000\000\007\017\000\000\000\000\000\000\007\017\000\000\007\017\000\000\000\000\000\000\t\017\000\000\t\017\000\000\000\000\t\017\t\017\000\000\007\017\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\t\017\000\000\000\000\000\000\000\000\014\198\000\000\000\000\t\017\007\017\000\000\000\000\007\017\000\000\000\000\000\000\000\000\000\000\007\017\tN\000\242\t\017\002V\000\000\000\000\000\000\004\221\007\017\000\000\000\000\004\221\000\000\000\000\000\000\000\000\000\000\007\017\000\000\000\000\007\017\000\000\004\221\000\000\000\000\007\017\004\221\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\007\017\004\221\000\000\007\017\007\017\000\000\000\000\000\000\004\221\002\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\000\000\004\221\007\017\000\000\000\000\000\000\000\000\004\221\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\004\221\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\245\004\221\000\000\000\000\004\221\000\000\000\000\001\234\002&\004\221\000\000\000\245\000\000\000\000\000\000\000\245\000\000\000\245\000\000\000\000\000\000\004\221\000\000\004\221\000\000\000\000\004\221\004\221\000\000\000\245\000\000\000\000\003~\000\000'\142\000\000\000\245\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\004\221\000\245\003\210\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\245\000\245\000\242\000\000\002\250\000\000\000\000\000\000\000\249\000\245\000\000\000\000\000\249\000\000\003\214\003\230\000\000\000\000\000\245\007\137\000\000\000\245\000\000\000\249\000\000\000\000\000\245\000\249\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245'\166\000\245\000\249\000\000\000\245\000\245\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\249\019\029\000\000\000\249\000\245\019\029\000\000\000\000\000\000\000\249\000\249\000\242\001\226\001\230\000\000\000\000\019\029\000\245\000\249\000\000\019\029\000\000\019\029\000\000\000\000\000\000\000\000\000\249\000\000\000\000\000\249\000\000\001\234\002&\019\029\000\249\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\249\000\000\000\249\000\000\000\000\000\249\000\249\000\000\019\029\000\000\003~\000\000\005j\000\000\019\029\019\029\003z\000\000\003\138\003\186\003\198\000\000\000\000\019\029\000\000\000\249\003\210\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\249\000\000\001\202\002\018\001\230\000\000\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\019\029\000\000\019\029\003b\003v\019\029\019\029\000\000\000\000\001\234\0022\001\254\000\000\000\000\000\000\000\000\000\000\019\029\000\000\002\n\000\000\001\206(\154\000\000\000\000\019\029\000\000\002j\000\000\000\000\t\237\t\237\t\237\000\000\002\014\001\210\002Z\000\000\019\029\000\000\003z\000\000\003\138\003\186\003\198\000\000\001\226\001\230\003\202\000\000\003\210\t\237\t\237\t\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\237\000\000\t\237\000\000\000\000\001\234\001\238\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\t\237\t\237\t\237\000\000\000\000\000\000\t\237\n)\t\237\t\237\t\237\n)\000\000\000\000\000\000\029\246\t\237\003\226\000\000\000\000\000\000\003z\n)\003\138\003\186\003\198\n)\000\000\n)\000\000\000\000\003\210\029Z\029n\000\000\000\000\000\000\000\000\t\237\t\237\n)\000\000\000\000\000\000\000\000\000\000\000\000\n)\000\000\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\000\000\n)\029\190\000\000\n)\000\000\000\000\000\000\000\000\000\000\n)\n)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n)\000\000\000\000\000\000\t\005\003\190\000\000\t\237\t\005\n)\000\000\000\000\n)\000\000\000\000 ~\000\000\n)\000\000\t\005\000\000\000\000\000\000\t\005\000\000\t\005\000\000\000\000\000\000\n)\000\000\n)\031\202\000\000\n)\n)\000\000\t\005\000\000\000\000\000\000\000\000\000\000\000\000\t\005\000\000\000\000\000\000\000\000\000\000\000\000):\000\000\000\000\n)\t\005\000\000\000\000\t\005\001i\000\000\000\000\000\000\001i\t\005\t\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\005\001i\000\000\001i\000\000\001i\000\000\001i\000\000\t\005\000\000\000\000\t\005\000\000\000\000\000\000\000\000\t\005\000\000\001i\000\000\000\000\000\000\000\000\000\000\000\000\001i\000\000\000\000\t\005\000\000\t\005\000\000\000\000\t\005\t\005\000\000\018m\000\000\000\000\001i\018m\000\000\000\000\000\000\000\000\001i\001i\000\242\000\000\000\000\000\000\018m\000\000\t\005\001i\018m\000\000\018m\000\000\000\000\000\000\000\000\000\000\001i\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\000\000\001i\000\000\001i\001i\018m\001i\001i\018m\000\000\000\000\000\000\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\018m\000\000\000\000\001i\000\000\000\000\000\000\000\000\000\000\018m\018\178\000\000\018m\000\000\000\000\n&\001i\018m\001\234\002&\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\018m\001\206\018m\000\000\000\000\018m\018m\002j\000\000\000\000\000\000\000\000\000\000\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\018m\000\000\019\029\000\000\000\000\003\210\019\029\000\000\000\000\000\000\000\000\000\000\000\000\021r\000\000\000\000\000\000\019\029\000\000\000\000\000\000\019\029\000\000\019\029\000\000\000\000\000\000\003\214\003\230\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\238\000\000\000\000\000\000\007\017\000\000\019\029\000\000\007\017\000\000\000\000\000\000\019\029\019\029\000\000\000\000\000\000\000\000\000\000\007\017\007\162\019\029\007\166\007\017\000\000\007\017\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\001\226\001\230\000\000\000\000\000\000\007\017\000\000\014j\000\000\000\000\000\000\019\029\000\000\019\029\003b\000\000\019\029\019\029\000\000\007\017\001\234\002&\000\000\000\000\000\000\007\017\tN\000\242\019\029\000\000\000\000\006\233\000\000(\214\007\017\006\233\019\029\000\000\000\000\000\000\000\000\000\000\000\000\007\017\000\000\003~\006\233\005\142\000\000\019\029\006\233\003z\006\233\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\000\000\007\017\006\233\007\017\000\000\000\000\007\017\007\017\000\000\006\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\233\003\214\003\230\006\233\000\000\000\000\007\017\000\000\000\000\006\233\000\000\000\000\000\000\000\000\007\017\000\000\000\000\006\225\006\233\007\017\000\000\006\225\000\000\000\000\000\000\000\000\000\000\006\233\000\000\000\000\006\233\000\000\006\225\000\000\000\000\006\233\006\225\000\000\006\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\233\000\000\006\233\006\225\000\000\006\233\006\233\000\000\000\000\000\000\006\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\225\000\000\000\000\006\225\006\233\000\000\000\000\000\000\000\000\006\225\006\209\000\000\000\000\000\000\006\209\000\000\000\000\031\242\006\225\000\000\000\000\000\000\000\000\000\000\000\000\006\209\000\000\006\225\000\000\006\209\006\225\006\209\000\000\000\000\000\000\006\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\209\000\000\000\000\000\000\006\225\000\000\006\225\006\209\000\000\006\225\006\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\209\000\000\000\000\006\209\000\000\000\000\000\000\000\000\000\000\006\209\007\001\006\225\000\000\000\000\007\001\000\000\000\000\000\000\006\209\000\000\000\000\000\000\000\000\000\000\"*\007\001\000\000\006\209\000\000\007\001\006\209\007\001\000\000\000\000\000\000\006\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\001\000\000\000\000\000\000\006\209\000\000\006\209\007\001\000\000\006\209\006\209\000\000\000\000\000\000\000\000\r\238\000\000\000\000\007\001\b%\000\000\007\001\000\000\b%\000\000\000\000\000\000\007\001\000\000\006\209\000\000\000\000\000\000\000\000\b%\000\000\007\001\000\000\b%\000\000\b%\000\000%*\000\000\000\000\007\001\000\000\000\000\007\001\000\000\000\000\000\000\b%\007\001\001\202\002\018\001\230\000\000\000\000\b%\000\000\014j\000\000\000\000\000\000\007\001\000\000\007\001\000\000\000\000\007\001\007\001\000\000\b%\000\000\001\234,\162\001\254\000\000\b%\b%\000\242\000\000\000\000\000\000\002\n\000\000\001\206\b%\000\000\007\001\000\000\000\000\002j\000\000\000\000\000\000\b%\000\000\000\000\002\014\001\210\002Z%\154\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\001\202\002\018\001\230\000\000\003\210\b%\000\000\b%\000\000\000\000\b%\b%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\003\130\001\254\000\000\000\000\003\214\003\230\000\000\000\000\b%\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\000\000\t\233\t\233\t\233\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\t\233\t\233\t\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\233\000\000\t\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\t\233\t\233\t\233\019\241\019\241\019\241\t\233\000\000\t\233\t\233\t\233\000\000\000\000\000\000\000\000\000\000\t\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\241\019\241\019\241\014\002\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\019\241\000\000\t\233\t\233\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\021\186\019\241\019\241\019\241\000\000\000\000\000\000\019\241\000\000\019\241\019\241\019\241\000\000\000\000\000\000\000\000\000\000\019\241\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\241\019\241\000\000\007\206\002\014\001\210\002Z\001\202\002\018\001\230\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\029\250\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\003\214\003\230\000\000\000\000\002j\000\000\000\000\001\202\001\226\001\230#\n\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\002\014\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\001\202\001\226\001\230#j\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\004\170\001\230\001\234\001\238\001\254\000\000\000\000\000\000\003\214\003\230\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\001\234\004\182\001\254\000\000\000\000\000\000\000\000\002\014\001\210\002Z\002\n\000\000\001\206\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\012\017\000\000\003\210\000\000\002.\001\210\002Z\001\202\006\014\001\230\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\012\017\012\017\003\210\012\017\012\017\000\000\003\214\003\230\000\000\000\000\001\234\006\026\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\003\214\003\230\012\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005y\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\012\017\000\000\000\000\000\000\000\000\003\210\005y\005y\000\000\005y\005y\000\000\000\000\000\000\000\000\000\000\000\000\012\017\000\000\000\000\000\000\000\000\000\000\000\000\n\185\000\000\000\000\003\214\003\230\000\000\000\000\000\000\005y\000\000\000\000\000\000\000\000\000\000\000\000\012\017\000\000\012\017\n\185\n\185\000\000\n\185\n\185\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\0112\012\017\000\000\000\000\012\017\012\017\000\000\000\000\000\000\012\017\000\000\012\017\000\000\n\185\005y\012\017\000\000\012\017\000\000\000\000\000\000\005\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\185\000\000\000\000\005y\000\000\005y\005\137\005\137\000\000\005\137\005\137\000\000\000\000\000\000\000\000\000\000\000\000\n\185\000\000\005y\005y\000\000\000\000\011n\005y\000\000\000\000\000\000\005y\000\000\005y\000\000\005\137\000\000\005y\000\000\005y\000\000\000\000\n\185\000\000\n\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\n\185\n\185\n\201\000\000\011n\n\185\000\000\000\000\000\000\n\185\000\000\n\185\000\000\000\000\005\137\n\185\000\000\n\185\000\000\000\000\n\201\n\201\000\000\n\201\n\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\137\000\000\005\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\201\000\000\000\000\000\000\000\000\000\000\005\137\005\137\005\153\000\000\011n\005\137\000\000\001\226\001\230\005\137\000\000\005\137\000\000\000\000\000\242\005\137\000\000\005\137\000\000\000\000\005\153\005\153\000\000\005\153\005\153\000\000\000\000\001\234\002&\000\000\000\000\n\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\006\202\n\201\003\226\n\201\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\242\000\000\003\210\011\162\n\201\000\000\000\000\011n\n\201\000\000\000\000\000\000\n\201\000\000\n\201\000\000\000\000\005\153\n\201\000\000\n\201\001\202\030\018\001\230\003\214\003\230\000\000\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\153\000\000\005\153\001\234\030\030\001\254\005\185\005\185\000\000\005\185\005\185\000\000\000\000\002\n\000\000\001\206\005\153\005\153\000\000\000\000\011n\005\153\000\000\000\000\005\169\005\153\000\000\005\153\002.\001\210\002Z\005\153\005\185\005\153\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\005\169\005\169\003\210\005\169\005\169\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\003\230\005\169\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\005\185\000\000\005\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\005\185\005\185\000\000\000\000\011n\005\185\000\000\000\000\000\000\005\185\000\000\005\185\000\000\000\000\000\000\005\185\000\000\005\185\000\000\000\000\005\169\000\000\005\169\000\000\000\000\000\000\000\000\001\202,\130\001\230\000\000\000\000\000\000\000\000\000\000\000\000\005\169\005\169\000\000\000\000\011n\005\169\000\000\000\000\000\000\005\169\000\000\005\169\001\234,\142\001\254\005\169\000\000\005\169\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\250\000\000\000\000\000\000\t*\000\000\000\000\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\tV\003\138\003\186\003\198\007%\000\000\tZ\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tf\000\000\000\000\000\000\006\217\000\000\000\000\031\182\006\217\000\000\000\000\000\000\000\000\003\214\003\230\000\000\000\000\000\000%V\006\217\007\t \026\000\000\006\217\007\t\006\217\000\000 2\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\t :\006\217\000\000\007\t\000\000\007\t\000\000\000\000\006\217 J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\t\000\000\000\000\000\000\000\000\006\217\000\000\007\t\000\000\000\000\000\000\006\217 R\000\000 \146\000\000\000\000\007%\007%\000\000\006\217\007\t\000\000\000\000\000\000\000\000\000\250\007\t\000\000\006\217\t*\000\000\000\000\000\000\000\000\000\000\007\t \218\000\000\000\000\000\000.R\000\000\000\000\000\000\007\t\000\000\tZ\000\000\006\217\000\000\006\217\000\000\000\000\006\217\006\217\000\000\000\000\000\000\tf\000\000\000\000\000\000\000\000\000\000\007\t\031\182\007\t\000\000\000\000\007\t\007\t\000\000\000\000\006\217\000\000\000\000%V\000\000\000\000 \026\000\000\000\000\000\000\000\000\000\000 2)\238\000\000\000\000\007\t\000\000\000\000\001\226\001\230 :\000\000\000\000\000\000\000\000\000\000\000\000\000\000*j J\000\000\000\000-\226\000\000\000\000\000\000\000\000.\002\001\234\002&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 R\000\000 \146\000\000\000\000\007M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000+>\000\000\003\226\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198 \218\000\000\000\000\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\003\230")) and lhs = - (16, "\000\014\000\r\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\012\001\012\001\011\001\011\001\011\001\011\001\n\001\t\001\t\001\b\001\007\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\005\001\005\001\004\001\003\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\001\000\000\255\000\255\000\254\000\253\000\253\000\253\000\252\000\252\000\251\000\251\000\251\000\251\000\251\000\251\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\249\000\249\000\249\000\249\000\249\000\248\000\248\000\248\000\248\000\247\000\246\000\245\000\245\000\245\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\243\000\243\000\243\000\243\000\243\000\243\000\242\000\242\000\241\000\241\000\241\000\241\000\240\000\240\000\240\000\239\000\239\000\239\000\239\000\238\000\237\000\237\000\237\000\237\000\237\000\236\000\236\000\235\000\235\000\234\000\234\000\234\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\232\000\232\000\231\000\231\000\230\000\230\000\229\000\228\000\227\000\226\000\225\000\225\000\224\000\224\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\222\000\222\000\222\000\221\000\220\000\220\000\220\000\220\000\219\000\219\000\218\000\218\000\217\000\216\000\216\000\216\000\216\000\216\000\216\000\215\000\214\000\213\000\213\000\212\000\212\000\211\000\211\000\210\000\209\000\209\000\208\000\208\000\207\000\206\000\206\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\204\000\203\000\202\000\201\000\200\000\199\000\199\000\199\000\198\000\198\000\198\000\198\000\198\000\198\000\197\000\196\000\196\000\196\000\196\000\196\000\196\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\192\000\192\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\190\000\190\000\189\000\189\000\189\000\188\000\188\000\188\000\188\000\188\000\188\000\188\000\187\000\187\000\187\000\186\000\186\000\186\000\186\000\185\000\185\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\174\000\173\000\173\000\173\000\173\000\172\000\172\000\171\000\171\000\170\000\170\000\169\000\169\000\169\000\169\000\169\000\168\000\168\000\168\000\168\000\167\000\167\000\167\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\162\000\162\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\153\000\153\000\153\000\152\000\152\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\150\000\150\000\149\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\147\000\146\000\145\000\144\000\144\000\143\000\143\000\143\000\142\000\142\000\142\000\142\000\142\000\141\000\140\000\140\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\135\000\135\000\135\000\135\000\135\000\135\000\134\000\134\000\133\000\133\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\131\000\131\000\130\000\130\000\129\000\129\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\127\000\127\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000y\000y\000x\000x\000x\000w\000w\000v\000v\000u\000u\000t\000t\000s\000s\000r\000r\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000p\000p\000p\000o\000n\000m\000l\000k\000j\000i\000h\000g\000f\000e\000d\000d\000d\000d\000d\000d\000d\000c\000c\000c\000c\000c\000b\000b\000b\000b\000b\000b\000a\000a\000`\000`\000`\000`\000`\000_\000_\000^\000^\000]\000\\\000[\000[\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000X\000X\000W\000W\000V\000V\000V\000U\000U\000U\000U\000U\000U\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000O\000O\000N\000N\000M\000M\000L\000L\000K\000K\000J\000J\000J\000J\000I\000I\000I\000H\000H\000G\000G\000F\000F\000E\000E\000D\000D\000C\000C\000B\000B\000A\000A\000A\000A\000@\000@\000@\000@\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000>\000>\000=\000=\000=\000=\000=\000=\000<\000<\000<\000;\000;\000;\000:\000:\000:\0009\0009\0008\0007\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0005\0005\0005\0005\0005\0005\0004\0004\0004\0004\0004\0003\0003\0003\0003\0003\0003\0003\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0001\0001\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000.\000.\000-\000-\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000+\000+\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000)\000)\000(\000(\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000&\000&\000&\000&\000%\000%\000$\000$\000$\000#\000#\000\"\000!\000!\000 \000 \000 \000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\027\000\027\000\026\000\026\000\025\000\024\000\024\000\023\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\020\000\019\000\019\000\018\000\018\000\018\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\016\000\015\000\015") + (16, "\000\014\000\r\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\012\001\012\001\011\001\011\001\011\001\011\001\n\001\t\001\t\001\b\001\007\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\005\001\005\001\004\001\003\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\001\000\000\255\000\255\000\254\000\253\000\253\000\253\000\252\000\252\000\251\000\251\000\251\000\251\000\251\000\251\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\249\000\249\000\249\000\249\000\249\000\248\000\248\000\248\000\248\000\247\000\246\000\245\000\245\000\245\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\243\000\243\000\243\000\243\000\243\000\243\000\242\000\242\000\241\000\241\000\241\000\241\000\240\000\240\000\240\000\239\000\239\000\239\000\239\000\238\000\237\000\237\000\237\000\237\000\237\000\236\000\236\000\235\000\235\000\234\000\234\000\234\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\232\000\232\000\231\000\231\000\230\000\230\000\229\000\228\000\227\000\226\000\225\000\225\000\224\000\224\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\222\000\222\000\222\000\221\000\220\000\220\000\220\000\220\000\219\000\219\000\218\000\218\000\217\000\216\000\216\000\216\000\216\000\216\000\216\000\215\000\214\000\213\000\213\000\212\000\212\000\211\000\211\000\210\000\209\000\209\000\208\000\208\000\207\000\206\000\206\000\205\000\204\000\203\000\203\000\203\000\203\000\203\000\203\000\203\000\202\000\201\000\200\000\199\000\199\000\199\000\198\000\198\000\198\000\198\000\198\000\198\000\197\000\196\000\196\000\196\000\196\000\196\000\196\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\192\000\192\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\190\000\190\000\189\000\189\000\189\000\188\000\188\000\188\000\188\000\188\000\188\000\188\000\187\000\187\000\187\000\186\000\186\000\186\000\186\000\185\000\185\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\174\000\173\000\173\000\173\000\173\000\172\000\172\000\171\000\171\000\170\000\170\000\169\000\169\000\169\000\169\000\169\000\168\000\168\000\168\000\168\000\167\000\167\000\167\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\165\000\165\000\165\000\165\000\165\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\162\000\162\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\153\000\153\000\153\000\152\000\152\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\150\000\150\000\149\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\147\000\146\000\145\000\144\000\144\000\143\000\143\000\143\000\142\000\142\000\142\000\142\000\142\000\141\000\140\000\140\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\135\000\135\000\135\000\135\000\135\000\135\000\134\000\134\000\133\000\133\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\131\000\131\000\130\000\130\000\129\000\129\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\127\000\127\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000y\000y\000x\000x\000x\000w\000w\000v\000v\000u\000u\000t\000t\000s\000s\000r\000r\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000p\000p\000p\000o\000n\000m\000l\000k\000j\000i\000h\000g\000f\000e\000d\000d\000d\000d\000d\000d\000d\000c\000c\000c\000c\000c\000b\000b\000b\000b\000b\000b\000a\000a\000`\000`\000`\000`\000`\000_\000_\000^\000^\000]\000\\\000[\000[\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000X\000X\000W\000W\000V\000V\000V\000U\000U\000U\000U\000U\000U\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000O\000O\000N\000N\000M\000M\000L\000L\000K\000K\000J\000J\000J\000J\000I\000I\000I\000H\000H\000G\000G\000F\000F\000E\000E\000D\000D\000C\000C\000B\000B\000A\000A\000A\000A\000@\000@\000@\000@\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000?\000>\000>\000=\000=\000=\000=\000=\000=\000<\000<\000<\000;\000;\000;\000:\000:\000:\0009\0009\0008\0007\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0005\0005\0005\0005\0005\0005\0004\0004\0004\0004\0004\0003\0003\0003\0003\0003\0003\0003\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0001\0001\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000.\000.\000-\000-\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000+\000+\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000)\000)\000(\000(\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000&\000&\000&\000&\000%\000%\000$\000$\000$\000#\000#\000\"\000!\000!\000 \000 \000 \000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\027\000\027\000\026\000\026\000\025\000\024\000\024\000\023\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\020\000\019\000\019\000\018\000\018\000\018\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\016\000\015\000\015") and goto = - ((16, "\003\242\001\203\000Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\206\000\000\000\000\000\187\001x\000)\001\181\000\165\000l\000\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bv\001Z\002\024\002\028\000\000\000\000\000\000\000\000\000\000\000\000\002\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\192\000\000\000A\000\000\001,\031\156\002\220\000\000\002\192\003 \000\000\000\200\000\000\001l\000\000\000\000\000\000\000\000 \214\000\000\005\194\000\000\000\000!`\000\000\000\000\r\n\016`\003\030\000\136\001\\\000\000\001p\017,\003*\002f\000\002\000\000\000\000\000\000\007\226\000\000\000\000\000\180\000\000\000\000\000\000\000\000\000\000\002~\000\000\006\146\000\000\002\178\000\000\004j\002\212\000\000\006\248\000\000\000\000\000\000\000\000\006\168\000\000\000\000\000\000\004\006\000\000\004x\005\190\000\000\001\186\000\209\0070\000\000\006r\011\n\000\000\000\000\r\136\002\192\000\000,\230\002\192\005H\000\000\003\200\004J!\188\000\000\000\000\0052\006\\\"&\000\000\000\000\006\188\"\128\006\174\000\000\000j\006\202\000\000\004\132\015\220\1778\000\000\177V\000\000\002D\000\000\000\000\002*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\154\"\230\005\248\024\136\006\172\007\206\007\252\000\000\000\000\000\000\029J\007>\000\000\000\000/\\\017<\000\000\000\000\001\004\002\198\000\000\000\000\000\000\000\000\003\154\000\000\000\000\000\000\000\000#\n\000\000\b*\000\000\007\182\000\000\t\028\000\000Y\182\017\132\000\000\b \000\000\000\000\b\\\000\000\t\144\000\000\000\000$\030\000\000\000\000\000\000\000\000\000\000\001\201\b\020\156\186\b\172\000\000\000\000f\208\b\220\157\004\b\250\000\000\000\000\131\218\t<\000\000\157\\\t\146\000\000\000\000\139\184\t\182\000\000\001\13244\000\000\177n\001\132\007\018\000\000\000\000\000\000\000\000\177\146\000\000\177\176\001\132\001\132\001\132\000\000\000\000\157n\n\018\000\000\000\000\140\166\n\022\000\000\000\000\000\000\000\000\n\224\000\000\000\000\000\000\t\150\000\000\000\000\011\172\000\000\t\248\000\000\000\000\001\201\000\000$0\000\000\012L\000\000\011\184\000\000\012\172\000\000\001\201\011|\000\000\001\201\000\000$l\001\201\011\166\158\160\011\184\000\000\000\000\158\220\011\206\000\000\000\000\158\178\012v\000\000\000\000\166\226\012\148\000\000\012\170\158\196\r\\\000\000\000\000\167\b\r~\000\000\000\000\159\018\r\146\000\000\000\000\167D\r\160\000\000\167\182\018`\000\000%H\001\201\r\174\159\234\r\200\000\000\000\000\167\242\r\208\000\000\000\000\159\252\r\234\000\000\000\000\168(\r\252\000\000\014&\160`\014T\000\000\000\000\168V\014\146\000\000\000\000\161\012\014\212\000\000\000\000\168\166\014\234\000\000\169\000\014\236\000\000\000\000\169T\014\244\000\000\000\000\001\201\000\000\001\132Uj\000\000\000\000\001\132r8\000\000\000\000\r\230\015x\000\000\000\000\000\000\000\000\000\000\016$\000\000\006v\016.\000\000%~\006xm\148\000\000\000\000\000\000\000\000\001\201\000\000\000\000\000\000\014\192\000\000\000\000\000\000\000\000\000\000\000\000\005p\016<\000\000\000\000\000\000\001\201\026\206\001\201&\"\001\201\000\000\000\000D$\000\000\000\000\017D\000\000\000\000\000\000\000\000\028XEH\015\230\007\002\015\230~\n\000\000\000\000\000\000\000\000&\140\001\201\000\000~\192\000\000\000\000\000\000&\158\001\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000n\230\000\000\016:\007Z\016\242\000\000\000\000\000\000\000\000\005j\000\000\000\000\007\156\000\203\000\000\007\162\b\188\016j\007\178\b\226\t\018\002\020\000\157\006r\017\156\002\140\005\002\0000\n\176\000\000\000\000\000\000\016r\016x\007\184\000Q\000'\b\014b,'\142\016\128\bx\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\134\b\190'\216\021\240EHn:(\022\000\000\127\024\000\021\000\000\000\000\000\000(\146\001\201\000\000\127>\000\000\000\000\000\000(\218\001\201\000\000\000\000odo\224p\006\000\000\001\254\000\000\000\000\000\000\017x)D\001\201\017\140\127b\016\184\b\208}\160\000\000\003\254\000\000\000\000\000\000\003\154\000\000\000\000\128\004\148\240\006\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128P\000\000\000\000\000\000)\232\001\201\000\000\000\000\169\162\000\000\000\000\000\000\004\254\000\000\000\000\000\000\000\000\000\000\000\000\018&\128\158\000\000\016\210\b\238\129D\000\000\000\000\000\000\003,\000\000\129\144\003,\000\000\129\222\000\000\000\000\000\000*\138\001\201\000\000\000\000\169\232\000\000\000\000\000\000\000\000\000\000\003,\130*\003,\130\204n\230\017\156\017\162\000\000\000\000\170>\000\000\000\000\000\000\000\000\003,\000\000\131\"\000\000\000\000\000\000*\246\001\201\000\000\000\000\170\132\000\000\000\000\003,+\b\001\201\000\000\131n\003,\006<\000\000\003,\000\000\000\000\003,\000\000p\006\000\000\000\000\000\000\003,p\160\000\000\000\000\000\000\003,\000\000\000\000\003,\000\000\003,\000\000\003\030\018(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\170\202\000\000\000\000\000\000\017X\131\248\003,\000\000\000\000\000\000\132\016\000\000\000\000\000\000+D\001\201\000\000\000\000\170\222\000\000\000\000\017X\000\000\132\242\000\000\000\000\000\000,.\001\201\000\000\000\000\171:\000\000\000\000\017X\171\128\000\000\133\006\000\000\000\000\000\000,\168\001\201\000\000\000\000\171\196\000\000\000\000\017X\019\226\000\000\000\011\017Z\022\020\000\000-J\001\201\018`\000\000\000\000\000\138\000\000\000\000\017\234\000\000\000\000\000\000\000\000\000\000\000\000\000\"\017\248\018\158-\166\017\188\017\202\017\228\t\012\001\024\t \000\000\018\156\000\000\000\000\005\128\b\214\000\000\tP\t8\000\170\018$\000\000\000\000\n\242\000\000\004\222\002f\np\005*\020(\000\000\000\000o\166\000\000p\186\019\186\000\000-b\001\201.\004\001\201\000\000\000c\000\\\000\000\011\176\004\222\000\000\000\000\018\184\000\000\000\000\000\000\000\000\000\000\012f\004\222\012\230\004\222\000\000\002Z\000\000\000\000\003\026\000\000\000\000\000\000\020r\000\000\000\000\000\000\004\222\004\222\000\000\004\222\000\000\000\000\001\230\000\000\000{\000'\000\000\000{\000\000\rB\004\222\000\000\000\000\000\000\000\000\000\000\000{.\154p\252q\212\020\028\019\178\132d8\146\000\000\133\144\018\222\t\172I\134w\244\133\230\130\168\018\224\n(/\"\018\228\n8/\184\018\246\n\\\t\006q\248\003,/\194\018\250\n\222\1340\020\n\000\000\n\0000D0\230\004\180\022`\000\0001\128\001\002\000\000\003z\000\000\000\000\000\000\000\000\000\000\000\000\006@\023D\000\0001\152\006|\000\000\006\212\000\000\000\000r\186\019\230\000\000\000\000\019\236\000\000\000\000\000\000\000\000\023\218\000\012\000\000\000\000\r\170\000\000\000\000\000\000\r\204\000\000\000\000\000\000\000\000\000\000\001\n\000\000\000\000\004\180\024R\000\0001\252\001\002\000\0002\188\004\180\024\154\000\0002\214\001\002\003z\000\000\000\000\000\000\000\000\000\000\000\000\172\016\025J\004\180\025\168\000\0003\030\001\002\000\000r\206\004\180\000\000\025\244\000\0003\192\001\002\000\000\003z\000\000\000\000\000\000\000\000\000\000\000\000\b\012\000\000\000\000\019\228\177\208\001\132\000\000+z\019\012\n\2264\020\000\000\134&\000\000\000\000\020\148\000\000\000\000\000\000\134\134\135\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\018\026h\000\000\000\000\000\000\019\016\n\234\002\b\000{\rz\004\222\000\000\000\000\000\000\000\021\000\0004\206\001\2015*\019\018\011(\134\204\003,5t5\246\019\022\011,\149r\000\000\000\000\000\000\1590\000\000\000\000s6\019\024\01185\236\000\000s\180\135T\019 \011V7\026\000\000\000\000\027^\000\000\000\000\020\168\000\000\000\000\000\000\000\000\000\000\178\024\000\000\000\000\000\000\006*6\152\000\000\000\000\000\000\135\234\000\000\000\000\020\172\000\000\000\000\000\000\178X\000\000\000\000\000\000\000\000\000\000\019:\011p72\000\000tZ\000\000\179|\000\000\018\2487\186\000\000\000\000\003\016\135\244\019@\011\1488v\000\000\003\016\1360\019D\011\1568\238\000\000\003\016\000\000\179\144\000\000\136v\019F\011\1589\136\000\000\003\01690\005z:\b\000\000\000\000\137*\019J\011\164:^\000\000\003\016\137p\019P\011\184:\206\000\000\003\016\137\182\019R\011\230;\020\000\000\003\016\137\252\019T\012\000<\020\000\000\003\016\138j\019X\0124x\000\000\003\016\140n\019\134\012\232>\198\000\000\003\016\141\004\019\138\012\234?l\000\000\003\016\141\014\019\140\012\242?\186\000\000\003\016\141d\019\146\012\252@\006\000\000\003\016\1420\019\148\r\002@\178\000\000\003\016\142\134\019\160\r\014@\254\000\000\003\016\143\b\019\174\r\024AL\000\000\003\016\143D\019\180\r,A\196\000\000\003\016\143t\019\182\r4B\018\000\000\003\016\143\252\019\186\r\162B\190\000\000\003\016\144f\019\190\r\168C\n\000\000\003\016\144\202\000\000\000\000\021L\000\000\000\000\000\000\179\158\000\000\019\210\r\174CX\000\000\003\016\145`\019\212\r\198C\208\000\000\003\016\r\220\005\178t\166\019\148\000\000&@C\248\000\000\000\000\001\024\000\000\000\000:N\000\000\000\000\000\000\006t\026\206\000:\000\000D\130\007\172D\198\000\000\000\000E\024\000\000\000\000E\148\b@F:\000\000\000\000F\188\000\000\019\152G\018\000\000\000\000G\\\000\000\000\000\000\000G\178\000\000\019\152H&\011lH\138\000\000\000\000I \000\000\000\000I|\000\000\017XI\218\000\000\145\140\000\000\000\000\000\000J8\001\201\000\000\000\000\172b\000\000\000\000\017X\146\006\003,\tF\000\000\tX\007n\027\002\000\000J\144\011xKR\000\000\000\000K\174\000\000\019\156K\236\000\000\000\000LD\000\000\000\000\000\000L\168\000\000\000\000\003N\b\158\000\000\000\000\000\000\003\016M\132\000\000\000\000M\188\000\000\000\000\000\000\000\000t.\000\000\000\000\003\016u(\000\000u\134\000\000\000\000v\004\000\000\000\000\000\000\179\218\000\000\000\000vb\000\000\000\000\146.\019\226\r\228Nx\000\000\003\016v\192\000\000\000\000\146\140\019\228\014\022N\244\000\000\003\016v\252\000\000\000\000\146\182\019\232\014\028Ox\000\000\003\016\006\202O\160\000\000\000\000\146\226\019\234\014\030O\208\000\000\003\016PX\000\000\000\000\147L\019\236\014$P\208\000\000\003\016P\194\000\000\000\000\147\176\019\240\014dQ\226\000\000\003\016\000\000\000\000wZ\000\000\000\000\148\014\019\244\014fQ\240\000\000\003\016x \000\000\000\000\148\140\019\248\014xQ\254\000\000\003\016x~\000\000\000\000\149\014\019\250\014\132S\016\000\000\003\016\000\000\149\174\019\252\014\136S\030\000\000\003\016\000\000O\244\000\000\000\000\003\016\000\000\000\000\000\000x\186\000\000\000\000y\024\000\000\000\000\000\000\019\252\000\000\000\000R\186\000\000S\206\000\000\000\000\000\000\017XS\222\000\000\000\000T\154\000\000!\202\000\000\000\000\135\168\000\000\000\000yP\020\000\014\160T\254\004\170\149\234\020\b\014\172U\190\000\000\003\016\002\220\000\000\001%\150P\150\208\003,\150l\020\n\014\196U\220\000\000\003\016\151\174\003,\151\138\020\014\014\202V^\000\000\003\016\152,\003,\152\134\020\018\014\248V\232\000\000\003\016\003,\152\204\020\020\015DW\158\000\000\003\016\152\248\020\024\015HW\228\020\024\153F\020$\015ZX*\000\000\003\016\003\016\153\152\020*\015bX\170\000\000\003\016\000\000\000\000\000\000\020\018\000\000\000\000\000\000\000\000\000\000\000\000\003\020\020\018\000\000zx\0204\015jY&\006\142\020\018\000\000\000\000\000\000\000\000\003\194\020\018\000\000z\176\000\000\0206\015nYl\006\196\020\018\000\000\000\000\000\000\004\172\020\018\000\000\021\152\000\000\000\000gN\000\000\003\232\000\000\003\226\021(\000\000\004\028\000\000\000\000\000\000\000\000\000\000\007\018\000\000\000\000\000\000\020N\015vY\236\000\000\003\016\000\000\000\000Zd\000\000Z\156\000\000\000\000\000\000\000\000\000\000\153\230\020V\015|[\000\000\000\155\002\020Z\015\130[\246\000\000\003\016\003\016\155>\020\\\015\132\\\014\000\000\003\016\000\000\000\000\000\000\000\000\155\162\000\000\000\000\021\228\000\000\000\000\000\000\179\228\000\000\020`\015\136\\\144\000\000\003\016\020d\015\138]\b\000\000\000\000\003\016\000\000\000\000\000\000\020f\015\158]V\000\000\000\000\000\000\003\016\000\000\000\000\020h\015\176^\002\000\000\003\016\000\000\021\196\000\000\000\000\000\000\000\000\020p\015\178^N\b\130\020\018\000\000\000\000\000\000\005\018\020\018\000\000\020v\015\192^\156\t\242\020\018\000\000\000\000\000\000\000\000\b\b\020\018\000\000\000\000\015\208\006>\000{]\214\000\000\020x\015\210\021\028\004\142\bb\000{\r\176\004\222\b\204\000{\000\000^\250\000\000\005\022\000\000\020|\015\220\t`\000\000\000\000\000\000\000\000\000\000\020\170\001\238\007\n\000\000\000\000\000\000\000\000\028\020\000\000y\226\000\000\021v\021N\021T\000\000\000\000\015\238\000\000\015\248\000\000\000\000\000\000\000\000\t<\000\000\000\000\180\006\001\132\000\000\000\000\180H\180^\002x\000\000\003\180\000\000\000\000\003\248\000\000(r\002\192\020\194\000\000\014\164\000\000\000\000\000\000U4\000\000\180\166\001\132\003\248\000\000\180\190\001\132\003\248\016\b\000\000_\148\000\000\000\000\016\014\021\192\000\000\027\250\011|\000\000\000\000\000\000\000\000\021\140\000\000\000\000\000\000\000\000\020\170\016F`.\000\000\003\016\000\000\020\174\016X`\184\011\214\020\018\000\000\000\000\000\000\000\000\b\166\020\018\000\000\000\000\020\184\016h\n\138\000{\000\000\014d\004\222\000\000\022@\000\000\020~\000\000\000\000\000\000\000\000`\200\000\000\000\000\020\194\016\136an\000\000\000\000\014\204\004\222\000\000\015\016\004\222\000\000\015\146\004\222\000\000\003\016\000\000\016\006\004\222\000\000\017>\004\222\000\000\017\214\004\222\000\000\001R\000\000\016\138\n\172\003\n\000\000\020\196\020\202\016\156\020\250\021\180\018\030\004\222\011\188\000\000\016\160\021z\021\128\b\162\011\220\021F\016\162\021\134\tb\011\242\021L\000\000\000\000\n\212\012\200\000\000\007>\005\206\153\190\003,ax\000\000\b\164\001\180\000\000\000\000\014\170\000\000\000\000\000\000\020\232\016\166\011v\000\000\018\158\000\000a\232\001\201\021\214\000\000\021\180\021\184\000\000\rd\000\000\001\201\020\250\016\168\011*\021\026\001\021\000\000\000\000\000\000\000\000\016\172\r\188\000\000\016\174\r\196\000\000\002>V\250\021\004\021\006\016\182\nP\r\218\000\000\016\184\r\142\014\018\000\000\021\b\021\n\016\192\0214\021\180\018\148\004\222\000\000\016\198\021\176\000\000\014Z\014\220\000\000\021\178\000\000\020\006\005\222\021z\016\218\021\182\000\000\020.\t\024\021~\000\000\000\000\b\\\004\192\015*\000\000\020\200\004\222\015\172\000\000\bj\000\000\021\024\016\224\r\240\021\026\021\026\021\028\016\228\022\198\000\000\0210\000H\000\000\000\000\000\000\b^\000\000\000\000\000\000\001\154\016\244\020\254b\140\001\201\000\000\000\214\016\246\021\222\000\000\000\000\000\000\000\000\000\000\000\000c.\n^\000\000\016\254\022H\000\000\000\000\000\000\000\000\000\000\000\000\018\234\016f\000\000\017\000\003n\000\000\017\026\0170\n6\000\000\004Z\028\198\000\000\007\024\000\000c@\001\201\001\201\000\000\000\000\nj\000\000\011 \000\000\004\134\nj\nj\000\000\0172\029*\001\201c\168\001\201\016l\000\000\000\000\000\000\016v\000\000\000\000\006\028\000\000\n\160\021\148\017l\022\218\021@\000\000\000\000\007\004\011<\021\154\000\000\000\000\017n\022\226\021J\000\000\000\000\023v\000\000\171\250\000\000z\n\015:\001\201\000\000z6\172\170\000\000{~\000\000\003\154\000\000\000\000\000\000\nj\000\000\000\000\016\128\021\162\017\136\022\236\021T\000\000\000\000{\212\016\136\021\172\000\000\000\000\000\000Y\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\158\000\000\021N\017\178\021H\011F\0228\000\000\021\190\017\186\011$\000\000\rD\022\224\022\140\016\196\021\204\000\000\000\000\000\000\021\208\017\198\011\204\000\000\r\182\000\000\011\190\015\220\nB\000\000\000\000\000\000\r\244\021\130\017\204\000\000\021\134\r\244\000\000\022\150\016\202\021\216\000\000\000\000\000\000\001\201\003$\003r\n\142\000\000\000\000\000\000\000\000\021\138\017\218\000\000\011\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\201\021n\017\232\023\024\021~\000\000M \023\218\001\005\017\254\021H\001\007\004v\018\004\022&\000\000\000\000\023\000d\152\000\000\000\000d\238\000\000\017\162\000\000\014\190\000\000\000\000\000\000\000\000\000\000\000\000e(\001\201\000\000\023\004eX\000\000\000\000e\174\000\000\003\002\018\020\022\152\000\000\000\000|@\019\196\007\172\000\000fd\001\201g\"\000\000\000\000g~\000\000\000\000\017\182\000\000\012~\000\000\000\000\000\000\000\000\000\000\000\000\020@\000\000\000\000|\190\020\174\nf\000\000h\b\001\201g\174\000\000\000\000h\242\000\000\000\000\018\028i\"\017\222\000\000\018(\0188\001\026\001\162\018J\014\n\018L\022\158\029\224\0184\000\000\018P\018V\r:\000\000\006\028\029x\000\000\007\152\000\000\018b}.\136\138\t\132\021B\t\190\000\000\031\252O\244\000\000\n6\000\000\000\000\n6\000\000\000\000\n6\015\190\000\000\n\184\n6\022\166\030\194\018r\000\000\n6\000\000|\240\000\000\000\000\n6\000\000\000\000\018\148\000\000\011t\015\018\018\178\000\000\018\130\030\134\018\192\000\000\000\000\000\000\018\218\000\000\000\000\005F\000\000\n6}H\000\000\r\244\n6\165\214\000\000\018\240\021\238\018\136\0238\021\158\000\000\165\254\019\004\021\244\000\000\000\000\000\000^f\017\188\000\000\000\000\000\000\000\000\000\000\000\000\018\248\000\000\019\b\000\000\021\150\018\144\n\246\004\210\000\000\022\006\000\000\000\000\000\000\000\000\019(a\\\000\000\000\000\000\000\018\248\000\000\000\000\000\000\000\000\019.v\238\000\000\000\000\000\000\000\000\000\000\000\000\022\180\000\222\014\226\021\130\004~\018\150\000\000\005\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\138\t\204\018\152\000\000\006D\018\142\023*\022\210\019<\000\000\000\000\022\190\003\148\007\212\000\000\000\000\000\000\000{\004\222\000\000\172\240\000\000\000\000\003,\000\000\155\254\000\000\000\000\000\000ib\001\201\000\000\000\000\173T\000\000\000\000\003,\003,\000\000i\182\001\201\000\000\005\184\000\000\000\000\000\000\181\004\000\000\021\168\018\220j\"\000\000\003\016\000\000\156Z\000\000\000\000\0230\000\000\000\000\000\000\181\132\000\000\021\172\019\nk.\000\000\003\016\000\000kz\000\000\000\000\000\000\000\000\000\000\031\180\019\020\000\000\019,M\000\000\000\000\000\001\132\141\192\000\000\000\000\000\000\000\000\000\000k\216\001\201\021l\1618\021t\000\000\000\000\173,\021v\000\000\000\000\161J\021z\000\000\000\000\173n\021|\000\000\012\204\000\000\000\000\000\000\001\201\000\000\000\000\012\"\022\240\019\236\000\000\000\000\022\220\001\252\003*\000\000\000\000\000\000\000\000\006\140\019\014\023*\012\212\022\244\019\254\000\000\000\000\022\226\004\136\nB\000\000\000\000\000\000\004\222\000\000\000\000l\020\001\201\021\138\161\174\021\146\000\000\000\000\173\154\021\148\000\000\000\000\162Z\021\154\000\000\000\000\173\196\021\156\000\000\021\166\162\242\021\168\000\000\000\000\173\214\021\174\000\000\000\000\1634\021\178\000\000\000\000\174\018\021\180\000\000\174F\020\250\000\000l|\001\201\021\182\163h\021\184\000\000\000\000\174\170\021\188\000\000\000\000\163\148\021\192\000\000\000\000\175 \021\198\000\000\021\204\163\166\021\206\000\000\000\000\175D\021\210\000\000\000\000\164\012\021\212\000\000\000\000\175z\021\220\000\000\001\132\160\250\021\222\164H\021\224\000\000\000\000\175\144\021\226\000\000\000\000\164\184\021\228\000\000\000\000\175\184\021\230\000\000\001\132\175\244\021\232\164\236\021\234\000\000\000\000\176`\021\236\000\000\000\000\165j\021\238\000\000\000\000\176\158\021\240\000\000\001\201\022\238\000\000\004\002\000\000\022`\000\000\014\180\000\000\001\201\001\201\000\000\000\000\000\000\000\000l\240\000\000\014\234\000\000\022h\000\000\015\022\000\000\001\201\022l\000\000\023.\020\000\000\000\000\000\000\000m\218\000\000n\n\000\000\000\000\000\000\000\000\000\000\012\018\000\000\000\000\000\000\000\015\000\207\000\000\000\000\000\000\000\000\000\000\012X\000\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\000\000\000\000\000\0318\000\000\001\201\000\000 Z\000\000\000\000\000\000\005\232\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000[\000\000\000{\000\000\003H\000\000\004\222\000\000\000\025\000\000\000\000\000\000}\132\003,\000\000\000\000\000\031\000\000\000\000\000\000\000\000\007\018\006\200\022r\004\182\000\000\000\000\000\000\000\000\000\000\000\000\022t\005J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\176\254\000\000\020\b\000\000\000\000\000\000\000\000\007\194\t\182+\172\165\252\000\000\000\000\020\012\165\254\000\000\000\000\000\000\020\020\166\184\000\000\000\000\000\000\000\000"), (16, "\t\221\004J\000<\004K\004L\002\160\011]\004M\011q\004L\002\160\002\158\003\170\000@\003G\002\160\b \002\161\011>\002b\000\208\004y\t\222\t\243\002^\000n\t\224\002b\002c\000\198\004\127\001j\006c\n\147\003\133\003Q\t\225\t\244\002\162\004`\t\196\002\174\002\175\002\180\t\221\004J\002I\004K\004L\002\160\n&\004M\003\179\003\181\011^\000\144\002b\002b\002^\t\157\011a\002b\002c\004\144\000\198\004y\t\222\t\243\003\170\be\t\224\003\025\t\226\003\170\004\127\t\198\t\247\003p\000q\002\160\t\225\t\244\000\255\001\000\001\001\011.\011s\001\002\006I\003\030\001\007\011i\0008\001\228\003\170\t\200\000A\001\021\006\150\b\253\t\159\b#\bf\002\209\011?\003\151\011b\004\144\002b\003\181\t\227\007\221\002b\000\185\003\181\001\229\t\226\002b\000\180\t\160\t\247\004\164\001\253\000\192\t\162\b\253\t\201\t\228\t\203\003\182\003U\002\194\003\174\011j\004P\003\181\004\154\002b\002b\011t\004\005\004\154\002b\003\140\002\182\004\006\004\b\002b\011@\003\144\0008\000\250\003]\t\248\t\227\011G\000\250\000\193\002d\001\026\001\000\001\001\003p\004\005\001\027\004\164\000\185\001\019\005j\004\b\t\249\t\228\011\028\000\154\006L\006Q\005a\000\185\004P\000\147\004\154\002b\t\231\003\031\001\003\003\182\t\232\000\144\001*\t\234\003\182\003\136\t\239\003X\001\234\000[\n\r\t\248\003\180\003\145\004\169\003\140\000\197\004\170\011H\011M\t\241\003\144\001\004\000\250\004\155\003\182\001 \001!\t\249\007\154\000\250\003\168\003\162\004\184\002\207\002\209\004\157\001X\001\000\001\001\t\231\t\242\001Y\002\214\t\232\002\209\000_\t\234\011I\0008\t\239\000\144\t\221\004J\011,\004K\004L\002\160\004\169\004M\000\162\004\170\004\186\b \t\241\001\000\002b\003\170\004\155\n\139\005b\003\145\011J\004y\t\222\t\243\005\185\004\184\t\224\002\209\004\157\004\n\004\127\000\144\000c\t\242\0016\004\b\t\225\t\244\000\255\001\000\001\001\b\169\0017\001\002\003\179\0018\n\002\001\028\0019\001:\001\244\001 \001!\003\183\004\186\000\250\003\181\002^\001\000\002b\002b\002c\n\005\004\144\003r\003\162\000\148\000\154\000;\b\225\000x\007p\t\226\000\147\007q\b\171\t\247\001Q\000\255\001\000\001\001\003t\001k\001\002\n\161\003\157\001\007\n\017\n\018\000\185\001j\003\140\t\157\001\021\003S\b\173\011N\003\144\002\209\000\250\n\142\n\019\n\020\b\226\t-\b\227\007\222\001X\001\000\001\001\t\227\001\028\001Y\n\021\007\144\001 \001!\011\026\003\170\000\250\b\174\004\164\000\244\000\147\000\165\002^\000:\t\228\002b\002c\000\250\000\253\003\182\t\159\004P\003\170\004\154\002b\002\147\003\158\001\003\b\228\001 \000\255\001\000\001\001\000\250\003\145\001\002\000\146\001j\001\007\t\160\t\248\003\224\000\147\003\171\t\162\001\021\003\181\t\157\t\183\002b\001\019\001\004\000w\003\146\000v\001 \001!\t\249\002^\000\250\004Y\002b\002\132\003\181\001\022\b\229\002b\001\003\005\185\t\231\002\147\001*\002\133\t\232\001 \nm\t\234\003\180\000\250\t\239\007u\000\246\b\230\b\231\b\152\b\232\006a\004\169\t\159\000\250\004\170\001\004\000\185\t\241\000\244\001 \001!\004\155\000>\000\250\b\153\002\135\000\250\000\253\b\176\003\153\004\184\t\160\002\209\004\157\t.\003\161\t\162\000\250\t\242\001\019\t\178\n\145\n\146\000\250\001\028\006\160\003\182\0017\001 \001!\0018\t\250\000\250\0019\001:\005\185\001\003\007x\000\168\004\186\001*\t\015\b\234\003\182\001\030\001\031\b\235\t \007\144\b\237\000\182\005\185\b\243\b\255\n\004\003\179\001X\001\000\001\001\0016\001\004\001Y\007y\000\244\001 \001!\t*\0017\000\250\005\185\0018\000\250\000\253\0019\001:\t/\000\186\011e\t\221\004J\t\015\004K\004L\002\160\0008\004M\005a\t+\000\127\000\254\001X\001\000\001\001\000\189\001\000\001Y\n\"\006c\002\146\004y\t\222\0113\001Q\ti\t\224\003\156\002^\001k\004\127\002b\002\132\006\194\006\173\000\250\t\225\t\244\tk\007\226\003t\000\185\003\015\011f\t\221\004J\0016\004K\004L\002\160\003\140\004M\000\139\000\185\0017\n\143\003\144\0018\000\250\006\199\0019\001:\001y\004\144\007w\004y\t\222\t\243\tF\000\244\t\224\002\135\t\226\005\187\004\127\000\144\001\025\000\250\000\253\000\185\t\225\t\244\000\255\001\000\001\001\006\151\000\142\001\002\006\196\001Q\001\007\t\022\t\023\001\228\001k\n\144\000\185\001\021\007z\006\143\000\185\011}\004L\002\160\001\028\000\161\003\145\004\144\001 \001!\t\227\000\167\000\250\t'\006\155\001\229\t\226\t \007\144\000\185\n]\004\164\001\251\003\180\006\149\003\146\004\183\t\228\004\183\002^\t\022\t\023\002b\002\132\004P\002\158\004\154\002b\001\028\n\157\002\193\002\147\001 \001!\b\152\001 \000\250\n\017\n\018\000\250\006\152\006\186\t\031\t\248\t\227\002^\t \007\144\002b\002\132\b\153\n\019\n\020\0008\b\160\004\164\002\179\001\019\000\200\001\216\t\249\t\228\006\195\n\021\007\144\011\133\004L\002\160\004P\001j\004\154\002b\t\231\003\226\001\003\005\185\t\232\000\244\001*\t\234\0115\005\185\t\239\011\019\001\234\000\250\000\253\t\248\006\195\000\147\004\169\006\155\007)\004\170\b \003\179\t\241\002b\001\004\000\244\004\155\007G\001 \001!\t\249\004\183\000\250\000\250\000\253\004\184\000\220\002\209\004\157\0008\tH\002\158\t\231\t\242\005g\002\160\t\232\002\161\011~\t\234\004\154\002b\t\239\bR\t\221\004J\002b\004K\004L\002\160\004\169\004M\002\000\004\170\004\186\000\185\t\241\000\188\005\132\002\189\004\155\002\174\002\175\002\180\000\202\004y\t\222\t\243\b\152\004\184\t\224\002\209\004\157\t\238\004\127\n\145\n\146\t\242\0016\b<\t\225\t\244\007J\001\000\b\153\007K\0017\002\154\b\154\0018\b\152\003\025\0019\001:\001\244\n\011\002^\002\209\004\186\002b\002\132\t \007\144\002\245\002\160\000\144\b\153\004\144\005\143\003\030\b\159\000\185\011\134\001\000\004\154\002b\t\226\n\031\002\003\003t\t\252\001Q\n'\006\155\006\155\005\185\001k\t\202\002\158\003\140\003t\002\159\002\160\003\166\002\161\003\144\005\185\000\250\004\183\003y\003\140\002J\002\193\005z\011Y\005\162\003\144\003\227\000\250\001\000\007J\002\194\005\128\n\154\t\227\002\162\0044\003\180\002\174\002\175\002\180\000\180\t\198\003\139\002\182\004\164\000\192\002b\000\218\t\221\004J\t\228\004K\004L\002\160\006\155\004M\000\225\004P\002\t\004\154\002b\t\200\002M\n@\003\145\0045\011\136\011\137\004\183\004y\011\139\011Z\003\170\000\203\t\224\003\145\t\248\006\167\004\127\000\250\005\183\005\184\003\031\003\146\t\225\011\141\bG\002\147\000\144\006\206\002\160\001 \t\201\t\249\003\146\000\250\002^\n\014\t\198\002b\002c\000\153\000\154\005\196\006\181\t\231\002b\002\132\000\147\t\232\007:\004\144\t\234\003\181\b\175\t\239\002b\002\147\t\200\002\207\t\226\001 \004\194\004\169\000\196\000\250\004\170\002\181\002\214\t\241\002\209\t\157\002\158\004\155\0008\002\159\002\160\n\015\002\161\000\144\002\182\000\233\004\184\002b\002\209\004\157\005\210\005\173\b\171\t\201\t\242\n\016\000\226\002\147\000\185\000\236\005\179\001 \t\227\002\162\0044\000\250\002\174\002\175\002\180\001\243\001\241\000\144\b\173\004\164\003\139\004\186\t\159\t\221\004J\t\228\004K\004L\002\160\011\156\004M\0046\004P\006\r\004\154\002b\002b\002\132\001\214\003\182\0045\t\160\011\148\b\174\004y\011\149\t\162\000\198\011\144\t\224\t\169\000\204\003\133\004\127\007Y\000\184\000\154\005`\005f\t\225\011\157\002\158\000\147\000\244\002\159\002\160\002\207\002\161\t\249\002\193\000\244\000\250\000\253\000\244\003\240\002\208\006*\002\209\000\250\000\253\t\231\000\250\000\253\000\185\t\232\002\023\004\144\t\234\002\162\0044\t\239\002\174\002\175\002\180\006\155\t\226\000\185\000\185\004\169\001j\005\129\004\170\002\181\003\237\t\241\005\185\000\191\000\154\004\155\000\198\007i\007k\007m\000\147\bi\002\182\0075\004\184\002b\002\209\004\157\006\155\000\255\001\000\001\001\t\242\004\005\001\002\001\014\0026\001\007\t`\004\b\t\227\000\207\000\154\002^\001\021\b\152\002b\002c\000\147\000\144\001j\004\164\001\r\004\186\003\239\t\221\004J\t\228\004K\004L\002\160\b\153\004M\0046\004P\b\184\004\154\002b\001W\002?\0008\b\148\002B\000\185\b\015\001\012\004y\t\222\n$\011\161\002E\t\224\000\198\002U\007$\004\127\n\025\003\133\002\181\005`\005f\t\225\t\244\002\158\n#\011)\002\159\002\160\002\207\002\161\t\249\002\182\007\175\003\170\002b\007\253\000\198\002\208\001\017\002\209\002G\003\133\t\231\005\185\001\019\001'\t\232\000\185\004\144\t\234\002\162\002\189\t\239\002\174\002\175\002\180\002X\t\226\005\161\002\160\004\169\001\003\005\180\004\170\n\015\001*\t\241\005\163\002\160\bV\004\155\007B\0046\t\152\003\181\006\221\bY\002b\n\016\004\184\000\185\002\209\004\157\000\185\002\190\001\004\003\170\t\242\001j\001 \001!\000\185\005o\000\250\000\185\t\227\001%\000\154\001.\0047\000\144\002\191\003\209\000\147\005\185\007\240\004\164\002\207\004\186\002\\\t\221\004J\t\228\004K\004L\002\160\002\208\004M\002\209\004P\006\155\004\154\002b\003t\007F\005\186\003\164\003\181\0011\011\148\002b\004y\011\149\003\140\004\183\bX\t\224\000\185\t\248\003\144\004\127\000\250\bX\002\194\002i\001b\t\225\011\152\002\158\0016\003\182\002\159\002\160\002\142\002\161\t\249\002\182\0017\000\144\002b\0018\000\144\001j\0019\001:\b\025\005w\t\231\002\188\004~\007J\t\232\007Y\004\144\t\234\002\162\002\189\t\239\002\174\002\175\002\180\006\155\t\226\003d\003t\004\169\bM\003\163\004\170\003\145\000\185\t\241\001Q\003f\003\140\004\155\002\196\001k\007/\006\155\003\144\007\245\000\250\003\182\004\184\003o\002\209\004\157\003\146\002\190\000\144\000\198\t\242\004\183\b\003\003x\003\133\001)\000\154\002^\t\227\001?\002b\002c\000\147\000\185\002\191\003\232\007l\007k\007m\004\164\002\207\004\186\000\185\t\221\004J\t\228\004K\004L\002\160\002\214\004M\002\209\004P\001a\004\154\002b\002^\000\185\003\145\002b\002c\005\185\t\157\b \004y\t\222\002b\011\155\001E\t\224\003\241\003\195\000\185\004\127\007J\005\185\002\194\003\146\003\139\t\225\t\254\005\185\000\185\0013\000\154\t\186\001r\000\154\t\249\002\182\000\147\t\157\002b\000\147\000\185\007T\007\144\000\255\001\000\001\001\t\231\001I\001\002\t\159\t\232\001\007\004\144\t\234\005\185\000\198\t\239\007Y\001\021\b\246\003\133\t\226\b\143\003\170\004\169\002b\004\005\004\170\t\160\003\245\t\241\tx\004\b\t\162\004\155\002\196\b/\t\166\t\159\003\201\003\170\001w\000\154\004\184\000\250\002\209\004\157\003\204\000\147\n\158\001L\t\242\b\r\002\160\n\023\007Y\002\209\t\160\000\185\t\227\t\015\007\181\t\162\b}\003\181\003\207\t\163\002b\001P\b\161\004\164\002\207\004\186\t\b\007k\007m\t\228\003\170\007\225\006\155\002\214\003\181\002\209\004P\002b\004\154\002b\002^\001\019\n\144\002b\002c\005\185\000\255\001\000\001\001\b\177\005\185\001\002\000\198\007\250\001\007\n\001\t\002\003\133\001\003\n\134\003t\001\021\001*\003u\t\028\007k\007m\001e\t\237\001i\003\140\003\181\t\249\000\185\002b\t\157\003\144\005\185\000\250\b\225\t\164\000\185\001\004\003\213\t\231\004?\001 \001!\t\232\004X\000\250\t\234\b\157\003\182\t\239\002b\000\255\001\000\001\001\000\185\001j\001\002\004\169\t\015\001\007\004\170\b\155\007\169\t\241\005\185\003\182\001\021\004\155\b\226\0117\b\227\t\159\001n\007J\011E\004f\004\184\004l\002\209\004\157\005\185\003\145\b\185\004v\t\242\tp\001\019\b\241\b\155\002^\t\160\005\185\002b\002c\007Y\t\162\t\022\t\023\004|\t\173\003\146\0016\003\182\001\003\t\018\004\186\b\228\001*\t\015\0017\003t\004\160\0018\003\138\007\150\0019\001:\t\024\t(\000\185\003\140\000\185\t \007\144\t\157\000\185\003\144\001\004\000\250\004\174\000\144\001 \001!\004\180\004\189\000\250\001\019\004\200\b\029\007\144\000\255\001\000\001\001\b\229\001Q\001\002\007\235\004\206\001\007\001k\t$\007k\007m\001\003\n\136\001\021\000\185\001*\000\185\tt\b\230\b\231\007\241\b\232\000\185\t\159\b\155\000\255\001\000\001\001\004\212\003\139\001\002\007\246\001u\n\182\003\145\001\004\000\144\000\185\001\128\001 \001!\004\218\t\160\000\250\t\022\t\023\t.\t\162\001j\0016\000\185\t\189\005\137\003\146\001j\t\015\005\185\0017\005\170\003t\0018\001\133\003\148\0019\001:\t\024\t(\004\224\000\185\003\140\t \007\144\000\185\000\185\b\234\003\144\000\185\000\250\b\235\0119\004\230\b\237\001\146\001\019\b\243\b\255\000\185\006\155\000\255\001\000\001\001\001\141\001Q\001\002\t\022\t\023\001\007\001k\t*\0016\001\003\n\151\001\145\001\021\001*\001~\000\154\0017\007Y\000\185\0018\004\236\000\147\0019\001:\t\024\t(\004\242\011F\t+\t \007\144\000\185\003t\001\004\003\145\003\150\001\003\001 \001!\004\248\n\198\000\250\003\140\005\185\000\255\001\000\001\001\007\251\003\144\001\002\000\250\001Q\001\007\003\146\t\015\001\228\001k\000\185\b\248\001\021\001\004\004\254\001\130\000\154\001 \001!\005\004\005\n\000\250\000\147\000\185\005\016\000\144\n\129\007k\007m\005\022\001\229\003t\005\028\0008\003\177\001\019\t\147\001\230\005\"\002b\005\185\003\140\000\144\005(\005\185\t\022\t\023\003\144\001\149\000\250\0016\003\145\001\003\005.\000\185\005\185\001*\0054\0017\003t\000\185\0018\004[\001\153\0019\001:\t\024\t(\t\004\003\140\003\146\t \007\144\000\185\001\162\003\144\001\004\000\250\b\024\b3\001 \001!\001\019\005\185\000\250\0017\003t\000\250\0018\007D\b\253\0019\001:\001Q\tM\000\185\003\140\003\145\001k\001\003\000\185\000\185\003\144\001*\000\250\000\185\000\255\001\000\001\001\001\234\000\185\001\002\005:\000\185\001\007\005@\003\146\001\228\005N\000\185\n\253\001\021\b%\001\004\000\185\003\145\b(\001 \001!\002^\005T\000\250\002b\002c\000\185\t\022\t\023\b0\000\185\001\229\0016\005X\003\255\000\154\003\146\005\220\001\249\b\253\0017\000\147\000\144\0018\003\145\000\144\0019\001:\n\132\n\133\000\144\004\003\000\154\t \007\144\001\157\t\157\b4\000\147\000\255\001\000\001\001\005\229\003\146\001\002\005\238\005\248\001\007\003t\006\001\001\245\007\184\001\161\bA\001\021\001Q\005\185\000\144\003\140\0016\001k\000\250\001\165\001\019\003\144\000\185\000\250\0017\000\185\001\169\0018\000\185\001\247\0019\001:\001\244\001\183\t\159\b\146\000\144\001\003\006\n\006\021\000\185\001*\b]\007\144\t\012\007\144\001\178\001\234\006\030\tQ\001\182\000\185\005\185\t\160\006'\000\185\006.\003t\t\162\001Q\007\202\001\004\t\207\001\186\001k\001 \001!\003\140\006X\000\250\t\190\003\145\001\190\003\144\006]\000\250\t\139\000\255\001\000\001\001\000\185\001\019\001\002\000\185\000\185\001\007\006i\000\185\001\245\006q\003\146\003t\001\021\001\199\007\205\bB\007\128\000\154\001\003\b\007\000\154\003\140\001*\000\147\011\023\000\154\000\147\003\144\001\234\000\250\001\247\000\147\006y\000\255\001\000\001\001\001\194\005\185\001\002\000\185\000\185\001\007\001\004\003\145\001\228\0016\001 \001!\001\021\000\185\000\250\011!\000\154\0017\bS\000\185\0018\000\185\000\147\0019\001:\001\244\003\146\000\255\001\000\001\001\001\233\001\198\001\002\000\185\006\128\001\007\006\134\011%\000\154\000\185\003t\003\145\001\021\007\208\000\147\006\139\001\019\n\t\007\144\006\146\003\140\000\185\001Q\006\165\000\185\006\179\003\144\001k\000\250\006\210\003\146\001\022\006\226\001\003\001\202\006\231\006\238\001*\007\000\007\005\0016\t\171\n\163\001\234\002b\001\206\001\209\000\185\0017\007\014\001\213\0018\001\019\bW\0019\001:\b\199\001\004\007\023\007\"\t\164\001 \001!\001\227\005\185\000\250\007-\005\185\003t\001\003\001\237\007\213\005\185\001*\0079\007?\003\145\005\185\003\140\001\234\007N\005\185\001\019\001Q\003\144\000\185\000\250\000\185\001k\007e\b\225\002\002\005\185\001\004\007g\003\146\000\185\001 \001!\001\003\000\185\000\250\007\141\001*\000\185\007\146\000\185\000\255\001\000\001\001\000\185\005\185\001\002\000\185\005\185\001\007\000\185\000\185\002\015\000\185\000\185\0016\001\021\001\004\b\226\n\159\b\227\001 \001!\0017\000\185\000\250\0018\007\161\003\145\0019\001:\001\244\002\022\000\185\000\185\001\022\007\167\000\255\001\000\001\001\b\136\000\185\001\002\b\168\007\180\001\007\001\135\003\146\b\172\000\185\000\185\0016\001\021\b\214\n?\000\185\b\228\b\222\001Q\0017\007\198\007\224\0018\001k\000\185\0019\001:\001\244\b\236\000\185\007\230\001\022\007\237\007\243\0025\b\012\b\028\000\185\b$\b'\000\185\0016\001,\b.\b2\0029\001\019\b\251\b8\0017\t\020\b>\0018\b\229\001Q\0019\001:\001y\002D\001k\002K\bI\007\223\001\003\b\\\002T\ba\001*\000\185\002[\b\230\b\231\002h\b\232\bn\bt\005\185\000\185\003t\b\127\b\138\007\216\001\019\002\138\001Q\000\185\005\185\001\004\003\140\001k\003\n\001 \001!\b\156\003\144\000\250\000\250\002\141\t.\001\003\003\002\000\185\000\185\001*\b\142\b\163\005\185\000\255\001\000\001\001\002\187\000\185\001\002\000\185\000\185\001\007\000\185\000\185\002\219\000\185\000\185\002\218\001\021\001\004\000\185\000\185\b\234\001 \001!\000\185\b\235\000\250\000\185\b\237\b\179\b\189\b\243\b\255\000\255\001\000\001\001\001\022\000\185\001\002\003\145\000\185\001\007\000\185\b\216\005\185\t*\0016\001\172\001\021\003t\000\185\000\185\007\219\tG\0017\000\185\000\185\0018\003\146\003\140\0019\001:\001y\tj\b\239\003\144\t+\000\250\b\245\000\185\003\014\000\255\001\000\001\001\t\001\005\185\001\002\t\014\b\015\001\007\000\185\000\185\0016\t\132\t\"\003t\001\021\001\019\007\233\001Q\0017\t2\005\185\0018\001k\003\140\0019\001:\001y\b\018\003\029\003\144\t9\000\250\001\003\t=\003T\005\185\001*\003P\000\185\000\185\003V\tZ\005\185\003\145\b\015\t\130\001\019\003^\n\027\007\152\007\145\t\188\000\185\001Q\t\143\005\185\001\004\0078\001k\t\135\001 \001!\003\146\001\003\000\250\b\135\005\185\001*\t\174\t\140\003c\t\170\003t\000\185\t\146\b;\005\185\000\185\005\185\003\145\t\154\003i\003\140\000\185\001\019\t\177\000\185\001\004\003\144\003q\000\250\001 \001!\000\185\005\185\000\250\t\193\005\185\003\146\t\213\000\185\001\003\t\187\t\236\005\185\001*\n\012\n\024\000\255\001\000\001\001\000\185\n\149\001\002\000\185\002\158\001\007\t\191\002\159\002\160\0016\002\161\000\185\001\021\t\195\001\004\000\185\b\253\0017\001 \001!\0018\000\185\000\250\0019\001:\001y\t\199\003\145\007\158\000\185\nG\002\162\0044\003~\002\174\002\175\002\180\t\211\000\185\000\185\0016\000\185\b\015\003\128\000\185\003\143\003\146\t\218\0017\t\233\000\185\0018\001Q\nV\0019\001:\b\025\001k\nb\000\255\001\000\001\001\0045\te\001\002\t\245\000\185\001\007\t\255\000\185\nd\003\160\007\030\000\185\001\021\n\030\000\185\000\185\0016\007\026\b\253\005\185\001\019\001Q\003\194\003\200\0017\003\203\001k\0018\005\185\005\185\0019\001:\b\025\005\185\003\206\005\185\003\212\001\003\003\249\005\185\003\243\001*\b\015\003\246\004;\004>\004E\004W\004e\000\185\004k\004u\000\255\001\000\001\001\004{\004\131\001\002\004\149\001Q\001\007\001\004\002\181\ts\001k\001 \001!\001\021\004\159\000\250\005\188\004\173\000\185\004\179\004\188\002\182\004\199\000\185\002b\004\205\004\211\004\217\001\019\004\223\003t\004\229\004\235\bF\004\241\000\185\000\255\001\000\001\001\004\247\003\140\001\002\004\253\b\015\001\007\001\003\003\144\n\138\000\250\001*\003t\001\021\005\003\bL\005\t\005\015\n\153\011+\005\021\005\027\003\140\011\142\0046\011\153\t}\005!\003\144\011\158\000\250\001\004\001\022\0016\005'\001 \001!\005-\0053\000\250\0059\0017\005?\n\200\0018\001\019\005G\0019\001:\b\025\005`\005f\005M\005S\005[\005}\005\140\005\176\003\145\002\207\005\219\005\228\001\003\005\237\005\247\006\000\001*\006\t\002\208\006\020\002\209\006\029\006&\006-\006C\006W\001Q\003\146\003\145\006\\\006h\001k\006p\001\019\006x\006\127\001\004\006\133\006\136\003t\001 \001!\bU\006\138\000\250\0016\006\145\003\146\006\154\003\140\001\003\006\164\006\178\0017\001*\003\144\0018\000\250\006\189\0019\001:\b\025\006\197\004J\006\209\004K\004L\002\160\006\225\004M\006\230\006\237\006\249\006\255\001\004\007\004\007\r\007\022\001 \001!\007\028\007!\000\250\004y\007,\007>\007@\007M\001Q\000\255\001\000\001\001\004\127\001k\001\002\007\140\007d\001\007\007c\007\186\0016\007b\007~\003t\001\021\003\145\b\240\007\148\0017\007\155\007\160\0018\007\166\003\140\0019\001:\b\025\007\179\007\188\003\144\007\190\000\250\007\197\007\236\003\146\004\144\007\229\000\255\001\000\001\001\007\231\007\234\001\002\007\249\003L\001\007\007\239\007\248\0016\007\244\007\247\b\011\001\021\001Q\b\019\b\023\0017\b\022\001k\0018\b\027\b&\0019\001:\001y\b1\b-\b=\b7\b9\bP\bD\bO\bJ\bN\b[\b\188\b`\bc\003\145\000n\bj\003\221\br\001\019\by\b\132\b\187\b\180\b\181\b\186\001Q\b\190\004\164\b\191\b\224\001k\b\217\003\146\b\218\b\223\001\003\b\238\b\242\b\254\001*\004P\b\249\004\154\002b\b\250\b\252\t)\t\r\t\017\t\019\t\021\t!\t1\t3\t4\t:\001\019\t?\tC\001\004\tU\t\\\t\141\001 \001!\t\165\t\175\000\250\t\220\t\214\t\215\t\219\t\235\001\003\t\240\n\007\004\166\001*\n\028\n\029\n!\nF\nO\nU\nx\000\255\001\000\001\001\ns\nw\001\002\n{\n\127\001\007\n\137\n\141\n\152\001\004\n\156\n\174\001\021\001 \001!\n\169\n\173\000\250\004\169\n\177\n\181\004\170\000\255\001\000\001\001\n\190\n\185\001\002\004\155\n\189\b\200\n\193\n\197\n\211\n\206\0016\n\210\004\184\n\214\002\209\004\157\n\218\003\234\0017\n\227\n\222\0018\n\226\n\230\0019\001:\003R\n\234\n\245\n\240\n\244\n\248\n\252\011\007\011\002\011\006\011\n\011\014\011\017\002\158\011\021\004\186\002\159\002\160\011#\002\161\011(\011*\0016\011x\011\128\000\000\000\000\001Q\000\000\000\000\0017\001\019\001k\0018\000\000\000\000\0019\001:\003\225\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\b\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\001\004\001\003\002\190\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\002\191\004\011\000\000\000\000\000\000\001\021\b\205\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\253\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\t\000\255\001\000\001\001\000n\000\000\001\002\001\210\000\000\001\007\004\r\004\017\000\000\000\000\000\000\000\000\001\021\002\194\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\002\182\0018\000\000\002b\0019\001:\003\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\020\000\000\000\000\000\000\001\019\000\000\000\000\0017\000\000\000\000\b\208\000\000\000\000\0019\001:\000\000\004\028\001Q\000\000\000\000\000\000\001\003\001k\000\000\002\196\001*\b\153\000\000\b\213\000\000\b\210\001\019\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\001\019\002\161\001Q\000\000\000\000\001\004\000\000\000\000\001\003\001 \001!\000\000\001\211\000\250\000\000\000\000\000\000\001\003\000\000\000\000\002\207\001*\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\214\000\000\002\209\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\002\190\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\0016\000\000\000\000\000\000\002\191\004 \000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\003\225\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\004\"\001\007\000\000\000\000\000\000\000\000\000\000\000n\001\021\0017\0016\000\000\0018\000\000\004&\0019\001:\001Q\0017\000\000\002\194\0018\001k\000\000\0019\001:\004\023\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\004*\000\000\001\019\000\000\000\000\004J\001Q\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001\003\001k\000\000\000\000\001*\000\000\004y\000\000\0041\000\000\000\000\000\000\000\000\000\000\000\000\004\127\002\196\000\000\000\000\000\000\000\000\001\019\006S\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\255\001\000\001\001\004\144\000\000\001\002\000\000\002\207\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\002\214\001\004\002\209\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\0016\000\000\005r\000\000\000\000\000n\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\003\225\000\000\004\164\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\005\165\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\0016\000\000\000\000\000\000\001\019\001Q\000\000\000\000\0017\000\000\001k\0018\0061\000\000\0019\001:\004.\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\004\166\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0062\000\000\000\000\000\000\000\000\001Q\000\000\001\004\000\000\001\003\001k\001 \001!\001*\000\000\000\250\000\000\000\000\000\000\000\000\000\000\004\169\000\000\002\158\004\170\000\000\005g\002\160\000\000\002\161\000\000\004\155\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\004\184\000\250\002\209\004\157\000\255\001\000\001\001\000\000\000\000\001\002\005\132\002\189\001\007\002\174\002\175\002\180\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\004O\000\000\000\000\000\000\004\186\004J\0016\004K\004L\002\160\000\000\004M\000\000\004P\0017\004\154\002b\0018\003\025\000\000\0019\001:\002\006\000\000\007\\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\nB\005\143\003\030\000\000\000\000\000\000\0017\000\000\000\000\0018\007_\000\000\0019\001:\002\006\001Q\000\000\000\000\000\000\000\000\001k\0064\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\255\001\000\001\001\000\000\005\162\001\002\000\000\001Q\001\007\000\000\002\194\000\000\001k\001\003\000\000\001\021\000\000\001*\000\000\000\000\000\000\004\155\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\004\156\000\000\002\209\004\157\000\000\000\000\000\000\001\004\000\000\b\146\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\004O\001\007\000\000\005\183\007\149\003\031\000\000\000\000\001\021\000\255\001\000\001\001\000\000\004P\001\002\004\154\002b\001\016\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\002\207\000\000\0016\001\003\000\000\001\021\000\000\001*\000\000\002\214\0017\002\209\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\t\150\000\000\001 \001!\000\000\002\158\000\250\001\019\005g\002\160\000\000\002\161\000\000\000\000\000\000\000\000\001Q\000\000\004\155\000\000\000\000\007h\000\000\001\019\001\003\000\000\000\000\004\156\001*\002\209\004\157\000\000\005\132\002\189\000\000\002\174\002\175\002\180\000\000\000\000\001\003\000\000\000\000\000\000\001\207\000\000\001\019\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\0016\001\003\001\004\003\025\000\000\001*\001 \001!\0017\000\000\000\250\0018\000\000\000\000\0019\001:\b\151\000\000\000\000\000\000\005\143\003\030\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\001Q\000\000\000\000\000\000\000\000\001k\001\021\0016\000\000\000\000\000\000\000\000\000\000\002\158\005\162\0017\005g\002\160\0018\002\161\002\194\0019\001:\b\164\000\000\000\000\b\167\000\000\000\000\000\000\000\000\0017\000\000\002\182\0018\000\000\002b\0019\001:\000\000\005\132\002\189\000\000\002\174\002\175\002\180\0016\000\000\000\000\000\000\001Q\000\000\000\000\000\000\0017\001k\000\000\0018\000\000\000\000\0019\001:\b\151\000\000\000\000\000\000\001Q\000\000\000\000\000\000\005\183\t\142\003\031\003\025\000\000\000\000\001\019\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\001Q\005\143\003\030\000\000\001\003\001k\001\021\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\002\214\000\000\002\209\001 \001!\000\000\000\000\000\250\000\000\005\162\000\000\000\000\000\255\001\000\001\001\002\194\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\255\001\000\001\001\001\021\002\182\001\002\000\000\002b\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\011Q\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\0016\001\003\005\183\t\176\003\031\001*\007\\\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\b\164\000\000\0061\t\194\000\000\000\000\000\000\000\000\000\000\001\004\na\000\000\000\000\001 \001!\000\000\000\000\000\250\001\019\000\000\004J\000\000\004K\004L\002\160\002\207\004M\001Q\t\161\000\000\001\019\000\000\001k\000\000\002\214\001\003\002\209\000\000\000\000\001*\004y\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\004\127\000\000\001*\000\000\000\000\000\000\000\000\011U\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\001\004\000\000\0016\000\000\001 \001!\000\000\000\000\000\250\000\000\0017\004\144\000\000\0018\000\000\000\000\0019\001:\011R\000\255\001\000\001\001\004O\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\004P\011W\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\0016\000\000\0019\001:\011\025\004\164\000\000\000\000\0017\000\000\000\000\0018\000\000\0064\0019\001:\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\001Q\001\007\000\000\000\000\000\000\001k\000\000\000\000\001\021\001\019\000\000\000\000\001Q\000\000\000\000\000\000\004\155\007h\000\000\000\000\000\000\000\000\000\000\004\166\000\000\004\156\001\003\002\209\004\157\000\000\001*\004J\000\000\004K\004L\002\160\000\000\004M\002\158\000\000\000\000\003G\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\001\004\004y\000\000\004\169\001 \001!\004\170\000\000\000\250\000\000\004\127\000\000\000\000\004\155\000\000\002\162\004`\n\\\002\174\002\175\002\180\000\000\004\184\000\000\002\209\004\157\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\004\144\000\000\001\003\000\000\000\000\003\025\001*\000\000\004\186\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\0016\006I\003\030\000\000\000\000\001\004\nY\000\000\0017\001 \001!\0018\000\000\000\250\0019\001:\011\024\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\004\144\000\000\000\000\000\000\000\000\004\164\001\021\000\000\000\000\000\000\000\000\001Q\002\194\000\000\000\000\000\000\001k\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\255\001\000\001\001\0017\000\000\001\002\0018\000\000\001\007\0019\001:\011\015\004\166\000\000\006P\001\021\004\164\000\000\000\255\001\000\001\001\000\000\003\031\001\002\000\000\000\000\001\007\000\000\000\000\004P\000\000\004\154\002b\001\021\001\019\000\000\000\000\000\000\001Q\000\000\000\000\000\000\004\169\001k\000\000\004\170\000\000\000\000\000\000\000\000\000\000\001\003\004\155\000\000\000\000\001*\000\000\000\000\000\000\002\207\000\000\004\184\000\000\002\209\004\157\004\166\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\001\019\000\000\000\000\000\000\000\000\004\186\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\170\000\000\000\000\000\000\001\003\001\019\000\000\004\155\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\004\186\001\004\000\000\000\000\0017\001 \001!\0018\000\000\000\250\0019\001:\002\004\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\255\001\000\001\001\000\000\000\000\001\002\001\021\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\255\001\000\001\001\0017\000\000\001\002\0018\000\000\001\007\0019\001:\001\215\000\000\0016\000\000\001\021\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001Q\000\000\000\000\000\000\000\000\001k\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\004\000\000\000\000\000\000\001 \001!\001\003\000\000\000\250\000\000\001*\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\0016\001\021\000\000\000\000\000\000\000\000\000\000\000\000\0017\0016\000\000\0018\000\000\000\000\0019\001:\001;\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001\131\000\000\000\000\000\000\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\001Q\001\019\000\000\000\000\0017\001k\000\000\0018\000\000\001Q\0019\001:\001\137\000\000\001k\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\255\001\000\001\001\001\019\000\000\001\002\000\000\002\158\001\007\000\000\002\159\002\160\000\000\002\161\001Q\001\021\000\000\001\004\000\000\001k\001\003\001 \001!\000\000\001*\000\250\000\000\000\000\000\000\000\000\000\000\005_\000\000\000\000\002\162\0044\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\255\001\000\001\001\0045\000\000\001\002\001\021\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\0016\000\000\000\000\000\000\001\019\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001\174\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001Q\000\000\001\004\002\181\000\000\001k\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\001\019\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001\003\001\242\000\000\000\000\001*\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\001\004\004M\0046\000\000\001 \001!\000\000\000\000\000\250\001\004\000\000\0016\000\000\001 \001!\004y\000\000\000\250\000\000\0017\000\000\000\000\0018\000\000\004\127\0019\001:\002\b\005`\005f\000\000\007\195\004J\000\000\004K\004L\002\160\002\207\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\208\000\000\002\209\000\000\000\000\000\000\004y\000\000\001Q\000\000\000\000\004\144\000\000\001k\000\000\004\127\000\000\004J\0016\004K\004L\002\160\007\192\004M\000\000\000\000\0017\0016\000\000\0018\000\000\000\000\0019\001:\002\030\0017\000\000\004y\0018\000\000\000\000\0019\001:\002%\000\000\000\000\004\127\000\000\004\144\000\000\000\000\000\000\000\000\007\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\004\164\001Q\000\255\001\000\001\001\000\000\001k\001\002\000\000\000\000\004\144\000\000\000\000\004P\000\000\004\154\002b\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\004\164\007q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\130\000\000\004\166\004P\000\000\004\154\002b\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\004\164\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004P\004\170\004\154\002b\000\000\004\166\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\001\019\001\003\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\004\169\004\166\000\000\004\170\001\003\000\000\001\021\000\000\001*\000\000\004\155\004\186\001\004\000\000\000\000\000\000\001 \001!\000\000\004\184\000\250\002\209\004\157\001\019\000\000\000\000\000\000\000\000\001\004\000\000\000\000\004\169\001 \001!\004\170\000\000\000\250\000\000\000\000\000\000\001\003\004\155\000\000\000\000\001*\000\000\000\000\000\000\004\186\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\001\019\000\000\001\002\004\186\000\000\001\007\000\000\000\000\0017\000\000\000\000\0018\001\021\000\000\0019\001:\0016\001\003\007\136\000\000\000\000\001*\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\002u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\007\139\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\001Q\0017\000\000\000\000\0018\001k\000\000\0019\001:\002|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\001\019\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\001Q\000\000\000\000\000\000\001\003\001k\000\000\000\000\001*\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\002\137\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\255\001\000\001\001\000\000\000\000\001\002\001\021\001Q\001\007\000\000\000\000\000\000\001k\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\001\003\000\000\000\000\000\000\001*\000\000\001\021\0016\000\000\000\000\004J\000\000\004K\004L\002\160\0017\004M\000\000\0018\000\000\000\000\0019\001:\002\169\001\004\000\000\000\000\000\000\001 \001!\004y\000\000\000\250\000\000\t\221\000\000\000\000\001\019\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001Q\000\000\000\000\011\148\001\003\001k\011\149\000\000\001*\000\000\t\224\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\t\225\000\000\004\144\000\000\000\000\000\000\001\019\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\004\0016\000\000\000\000\001 \001!\001\003\000\000\000\250\0017\001*\000\000\0018\000\000\000\000\0019\001:\002\202\000\000\t\226\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\001\004\000\000\000\000\000\000\001 \001!\001\021\000\000\000\250\000\000\000\000\000\000\000\000\004\164\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\000\000\000\000\000\000\0016\004P\t\227\004\154\002b\000\000\000\000\000\000\0017\0016\000\000\0018\000\000\000\000\0019\001:\002\232\0017\000\000\t\228\0018\000\000\000\000\0019\001:\002\240\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\004\166\000\000\0016\000\000\011\151\001\021\001Q\000\000\000\000\000\000\0017\001k\000\000\0018\001\019\001Q\0019\001:\003%\000\000\001k\000\255\001\000\001\001\000\000\t\230\001\002\000\000\000\000\000\000\005d\001\003\000\000\004\170\006\213\001*\000\000\t\231\000\000\000\000\004\155\t\232\000\000\000\000\t\234\001Q\000\000\t\239\000\000\004\184\001k\002\209\004\157\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\t\241\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\001\019\001\002\000\000\004\186\001\007\000\000\000\000\t\242\000\255\001\000\001\001\001\021\000\000\001\002\000\000\000\000\001\007\001\003\000\000\000\000\000\000\001*\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\001\004\000\000\000\000\0016\001 \001!\000\000\001\003\000\250\000\000\000\000\0017\000\000\004y\0018\000\000\000\000\0019\001:\0032\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\007\151\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\019\000\000\nk\000\000\000\000\000\000\001Q\000\000\000\255\001\000\001\001\001k\001\019\001\002\000\000\004\144\001\007\001\003\000\000\000\000\000\000\001*\000\000\001\021\0016\000\000\000\000\000\000\000\000\001\003\000\000\000\000\0017\001*\000\000\0018\000\000\000\000\0019\001:\003@\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\0017\000\000\000\000\0018\001Q\000\000\0019\001:\000\000\001k\004\164\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\001\019\000\000\004y\000\000\000\000\ng\000\000\000\000\000\000\000\000\000\000\004\127\0016\000\000\000\000\000\000\000\000\001\003\0077\000\000\0017\001*\000\000\0018\0016\000\000\0019\001:\003N\004\166\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\003\130\001\004\000\000\000\000\004\144\001 \001!\000\000\000\000\000\250\004J\000\000\004K\004L\002\160\001Q\004M\000\000\000\000\004\169\001k\000\000\004\170\000\000\000\000\000\000\000\000\001Q\000\000\004\155\004y\000\000\001k\000\000\000\000\000\000\000\000\000\000\004\184\004\127\002\209\004\157\000\000\000\000\000\000\000\000\006\242\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\0016\000\000\004\186\000\000\000\000\000\000\000\000\004\144\0017\000\000\004P\0018\004\154\002b\0019\001:\003\132\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\004J\004M\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\001Q\000\000\004y\004\166\000\000\001k\004\127\000\000\000\000\000\000\000\000\004\127\000\000\006\222\000\000\000\000\000\000\000\000\006\214\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004P\004\170\004\154\002b\004\144\000\000\001\003\000\000\004\155\004\144\001\170\000\000\002\158\000\000\000\000\002\159\002\160\004\184\002\161\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\004\166\000\000\000\250\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\004\169\004\164\000\000\004\170\000\000\000\000\000\000\002\190\000\000\004P\004\155\004\154\002b\000\000\004P\000\000\004\154\002b\000\000\004\184\000\000\002\209\004\157\000\000\002\191\003\219\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\004\166\000\000\000\000\004\186\000\000\004\166\000\000\000\000\000n\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\004\169\000\000\000\000\004\170\002\182\004\169\000\000\002b\004\170\000\000\004\155\000\000\000\000\002\190\000\000\004\155\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004\184\000\000\002\209\004\157\000\000\000\000\002\191\003\219\000\000\000\000\000\000\000\000\003\230\000\255\001\000\001\001\000\000\000\000\001\002\000\000\002\196\001\007\000\000\000\000\004\186\000\255\001\000\001\001\001\021\004\186\001\002\000\000\000\000\001\007\000\000\000n\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\214\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\003\228\000\000\000\000\000\000\000\000\001\019\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\002\207\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\002\214\000\250\002\209\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\019\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\002\162\002\189\001\007\002\174\002\175\002\180\000\000\000\000\000\000\001\021\000\000\001\004\000\000\0016\000\000\001 \001!\000\000\000\000\000\250\000\000\0017\000\000\000\000\0018\0016\000\000\0019\001:\003\223\000\255\001\000\001\001\0017\002\190\001\002\0018\000\000\001\007\0019\001:\003\236\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\002\191\004\018\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\0016\000\000\000\000\000\000\001\019\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\004\015\000\000\002\194\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\255\001\000\001\001\000\000\001\019\001\002\000\000\001Q\001\007\001\004\000\000\000\000\001k\001 \001!\001\021\000\000\000\250\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\004\024\004\026\000\000\000\000\000\000\000\000\000\000\002\158\002\196\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\255\001\000\001\001\002\162\002\189\001\002\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\207\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\002\214\0017\002\209\000\000\0018\001\019\004@\0019\001:\004\022\000\000\000\000\000\000\001Z\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\0016\000\000\000\000\002\191\003\209\000\000\000\000\001Q\0017\000\000\000\000\0018\001k\000\000\0019\001:\004$\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\001Q\000\000\002\194\000\000\000\000\001k\000\000\000\000\001\003\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004~\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\0016\000\000\000\250\004y\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\004\127\000\000\0019\001:\004,\002\196\000\000\006H\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\001Q\000\000\004\144\000\000\001\003\001k\004\127\000\000\001*\000\000\002\207\000\000\000\000\006@\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\0017\000\000\000\000\0018\000\000\001\004\0019\001:\000\000\001 \001!\000\000\000\000\000\250\002\158\000\000\004\144\002\159\002\160\004J\002\161\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001`\000\000\004\164\000\000\004y\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004\127\000\000\004P\000\000\004\154\002b\000\000\006?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004w\000\000\000\000\0016\000\000\000\000\000\000\000\000\004\164\002\190\000\000\0017\000\000\000\000\0018\004\144\000\000\0019\001:\004b\004\166\004P\000\000\004\154\002b\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\004\169\001k\000\000\004\170\004y\000\000\000\000\004\166\000\000\000\000\004\155\000\000\000\000\004\127\000\000\000\000\000\000\000\000\002\194\004\184\004\142\002\209\004\157\004\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\004P\004\169\004\154\002b\004\170\000\000\000\000\000\000\004~\000\000\004\144\004\155\004\186\002\158\000\000\000\000\002\159\002\160\000\000\002\161\004\184\000\000\002\209\004\157\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\002\196\004\166\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\004\186\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004}\004\169\000\000\004\164\004\170\000\000\002\207\000\000\000\000\002\190\000\000\004\155\004\161\000\000\000\000\002\214\004P\002\209\004\154\002b\004\184\002\190\002\209\004\157\000\000\000\000\002\191\003\209\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\004\186\000\000\000\000\004\166\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\004\168\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\002\182\004\169\000\000\002b\004\170\000\000\000\000\000\000\000\000\004\144\000\000\004\155\002\182\004~\000\000\002b\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\196\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\004\186\000\000\000\000\002\196\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\004\164\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\207\000\000\000\000\000\000\004P\000\000\004\154\002b\006\192\002\214\000\000\002\209\002\207\000\000\000\000\000\000\006\200\004\175\000\000\000\000\000\000\002\214\000\000\002\209\000\000\002\158\002\190\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\000\000\002\191\003\209\000\000\007\019\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\170\000\000\000\000\000\000\004\181\004y\000\000\004\155\000\000\000\000\000\000\000\000\002\194\002\190\004\127\000\000\004\184\000\000\002\209\004\157\000\000\004\196\000\000\000\000\000\000\002\182\004O\000\000\002b\002\158\002\191\003\209\002\159\002\160\000\000\002\161\000\000\000\000\004~\006\203\000\000\004\154\002b\002\132\000\000\004\186\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\006\195\000\000\000\000\002\182\000\000\000\000\002b\000\000\002\190\000\000\000\000\004J\000\000\004K\004L\002\160\004~\004M\000\000\002\207\000\000\000\000\000\000\004\164\000\000\002\191\003\209\000\000\002\214\000\000\002\209\004y\000\000\004\155\000\000\000\000\004P\000\000\004\154\002b\004\127\000\000\004\156\002\196\002\209\004\157\004J\004\195\004K\004L\002\160\000\000\004M\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\004y\002\194\000\000\000\000\000\000\000\000\004\166\004\144\000\000\004\127\000\000\000\000\000\000\002\207\002\182\002\162\002\189\002b\002\174\002\175\002\180\000\000\002\214\000\000\002\209\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\170\004\201\000\000\004\144\000\000\002\158\000\000\004\155\002\159\002\160\002\190\002\161\000\000\000\000\000\000\002\196\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\004\164\002\191\003\209\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004P\002\158\004\154\002b\002\159\002\160\004\186\002\161\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\004\207\000\000\000\000\002\214\004\164\002\209\000\000\000\000\000\000\002\190\002\162\002\189\002\194\002\174\002\175\002\180\000\000\004P\004\166\004\154\002b\000\000\000\000\000\000\000\000\002\182\002\191\003\209\002b\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\004\169\000\000\000\000\004\170\000\000\004\166\000\000\000\000\000\000\000\000\004\155\000\000\000\000\002\191\003\209\000\000\000\000\002\196\000\000\004\184\002\194\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\005d\002b\000\000\004\170\005e\000\000\000\000\000\000\000\000\000\000\004\155\004~\000\000\004\186\000\000\000\000\000\000\000\000\002\207\004\184\002\194\002\209\004\157\000\000\000\000\000\000\000\000\002\214\002\158\002\209\000\000\002\159\002\160\002\182\002\161\000\000\002b\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\002\196\002\207\000\000\000\000\000\000\000\000\000\000\004\219\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\002\190\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\002\191\003\209\000\000\002\207\000\000\000\000\000\000\000\000\000\000\004\225\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\002\190\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\002\194\000\000\004\231\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\002\190\002\161\002\182\002\158\000\000\002b\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\004~\000\000\002\191\003\209\000\000\000\000\000\000\002\162\002\189\002\194\002\174\002\175\002\180\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\182\000\000\000\000\002b\000\000\002\196\000\000\000\000\000\000\000\000\004\237\000\000\000\000\004~\000\000\000\000\000\000\000\000\004\243\002\190\000\000\000\000\002\194\000\000\000\000\000\000\000\000\002\190\002\158\000\000\000\000\002\159\002\160\000\000\002\161\002\182\002\191\003\209\002b\000\000\002\196\002\207\000\000\000\000\002\191\003\209\000\000\000\000\004~\000\000\002\214\000\000\002\209\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\196\002\207\000\000\002\194\000\000\004\249\000\000\000\000\000\000\000\000\002\214\002\194\002\209\000\000\002\190\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\004~\000\000\002\191\003\209\000\000\000\000\000\000\002\207\004~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\002\158\002\196\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\162\002\189\002\207\002\174\002\175\002\180\000\000\000\000\000\000\004~\002\207\002\214\002\158\002\209\000\000\002\159\002\160\000\000\002\161\002\214\000\000\002\209\000\000\000\000\000\000\004\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\002\196\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\207\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\002\194\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\194\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\002\182\002\196\005\011\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\004~\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\002\158\002\191\003\209\002\159\002\160\000\000\002\161\000\000\000\000\000\000\002\207\000\000\000\000\002\196\005\017\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\002\190\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\002\194\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\000\005\023\000\000\000\000\000\000\002\182\000\000\002\214\002b\002\209\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\000\000\002\194\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\002\182\002\196\000\000\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\194\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\002\207\002\182\000\000\002\196\002b\000\000\005\029\000\000\000\000\002\214\000\000\002\209\000\000\000\000\004~\002\190\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\158\002\191\003\209\002\159\002\160\000\000\002\161\000\000\002\207\000\000\002\196\000\000\000\000\005#\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\002\190\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\000\000\002\194\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\002\214\002\182\002\209\000\000\002b\002\158\002\190\000\000\002\159\002\160\000\000\002\161\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\002\194\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\182\000\000\002\196\002b\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\004~\000\000\000\000\000\000\000\000\005/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\002\190\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\002\207\002\182\002\196\000\000\002b\000\000\002\191\003\209\000\000\002\214\000\000\002\209\000\000\000\000\004~\000\000\000\000\000\000\000\000\0055\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\000\002\196\000\000\000\000\000\000\002\191\003\209\002\214\002\194\002\209\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\000\000\002\207\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\002\214\002\194\002\209\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\002\182\002\196\000\000\002b\000\000\005;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\002\190\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\158\002\191\003\209\002\159\002\160\000\000\002\161\002\207\000\000\000\000\002\196\000\000\000\000\005A\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\000\000\002\194\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\005O\000\000\000\000\002\214\002\182\002\209\000\000\002b\002\158\002\190\000\000\002\159\002\160\000\000\002\161\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\004J\002\194\004K\004L\002\160\000\000\004M\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\182\000\000\002\196\002b\000\000\000\000\004y\000\000\004J\000\000\004K\004L\002\160\004~\004M\004\127\000\000\000\000\005U\000\000\000\000\000\000\005^\000\000\000\000\000\000\002\194\002\190\004y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\002\207\002\182\002\196\000\000\002b\000\000\002\191\003\209\000\000\002\214\004\144\002\209\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\004\144\001\007\000\000\000\000\000\000\000\000\002\207\000\000\001\021\002\196\000\000\000\000\000\000\000\000\000\000\002\214\002\194\002\209\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\004\164\000\000\000\000\004y\000\000\000\000\004~\000\000\000\000\002\207\000\000\000\000\004\127\004P\000\000\004\154\002b\000\000\002\214\005n\002\209\000\000\004\164\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\002\196\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\001\019\000\000\004y\004\144\000\000\000\000\004J\004\166\004K\004L\002\160\004\127\004M\000\000\000\000\000\000\000\000\001\003\005q\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\002\207\000\000\004\166\000\000\000\000\000\000\000\000\000\000\007\177\002\214\004\169\002\209\000\000\004\170\001\004\000\000\000\000\004\144\001 \001!\004\155\000\000\000\250\000\000\000\000\000\255\001\000\001\001\000\000\004\184\001\002\002\209\004\157\001\007\004\164\nI\000\000\000\000\000\000\000\000\001\021\000\000\004\155\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\004\184\000\000\002\209\004\157\000\000\000\000\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\0016\000\000\004\186\000\000\000\000\004\166\000\000\000\000\0017\000\000\004P\0018\004\154\002b\0019\001:\005l\000\000\000\000\000\000\000\000\004O\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\001\019\000\000\004P\004\169\004\154\002b\004\170\000\000\000\000\000\000\004y\001Q\000\000\004\155\004\166\000\000\001k\001\003\000\000\004\127\000\000\001*\004\184\000\000\002\209\004\157\005v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\004\169\001 \001!\004\170\000\000\000\250\000\000\004\186\004\144\000\000\004\155\004J\000\000\004K\004L\002\160\000\000\004M\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\004\156\000\000\002\209\004\157\005y\004\186\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\0016\000\000\000\000\000\000\000\000\004\164\000\000\000\000\0017\000\000\000\000\0018\004\144\004y\0019\001:\005t\000\000\004P\000\000\004\154\002b\004\127\000\000\000\000\000\000\000\000\000\000\000\000\005|\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\004y\000\000\000\000\000\000\004\166\004\144\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\005\127\000\000\000\000\000\000\004\164\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\004P\004\169\004\154\002b\004\170\000\000\000\000\000\000\000\000\004\144\004y\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\004\184\000\000\002\209\004\157\000\000\000\000\005\131\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004\186\000\000\000\000\004\144\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\004\169\004\164\000\000\004\170\000\000\001\021\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\166\004P\000\000\004\154\002b\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\004\169\004\164\000\000\004\170\000\000\004\186\000\000\004\166\000\000\004y\004\155\000\000\000\000\000\000\004P\000\000\004\154\002b\004\127\004\184\000\000\002\209\004\157\000\000\000\000\005\136\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\004\155\004\186\001\003\004\166\004\144\000\000\001*\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\004\169\000\250\000\000\004\170\004y\004\186\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\004\184\005\139\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\004\164\004J\000\000\004K\004L\002\160\004J\004M\004K\004L\002\160\000\000\004M\004P\000\000\004\154\002b\004\144\000\000\004\186\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\004\127\000\000\000\000\000\000\000\000\007\011\0017\005\142\000\000\0018\000\000\000\000\0019\001:\005\134\000\000\000\000\000\000\004J\004\166\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\144\000\000\000\000\000\000\000\000\004y\000\000\000\000\001Q\000\000\000\000\000\000\004\164\001k\004\127\000\000\004\169\000\000\000\000\004\170\000\000\005\145\000\000\000\000\000\000\004P\004\155\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\004\144\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\004\164\000\000\000\000\004\166\000\000\004O\004\186\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\004\169\001\007\000\000\004\170\000\000\000\000\000\000\000\000\001\021\000\000\004\155\000\000\000\000\000\000\004\164\000\000\004\166\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004\186\004\170\000\000\001\003\000\000\000\000\000\000\001*\004\155\000\000\000\000\000\000\000\000\004\155\000\000\004\166\000\000\004\184\000\000\002\209\004\157\000\000\004\156\000\000\002\209\004\157\000\000\001\004\000\000\000\000\001\019\001 \001!\000\000\004J\000\250\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\004\169\004\186\001\003\004\170\000\000\000\000\001*\000\000\000\000\004y\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\004\184\000\000\002\209\004\157\000\000\000\000\005\169\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\0016\000\000\004\186\000\000\000\000\004\144\000\000\000\000\0017\004y\000\000\0018\000\000\000\000\0019\001:\005\151\000\000\004\127\000\000\004J\000\000\004K\004L\002\160\005\172\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\001Q\0016\000\000\000\000\000\000\001k\004\127\000\000\004\144\0017\000\000\000\000\0018\005\175\000\000\0019\001:\005\167\000\000\000\000\004\164\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004\144\000\000\004y\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\004\127\000\000\000\000\000\000\000\000\000\000\000\000\005\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\004\166\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\004P\000\000\004\154\002b\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\004\164\000\000\004\169\004\127\000\000\004\170\000\000\000\000\000\000\000\000\005\182\000\000\004\155\004P\000\000\004\154\002b\000\000\004\166\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\002\158\000\000\004\144\002\159\002\160\000\000\002\161\000\000\000\000\000\000\004\164\000\000\000\000\000\000\004\169\004\166\004\186\004\170\000\000\000\000\000\000\000\000\000\000\004P\004\155\004\154\002b\002\162\0044\000\000\002\174\002\175\002\180\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\170\000\000\004J\000\000\004K\004L\002\160\004\155\004M\000\000\000\000\004\166\004\164\000\000\004\186\000\000\004\184\000\000\002\209\004\157\000\000\000\000\004y\000\000\000\000\004P\000\000\004\154\002b\000\000\004J\004\127\004K\004L\002\160\000\000\004M\000\000\005\191\000\000\000\000\004\169\000\000\000\000\004\170\004\186\001\003\000\000\000\000\000\000\004y\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\004\184\004\166\002\209\004\157\004\144\000\000\005\194\000\000\000\000\000\000\001\004\000\000\002\181\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\nf\000\000\000\000\000\000\002\182\000\000\000\000\002b\004\186\000\000\004\169\004\144\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\002\158\000\000\t\208\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\004\186\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\004\164\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\207\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\002\208\004\166\002\209\000\000\000\000\000\000\005\221\ng\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\002\158\t\210\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\004\169\002\191\003\209\004\170\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\005\230\004\155\000\000\000\000\000\000\000\000\002\194\000\000\000\000\002\190\004\184\004\186\002\209\004\157\002\158\000\000\000\000\002\159\002\160\002\182\002\161\000\000\002b\000\000\000\000\000\000\002\191\003\209\000\000\000\000\000\000\000\000\004~\000\000\004J\000\000\004K\004L\002\160\004\186\004M\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\002\158\002\196\000\000\002\159\002\160\004\127\002\161\000\000\005\239\000\000\002\194\000\000\005\243\000\000\000\000\000\000\000\000\002\190\004J\000\000\004K\004L\002\160\002\182\004M\000\000\002b\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\191\003\209\004~\002\207\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\0061\002\209\000\000\000\000\000\000\005\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\002\196\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\002\194\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\002\182\000\000\000\000\002b\000\000\000\000\000\000\004\164\004\127\000\000\002\207\000\000\000\000\004~\000\000\005\252\000\000\000\000\000\000\002\214\004P\002\209\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\004J\000\000\004K\004L\002\160\000\000\004M\002\158\002\196\004\144\002\159\002\160\002\182\002\161\000\000\002b\000\000\004O\000\000\000\000\004y\000\000\000\000\000\000\004\166\004~\000\000\000\000\000\000\004\127\004P\000\000\004\154\002b\002\162\002\189\006\005\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\196\002\214\004\169\002\209\000\000\004\170\000\000\006\002\000\000\000\000\004\144\000\000\004\155\000\000\000\000\004\164\002\190\000\000\000\000\000\000\0063\004\184\000\000\002\209\004\157\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\002\191\003\209\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\004\186\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\156\004\166\002\209\004\157\000\000\004\164\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\158\000\000\004\169\002\159\002\160\004\170\002\161\002\158\000\000\004~\002\159\002\160\004\155\002\161\002\158\000\000\000\000\002\159\002\160\000\000\002\161\004\184\000\000\002\209\004\157\004\166\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\162\002\189\002\196\002\174\002\175\002\180\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\004\186\000\000\006\011\000\000\000\000\004\169\000\000\000\000\004\170\006\022\000\000\002\190\000\000\000\000\000\000\004\155\006\031\000\000\002\190\000\000\000\000\000\000\002\207\000\000\004\184\002\190\002\209\004\157\002\191\003\209\000\000\002\214\000\000\002\209\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\186\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\002\194\004y\000\000\000\000\000\000\000\000\002\182\002\194\000\000\002b\004\127\000\000\000\000\002\182\000\000\000\000\002b\006D\000\000\004~\002\182\000\000\000\000\002b\002\158\000\000\004~\002\159\002\160\000\000\002\161\002\158\000\000\004~\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\004\144\000\000\000\000\002\196\000\000\000\000\000\000\000\000\002\162\002\189\002\196\002\174\002\175\002\180\000\000\002\162\002\189\002\196\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006(\000\000\000\000\000\000\000\000\000\000\002\207\006/\000\000\002\190\000\000\000\000\000\000\002\207\000\000\002\214\002\190\002\209\000\000\000\000\002\207\000\000\002\214\000\000\002\209\004\164\002\191\003\209\000\000\002\214\000\000\002\209\000\000\002\191\003\209\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\002\194\000\000\000\000\004y\004\127\000\000\004\166\002\194\000\000\000\000\000\000\006F\004\127\002\182\000\000\000\000\002b\000\000\000\000\006K\002\182\000\000\000\000\002b\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\000\000\004\169\004\144\000\000\004\170\000\000\000\000\000\000\000\000\000\000\004\144\004\155\000\000\000\000\000\000\000\000\000\000\000\000\002\196\000\000\004\184\000\000\002\209\004\157\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\186\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\004\164\002\207\004y\002\214\000\000\002\209\000\000\000\000\004\164\000\000\002\214\004\127\002\209\004P\000\000\004\154\002b\000\000\006N\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\004\144\000\000\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\170\000\000\006Y\000\000\000\000\004\169\000\000\004\155\004\170\000\000\000\000\002\190\000\255\001\000\001\001\004\155\004\184\001\002\002\209\004\157\004\164\007q\000\000\000\000\004\184\000\000\002\209\004\157\002\191\003\209\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\186\002\158\001\219\000\000\002\159\002\160\000\000\002\161\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\004\166\002\194\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\001\003\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\004~\000\000\006^\004\169\000\000\000\000\004\170\000\000\000\000\000\000\000\000\002\190\000\000\004\155\000\000\001\004\000\000\006j\001\003\001 \001!\000\000\004\184\000\250\002\209\004\157\002\190\002\196\002\191\003\209\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\001\004\002\191\003\209\000\000\001 \001!\000\000\000\000\000\250\004\186\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\002\207\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\002\214\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006r\002\182\000\000\002\194\002b\0017\000\000\000\000\0018\002\190\000\000\0019\001:\000\000\004~\007\132\002\182\002\158\000\000\002b\002\159\002\160\000\000\002\161\000\000\b\225\002\191\003\209\000\000\004~\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\007\135\002\196\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\196\000\000\000\000\b\226\000\000\b\227\000\000\000\000\000\000\000\000\000\000\001`\002\194\006z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\207\002\190\000\000\000\000\002\182\000\000\000\000\002b\000\000\002\214\000\000\002\209\000\000\000\000\000\000\002\207\000\000\004~\002\191\003\209\b\228\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\229\002\162\002\189\002\194\002\174\002\175\002\180\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\002\182\b\230\b\231\002b\b\232\000\000\000\000\002\207\000\000\000\000\006\129\000\000\000\000\004~\000\000\000\000\002\214\000\000\002\209\002\190\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\158\t,\000\000\002\159\002\160\000\000\002\161\000\000\002\191\003\209\000\000\000\000\002\196\000\000\000\000\000\000\000\000\006\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\002\162\002\189\b\234\002\174\002\175\002\180\b\235\000\000\000\000\b\237\000\000\000\000\b\243\b\255\000\000\000\000\002\191\003\209\000\000\000\000\000\000\002\207\000\000\002\194\000\000\006\140\t*\000\000\000\000\000\000\002\214\000\000\002\209\000\000\002\190\000\000\002\182\002\158\000\000\002b\002\159\002\160\000\000\002\161\000\000\000\000\000\000\t+\000\000\004~\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\182\000\000\000\000\002b\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\000\000\000\000\000\000\006\147\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\002\190\002\158\000\000\000\000\002\159\002\160\000\000\002\161\002\182\000\000\000\000\002b\000\000\002\196\002\207\000\000\000\000\002\191\003\209\000\000\000\000\004~\000\000\002\214\000\000\002\209\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\002\196\002\207\000\000\000\000\000\000\006\166\000\000\000\000\000\000\000\000\002\214\002\194\002\209\000\000\002\190\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\002\191\003\209\000\255\001\000\001\001\002\207\004~\001\002\000\000\006\180\001\132\000\000\000\000\000\000\002\214\000\000\002\209\000\000\002\190\000\000\000\000\002\158\000\000\000\000\002\159\002\160\b\225\002\161\000\000\000\000\000\000\000\000\000\000\002\196\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\182\000\000\000\000\002b\000\000\b\226\000\000\b\227\000\000\000\000\000\000\000\000\000\000\004~\002\207\000\000\000\000\000\000\006\211\000\000\000\000\000\000\002\194\002\214\000\000\002\209\004J\002\190\004K\004L\002\160\000\000\004M\000\000\000\000\002\182\000\000\000\000\002b\000\000\002\196\000\000\000\000\b\228\002\191\003\209\004y\000\000\004~\001\003\000\000\000\000\000\000\000\000\004J\004\127\004K\004L\002\160\000\000\004M\000\000\006\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\004y\002\196\002\207\001 \001!\000\000\b\229\000\250\000\000\004\127\000\000\002\214\002\194\002\209\004\144\000\000\006\219\000\000\000\000\000\000\000\000\000\000\000\000\b\230\b\231\002\182\b\232\000\000\002b\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\002\207\004~\000\000\000\000\000\000\004\144\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\b\233\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\0017\004\164\000\000\0018\000\000\000\000\0019\001:\b\234\000\000\000\000\006\227\b\235\000\000\004P\b\237\004\154\002b\b\243\b\255\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\002\207\000\000\t*\000\000\000\000\001Q\000\000\002\191\003\209\002\214\000\000\002\209\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\004\166\000\000\000\000\t+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\166\002\194\004\169\000\000\002\158\004\170\000\000\002\159\002\160\000\000\002\161\000\000\004\155\000\000\002\182\000\000\002\158\002b\000\000\002\159\002\160\004\184\002\161\002\209\004\157\000\000\000\000\004~\000\000\000\000\004\169\002\162\002\189\004\170\002\174\002\175\002\180\000\000\000\000\000\000\004\155\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\004\184\004\186\002\209\004\157\000\000\002\196\000\000\006\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\006\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\004\186\000\000\000\000\002\158\002\191\003\209\002\159\002\160\000\000\002\161\000\000\000\000\002\207\000\000\000\000\000\000\002\191\003\209\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\001\000\000\000\000\002\194\002\182\000\000\000\000\002b\002\158\002\190\000\000\002\159\002\160\000\000\002\161\000\000\002\182\004~\000\000\002b\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\004~\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\002\196\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\002\196\000\000\000\000\000\000\007\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\002\190\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\002\207\002\182\000\000\000\000\002b\000\000\002\191\003\209\000\000\002\214\000\000\002\209\002\207\000\000\004~\000\000\000\000\000\000\000\000\007\015\000\000\002\214\000\000\002\209\000\000\000\000\000\000\000\000\002\190\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\002\196\000\000\000\000\000\000\002\191\003\209\000\000\002\194\000\000\000\000\004y\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\004\127\002\182\000\000\000\000\002b\000\000\000\000\007<\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\000\000\002\207\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\002\214\002\194\002\209\000\000\000\000\002\158\000\000\004\144\002\159\002\160\000\000\002\161\000\000\000\000\002\182\002\196\t\221\002b\000\000\007\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\002\190\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\t\222\000\000\000\000\000\000\t\224\000\000\002\158\002\191\003\209\002\159\002\160\000\000\002\161\002\207\t\225\000\000\002\196\000\000\000\000\007#\000\000\000\000\002\214\000\000\002\209\000\000\000\000\004\164\002\190\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004P\000\000\004\154\002b\000\000\002\191\003\209\000\000\000\000\002\194\t\226\000\000\002\207\004J\000\000\004K\004L\002\160\007.\004M\000\000\002\214\002\182\002\209\000\000\002b\000\000\002\190\000\000\000\000\000\000\000\000\000\000\004y\000\000\004~\004\166\000\000\000\000\000\000\000\000\000\000\004\127\000\000\002\191\003\209\000\000\002\194\t\227\007I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\002\196\002b\000\000\t\228\004\169\000\000\000\000\004\170\000\000\000\000\000\000\004~\000\000\004\144\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\002\194\002\209\004\157\000\000\004J\t\229\004K\004L\002\160\000\000\004M\000\000\002\207\002\182\002\196\000\000\002b\000\000\000\000\000\000\000\000\002\214\t\230\002\209\004y\000\000\004~\000\000\004\186\000\000\000\000\000\000\000\000\004\127\t\231\000\000\000\000\000\000\t\232\000\000\007\143\t\234\000\000\000\000\t\239\000\000\000\000\004\164\000\000\000\000\002\207\000\000\000\000\002\196\000\000\000\000\000\000\000\000\t\241\002\214\004P\002\209\004\154\002b\000\000\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\242\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\002\214\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\004\169\000\000\000\000\004\170\000\000\000\000\000\000\007\162\000\000\000\000\004\155\004P\000\000\004\154\002b\000\000\002\190\000\000\000\000\004\184\000\000\002\209\004\157\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\002\158\002\191\003\209\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\166\004\186\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\007\168\004\169\000\000\000\000\004\170\000\000\000\000\000\000\007\194\002\190\000\000\004\155\002\182\000\000\000\000\002b\000\000\002\190\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004~\002\191\003\209\000\000\t\221\000\000\000\000\000\000\000\000\002\191\003\209\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\004J\002\161\004K\004L\002\160\004\186\004M\t\222\002\196\000\000\000\000\t\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\t\225\002\162\002\189\002\194\002\174\002\175\002\180\000\000\004\127\000\000\000\000\002\194\000\000\000\000\000\000\b\001\002\182\000\000\000\000\002b\000\000\000\000\000\000\002\207\002\182\000\000\007\199\002b\000\000\004~\000\000\000\000\002\214\000\000\002\209\002\190\t\226\004~\000\000\000\000\000\000\004\144\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\002\191\003\209\000\000\000\000\002\196\000\000\001\021\000\000\000\000\000\000\000\000\000\000\002\196\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\t\227\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\t\228\002\207\000\000\002\194\000\000\000\000\000\000\004\127\004\164\002\207\002\214\000\000\002\209\000\000\000\000\000\000\002\182\000\000\002\214\002b\002\209\004P\000\000\004\154\002b\000\000\t\246\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\255\001\000\001\001\001\019\000\000\001\002\004\144\000\000\001\007\t\230\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\001\003\t\231\002\196\004\166\001*\t\232\000\000\000\000\t\234\000\000\000\000\t\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\t\241\000\000\000\000\001 \001!\000\000\000\000\000\250\004\169\000\000\000\000\004\170\000\000\002\207\000\000\000\000\000\000\000\000\004\155\004\164\000\000\t\242\002\214\000\000\002\209\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004P\000\000\004\154\002b\000\255\001\000\001\001\000\000\001\019\001\002\000\000\000\000\001\007\000\255\001\000\001\001\000\000\000\000\001\002\001\021\000\000\001\007\000\000\000\000\004\186\001\003\000\000\000\000\001\021\001*\000\000\0016\000\000\000\000\000\000\000\000\004\166\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\b\017\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\007\210\001\002\000\000\000\000\001\007\001Q\000\000\004\155\000\000\000\000\001k\001\021\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\0016\004\186\001\003\000\000\000\000\000\000\001*\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\bp\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\0016\001 \001!\004y\000\000\000\250\000\000\000\000\0017\0016\000\000\0018\004\127\000\000\0019\001:\b|\0017\000\000\tB\0018\000\000\000\000\0019\001:\b\150\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\004\144\004y\000\000\001k\000\000\000\000\000\000\001Q\000\000\000\000\004\127\000\000\001k\000\000\000\000\000\000\0016\tE\000\255\001\000\001\001\000\000\000\000\001\002\0017\000\000\001\007\0018\000\000\000\000\0019\001:\b\166\001\021\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\004\164\001Q\000\000\000\000\000\000\004\127\001k\000\000\000\000\000\000\000\000\000\000\tT\004P\000\000\004\154\002b\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\144\004y\000\000\000\000\000\000\004\164\000\000\001\019\000\000\000\000\004\127\004\166\000\000\000\000\000\000\000\000\000\000\tW\004P\000\000\004\154\002b\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004\144\004\170\000\000\000\000\000\000\001\004\000\000\000\000\004\155\001 \001!\004\166\000\000\000\250\000\000\004\164\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\004\169\001\002\000\000\004\170\001\007\004\186\000\000\000\000\000\000\000\000\004\155\001\021\000\000\000\000\000\000\000\000\000\000\004\164\000\000\004\184\000\000\002\209\004\157\004\166\000\000\000\000\000\000\000\000\0016\000\000\004P\000\000\004\154\002b\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\tP\000\000\000\000\000\000\004\186\000\000\000\255\001\000\001\001\004\169\000\000\001\002\004\170\000\000\001B\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\166\000\000\000\000\000\000\000\000\001Q\004\184\000\000\002\209\004\157\001k\000\000\000\000\000\000\000\000\001\019\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\001\003\004\170\000\000\004\186\001*\004y\000\000\004J\004\155\004K\004L\002\160\000\000\004M\004\127\000\000\000\000\004\184\000\000\002\209\004\157\td\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\004J\000\250\004K\004L\002\160\006\192\004M\000\000\000\000\000\000\000\000\000\000\000\000\006\200\000\000\004\186\004\144\000\000\000\000\000\000\004y\000\000\000\000\001\003\004J\000\000\004K\004L\002\160\004\127\004M\000\000\000\000\000\000\000\000\000\000\tg\000\000\000\000\000\000\000\000\000\000\000\000\006\201\004y\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\004\127\000\000\000\250\000\000\0016\000\000\000\000\t|\000\000\004\144\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\tb\004\164\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\004\144\004P\000\000\004\154\002b\000\000\001\021\000\000\000\000\000\000\004O\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\000\000\006\203\000\000\004\154\002b\002\132\000\000\000\000\000\000\000\000\000\000\0017\004\164\000\000\0018\004\166\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\195\004\169\001Q\000\000\004\170\004P\000\000\004\154\002b\000\000\001\019\004\155\000\000\000\000\000\000\000\000\000\000\004\166\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\004\155\004J\000\000\004K\004L\002\160\000\000\004M\004\166\004\156\000\000\002\209\004\157\000\000\004\169\000\000\004\186\004\170\001\004\000\000\000\000\004y\001 \001!\004\155\004J\000\250\004K\004L\002\160\004\127\004M\000\000\004\184\000\000\002\209\004\157\t\127\004\169\000\000\000\000\004\170\000\000\000\000\000\000\004y\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\004\184\000\000\002\209\004\157\t\131\004\186\004\144\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\0016\000\000\000\000\000\000\004\186\004\144\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\tz\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\004\164\001\021\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\001\019\000\000\000\000\002\158\000\000\000\000\002\159\002\160\004P\002\161\004\154\002b\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\004\166\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\001\004\001\019\000\000\004\166\001 \001!\000\000\000\000\000\250\004\169\000\000\000\000\004\170\000\000\nH\000\000\000\000\000\000\001\003\004\155\000\000\000\000\001*\002\190\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004\169\000\000\000\000\004\170\000\000\000\000\000\000\002\191\003\209\001\004\004\155\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\004\184\000\000\002\209\004\157\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\n3\004\186\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\002\158\000\000\002b\002\159\002\160\000\000\002\161\000\000\000\000\000\000\0016\001Q\004~\000\000\000\000\000\000\001k\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\n=\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\002\158\002\196\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nW\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\002\190\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\207\000\000\000\000\002\191\003\209\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\n[\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\002\190\000\000\001\007\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\209\000\000\000\000\002\194\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\002\182\000\000\000\000\002b\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\002\196\002b\000\255\001\000\001\001\001\019\000\000\001\002\000\000\000\000\001\007\004~\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\002\207\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\002\214\001\004\002\209\000\000\000\000\001 \001!\001\003\000\000\000\250\000\000\001*\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\000\000\000\000\000\000\002\207\001\021\001\004\000\000\000\000\000\000\001 \001!\000\000\002\214\000\250\002\209\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\no\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\0016\000\000\000\255\001\000\001\001\001\019\000\000\001\002\0017\000\000\001\007\0018\000\000\001Q\0019\001:\n\165\001\021\001k\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001*\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001\004\000\000\001k\004y\001 \001!\0016\004J\000\250\004K\004L\002\160\004\127\004M\0017\000\000\000\000\0018\000\000\011/\0019\001:\n\202\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\004\127\004M\000\000\000\000\000\000\001\019\000\000\0111\000\000\004\144\000\000\000\000\000\000\001Q\000\000\004y\000\000\000\000\001k\000\000\000\000\000\000\001\003\000\000\004\127\000\000\001*\000\000\0016\000\000\000\000\000\000\000\000\004\144\000\000\007\172\0017\000\000\000\000\0018\000\000\000\000\0019\001:\011&\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001k\000\000\000\000\000\000\004P\002\158\004\154\002b\002\159\002\160\000\000\002\161\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\002\162\002\189\0016\002\174\002\175\002\180\000\000\004\164\004\166\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\002\190\000\000\002\158\000\000\004\169\002\159\002\160\004\170\002\161\000\000\000\000\001Q\000\000\000\000\004\155\000\000\001\240\002\191\002\225\000\000\000\000\000\000\004\166\004\184\000\000\002\209\004\157\000\000\004\169\002\162\002\189\004\170\002\174\002\175\002\180\000\000\000\000\000\000\004\155\000\000\003\020\000\000\000\000\000\255\001\000\001\001\000n\004\184\001\002\002\209\004\157\001\007\004\186\000\000\000\000\007\174\000\000\000\000\001\021\002\194\000\000\000\000\004\155\002\190\002\158\000\000\000\000\002\159\002\160\000\000\002\161\004\184\002\182\002\209\004\157\002b\004\186\000\000\000\000\000\000\002\191\002\255\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\004\186\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\002\196\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\002\253\002\194\000\000\000\000\002\190\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\002\191\002\255\002\190\001\003\000\000\000\000\002\207\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\002\158\002\191\002\255\002\159\002\160\000\000\002\161\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\002\196\000\000\000\250\000\000\000\000\000\000\000\255\001\000\001\001\002\194\000\000\001\002\002\162\002\189\001\007\002\174\002\175\002\180\000\000\000\000\000\000\001\021\002\182\003\001\000\000\002b\000\000\000\000\002\194\000\000\000\000\004J\000\000\004K\004L\002\160\002\207\004M\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\214\002\190\002\209\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\004\127\000\000\002\196\002\191\002\255\000\000\0017\000\000\000\000\0018\000\000\0072\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\004\144\000\000\000\000\000\000\000\000\002\207\000\000\000\000\001Q\000\000\000\000\000\000\002\194\003}\002\214\001\003\002\209\000\000\000\000\001*\000\000\000\000\000\000\000\000\002\207\002\182\000\000\000\000\002b\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\004J\000\250\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\000\000\002\158\002\196\004y\002\159\002\160\000\000\002\161\004P\000\000\004\154\002b\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007&\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\207\000\000\0016\000\255\001\000\001\001\004\166\004\144\001\002\002\214\0017\002\209\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\223\0074\000\000\002\191\003\209\000\000\000\000\001Q\004\155\000\000\000\000\000\000\003\127\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\002\158\000\000\000\000\002\159\002\160\004\164\002\161\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\004P\000\000\004\154\002b\000\000\002\194\004\186\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\002\182\002\162\002\189\002b\002\174\002\175\002\180\000\000\000\000\001\003\000\000\000\000\000\000\006\220\000\000\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\000\000\000\000\000\002\190\004J\000\000\004K\004L\002\160\000\000\004M\001\004\000\000\002\190\000\000\001 \001!\000\000\002\196\000\250\002\191\003\232\000\000\000\000\004y\000\000\000\000\000\000\000\000\007(\002\191\004'\000\000\004\127\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0067\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\002\214\000\000\002\209\004\144\004J\000\000\004K\004L\002\160\002\194\004M\004\186\002\182\000\000\000\000\002b\000\000\000\000\000\000\000\000\0017\000\000\002\182\0018\004y\002b\0019\001:\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0066\000\000\003\242\000\000\000\000\000\000\000\000\000\000\002\196\000\000\004/\001`\000\000\000\000\000\000\000\000\000\000\004\164\002\196\000\000\000\000\004J\004\144\004K\004L\002\160\000\000\004M\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\002\158\002\207\000\000\002\159\002\160\000\000\002\161\004\127\000\000\000\000\002\214\002\207\002\209\000\000\000\000\000\000\000\000\000\000\005\199\000\000\002\214\000\000\002\209\004\166\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\004\164\002\158\000\000\004\144\005Z\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\005\201\000\000\000\000\000\000\000\000\002\190\000\000\004\155\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004\184\000\000\002\209\004\157\000\000\000\000\002\191\003\209\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\002\190\000\000\004\186\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\004P\000\000\004\154\002b\000\000\002\191\002\225\000\000\005\201\002\194\000\000\000\000\004y\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\004\127\002\182\000\000\004\184\002b\002\209\004\157\000\000\000\000\000\000\000\000\005\203\000\000\000n\004\163\004\166\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\002\194\000\000\000\000\000\000\000\000\000\000\004\186\004\144\000\000\000\000\000\000\000\000\004y\002\182\000\000\002\196\002b\000\000\000\000\000\000\000\000\004\127\005\201\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\005\205\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\002\196\004\144\004J\000\000\004K\004L\002\160\002\214\004M\002\209\000\000\000\000\004\164\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004\127\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\005\208\000\000\000\000\002\214\000\000\002\209\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\004\164\000\000\004\166\000\000\000\000\004\144\000\000\000\000\000\000\000\000\004y\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\215\000\000\000\000\000\000\000\000\005\201\000\000\004J\000\000\004K\004L\002\160\004\155\004M\000\000\000\000\000\000\000\000\000\000\004\166\000\000\004\184\004\144\002\209\004\157\000\000\000\000\004y\000\000\t\221\000\000\000\000\000\000\004\164\000\000\000\000\004\127\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\004P\005\224\004\154\002b\004\186\t\222\005\201\000\000\000\000\t\224\000\000\004y\000\000\004\155\000\000\000\000\000\000\000\000\000\000\t\225\004\127\000\000\004\184\004\144\002\209\004\157\000\000\000\000\000\000\000\000\000\000\005\233\000\000\000\000\004\164\000\000\004\166\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\004P\000\000\004\154\002b\004\186\000\000\004\144\000\000\t\226\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\006\016\000\000\000\000\004\164\000\000\004\166\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\t\227\004P\000\000\004\154\002b\000\000\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\228\004\164\000\000\000\000\004\186\004J\005\201\004K\004L\002\160\000\000\004M\000\000\004\155\004P\000\000\004\154\002b\000\000\000\000\004\166\000\000\004\184\000\000\002\209\004\157\n\000\004J\000\000\004K\004L\002\160\000\000\004M\007\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\230\000\000\000\000\000\000\004y\004\164\000\000\004\166\004\186\000\000\005\201\000\000\t\231\004\127\000\000\000\000\t\232\004\155\004P\t\234\004\154\002b\t\239\000\000\006\025\000\000\004\184\000\000\002\209\004\157\000\000\004J\000\000\004K\004L\002\160\t\241\004M\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\004\144\004\155\000\000\000\000\000\000\004y\000\000\000\000\004\166\004\186\004\184\t\242\002\209\004\157\004\127\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\006\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\004O\000\000\000\000\004\186\000\000\005\201\000\000\000\000\004\127\000\000\000\000\004\144\004\155\004P\000\000\004\154\002b\000\000\000\000\006:\000\000\004\184\004\164\002\209\004\157\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004\144\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\004\186\000\000\000\000\000\000\004J\004\127\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\006=\000\000\000\000\004\164\000\000\004\166\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\004\127\004\154\002b\000\000\000\000\004\144\004\155\000\000\000\000\000\000\000\000\006\157\000\000\000\000\000\000\004\156\004\164\002\209\004\157\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\004\155\004P\000\000\004\154\002b\004\144\000\000\004\166\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\007\000\000\000\000\004\164\000\000\004\166\004\186\001\021\005\201\000\000\000\000\000\000\000\255\001\000\001\001\004\155\004P\001\002\004\154\002b\b\200\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\004\164\000\000\000\000\000\255\001\000\001\001\000\000\005\201\001\002\000\000\000\000\b\200\000\000\004P\004\155\004\154\002b\000\000\000\000\000\000\000\000\004\166\004\186\004\184\000\000\002\209\004\157\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\004y\004\166\000\000\000\000\004\186\000\000\005\201\000\000\004J\004\127\004K\004L\002\160\004\155\004M\001\003\000\000\000\000\b\202\001*\006\170\000\000\004\184\000\000\002\209\004\157\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\006\159\001\003\000\000\004\127\000\000\001\004\b\202\004\155\004\144\001 \001!\000\000\000\000\000\250\006\183\000\000\004\184\004\186\002\209\004\157\000\000\000\000\000\000\001\003\000\000\b\205\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\253\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\186\000\000\b\205\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\004P\0018\004\154\002b\0019\001:\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\b\200\004\164\000\000\000\000\0017\000\000\000\000\b\208\000\000\000\000\0019\001:\000\000\000\000\004P\000\000\004\154\002b\000\000\001Q\000\000\000\000\004\166\b\153\007^\b\212\0017\b\210\000\000\b\208\000\000\000\000\0019\001:\000\000\000\255\001\000\001\001\000\000\001Q\001\002\000\000\000\000\b\200\000\000\b\153\000\000\b\211\000\000\b\210\004\166\000\000\000\000\000\000\000\000\006\172\000\000\000\000\000\000\000\000\000\000\001Q\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\b\202\000\000\000\000\000\000\002\158\000\000\006\185\002\159\002\160\000\000\002\161\000\000\000\000\004\155\000\000\000\000\000\000\001\003\000\000\000\000\000\000\000\000\004\184\004\186\002\209\004\157\000\000\000\000\th\000\000\000\000\002\162\0044\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\b\205\000\000\b\202\000\000\001 \001!\000\000\000\000\000\250\000\253\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\0045\000\000\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\000\000\001 \001!\000\000\t\128\000\250\000\253\002\162\0044\000\000\002\174\002\175\002\180\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\b\200\000\000\000\000\000\000\000\000\0017\000\000\000\000\b\208\000\000\000\000\0019\001:\000\000\000\000\002\158\002\181\0045\002\159\002\160\000\000\002\161\000\000\000\000\b\153\000\000\b\209\000\000\b\210\002\182\000\000\000\000\002b\000\000\000\000\000\000\000\255\001\000\001\001\000\000\001Q\001\002\002\162\0044\b\200\002\174\002\175\002\180\0017\000\000\000\000\b\208\000\000\000\000\0019\001:\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\b\153\000\000\b\221\0046\b\210\002\158\000\000\000\000\002\159\002\160\b\202\002\161\002\181\000\000\000\000\000\000\001Q\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\182\000\000\001\003\002b\005`\005f\000\000\002\162\003\b\000\000\002\174\002\175\002\180\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\208\000\000\002\209\000\000\b\205\002\190\000\000\b\202\001 \001!\000\000\002\158\000\250\000\253\002\159\002\160\000\000\002\161\000\000\0046\000\000\002\181\002\191\011m\001\003\011o\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\162\002\189\000\000\002\174\002\175\002\180\000\000\005`\005f\000\000\b\205\000\000\000\000\000\000\001 \001!\002\207\000\000\000\250\000\253\000\000\000\000\000\000\000\000\000\000\002\208\002\194\002\209\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\t\155\0017\002\182\002\181\b\208\002b\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\002\191\n:\002\182\000\000\000\000\002b\b\153\000\000\t\181\000\000\b\210\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\002\207\001Q\000\000\000\000\000\000\000\000\000\000\002\196\000\000\002\208\0017\002\209\000\000\b\208\000\000\000\000\0019\001:\000\000\002\162\002\189\002\194\002\174\002\175\002\180\t\168\000\000\000\000\000\000\b\153\000\000\t\205\000\000\b\210\002\182\000\000\004J\002b\004K\004L\002\160\000\000\004M\002\207\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\002\214\002\190\002\209\002\158\004y\002\207\002\159\002\160\000\000\002\161\000\000\000\000\000\000\004\127\002\208\000\000\002\209\000\000\002\191\n,\000\000\002\158\002\196\000\000\002\159\002\160\000\000\002\161\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\144\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\207\000\000\002\194\000\000\000\000\003\025\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\003\026\003\030\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\003\t\000\000\002\158\000\000\004\164\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\002\196\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\182\000\000\000\000\002b\002\158\002\194\000\000\002\159\002\160\000\000\002\161\000\000\000\000\002\207\000\000\000\000\000\000\004\166\002\182\000\000\000\000\002b\002\214\000\000\002\209\000\000\000\000\003\005\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\003\031\000\000\000\000\000\000\002\158\002\191\003\007\002\159\002\160\000\000\002\161\007\163\000\000\000\000\000\000\000\000\000\000\000\000\004\155\002\196\000\000\000\000\000\000\000\000\000\000\000\000\002\190\004\184\000\000\002\209\004\157\002\162\002\189\000\000\002\174\002\175\002\180\002\207\000\000\000\000\000\000\000\000\000\000\002\191\003\004\000\000\002\214\002\194\002\209\000\000\000\000\000\000\000\000\000\000\000\000\002\207\004\186\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\214\002\190\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\249\000\000\002\194\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\002\182\000\000\002\196\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\194\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\002\207\002\182\002\196\000\000\002b\000\000\000\000\000\000\000\000\002\214\000\000\002\209\002\190\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\158\002\191\002\192\002\159\002\160\000\000\002\161\000\000\000\000\000\000\002\207\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\002\190\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\002\158\002\191\002\195\002\159\002\160\002\194\002\161\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\002\214\002b\002\209\002\190\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\002\196\002b\000\000\002\190\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\213\000\000\002\158\002\194\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\006\244\000\000\002\207\002\182\002\196\000\000\002b\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\002\207\002\182\000\000\002\196\002b\000\000\000\000\000\000\000\000\002\214\002\190\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\191\002\246\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\002\207\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\004O\000\000\002\190\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004P\000\000\004\154\002b\000\000\002\194\002\191\002\238\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\214\000\000\002\209\000\000\000\000\002\190\000\255\001\000\001\001\000\000\000\000\001\002\000\000\002\158\001H\000\000\002\159\002\160\000\000\002\161\000\000\000\000\002\191\002\243\000\000\002\158\002\194\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\002\196\000\000\000\000\002\182\002\162\002\189\002b\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\002\162\002\189\004\155\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\004\156\002\194\002\209\004\157\004J\000\000\004K\004L\002\160\002\207\004M\002\190\000\000\000\000\002\182\000\000\002\196\002b\002\214\000\000\002\209\000\000\003\025\000\000\004y\000\000\000\000\000\000\002\191\003\028\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\003+\003\030\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\004\144\000\000\000\000\001\004\002\194\000\000\000\000\001 \001!\002\158\000\000\000\250\002\159\002\160\000\000\002\161\002\194\002\182\000\000\002\158\002b\000\000\002\159\002\160\002\207\002\161\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\214\000\000\002\209\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\002\196\004\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\031\003\025\000\000\004P\000\000\004\154\002b\0017\000\000\000\000\0018\003\025\000\000\0019\001:\000\000\000\000\000\000\0038\003\030\004J\000\000\004K\004L\002\160\002\207\004M\000\000\003F\003\030\000\000\000\000\000\000\000\000\002\214\000\000\002\209\002\207\000\000\004\166\004y\000\000\001Q\000\000\000\000\000\000\002\214\000\000\002\209\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\002\194\007\025\000\000\002\182\000\000\000\000\002b\000\000\004\155\000\000\000\000\007\016\004y\002\182\000\000\000\000\002b\004\184\000\000\002\209\004\157\004\127\000\000\000\000\004J\000\000\004K\004L\002\160\002\158\004M\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\003\031\000\000\004y\000\000\004\186\000\000\000\000\000\000\000\000\000\000\003\031\004\127\004\144\000\000\002\162\0044\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\002\207\000\000\000\000\004P\000\000\004\154\002b\004\144\0045\002\214\002\207\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\006\207\000\000\000\000\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\004\164\002\161\000\000\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\002\181\000\000\007\018\000\000\000\000\000\000\000\000\000\000\004P\004\155\004\154\002b\004\166\002\182\000\000\000\000\002b\000\000\004\184\002\190\002\209\004\157\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\002\191\004g\000\000\000\000\000\000\000\000\000\000\004O\004\166\007\b\004y\004\186\000\000\000\000\000\000\000\000\004\155\000\000\0046\004\127\004P\000\000\004\154\002b\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\006\212\002\194\000\000\0048\005f\000\000\000\000\004\155\000\000\000\000\000\000\004\144\002\207\004\186\002\182\000\000\004\184\002b\002\209\004\157\004N\002\208\000\000\002\209\004J\000\000\004K\004L\002\160\004J\004M\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\004\186\000\000\000\000\000\000\004y\000\000\000\000\000\000\004\127\002\196\004\155\000\000\000\000\004\127\004J\000\000\004K\004L\002\160\004\156\004M\002\209\004\157\000\000\004\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\004P\000\000\004\154\002b\004\144\000\000\004\127\000\000\002\207\004\144\000\000\000\000\004J\000\000\004K\004L\002\160\002\214\004M\002\209\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\004O\000\000\000\000\004y\000\000\000\000\000\000\004\166\000\000\000\000\004\144\000\000\004\127\004P\000\000\004\154\002b\000\000\000\000\000\000\002\162\0044\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\004\164\000\000\0065\000\000\000\000\000\000\000\000\004\144\004P\004\155\004\154\002b\000\000\004P\000\000\004\154\002b\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\004P\004\166\004\154\002b\004\186\000\000\004\166\000\000\004\155\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\004\156\000\000\002\209\004\157\004\127\004\164\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\002\181\004M\005\189\004P\004\166\004\154\002b\004\176\000\000\004\155\000\000\000\000\000\000\002\182\004\155\004y\002b\000\000\004\184\000\000\002\209\004\157\004\144\004\184\004\127\002\209\004\157\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\182\000\000\004\166\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\186\000\000\000\000\004y\000\000\004\186\004\184\t\155\002\209\004\157\004\144\000\000\004\127\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\191\000\000\000\000\000\000\000\000\000\000\000\000\004\155\004\164\000\000\004\186\000\000\000\000\004y\000\000\000\000\004\184\002\207\002\209\004\157\004\144\004P\004\127\004\154\002b\000\000\002\208\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\167\004\164\000\000\004\186\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\144\004P\004\166\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\004\164\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\202\004P\004\166\004\154\002b\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\004\184\000\000\002\209\004\157\004\144\000\000\004\127\004\164\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\208\004P\004\166\004\154\002b\000\000\000\000\004\155\000\000\000\000\004\186\000\000\000\000\004y\000\000\000\000\004\184\000\000\002\209\004\157\004\144\000\000\004\127\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\214\000\000\004\166\000\000\000\000\000\000\000\000\004\155\004\164\000\000\004\186\000\000\000\000\004y\000\000\000\000\004\184\000\000\002\209\004\157\004\144\004P\004\127\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\004\155\004\164\000\000\004\186\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\004\144\004P\004\166\004\154\002b\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001O\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\004\186\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\226\004P\004\166\004\154\002b\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\004\127\004\164\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\232\004P\004\166\004\154\002b\000\000\000\000\004\155\000\000\000\000\004\186\000\000\000\000\004y\000\000\000\000\004\184\000\000\002\209\004\157\004\144\004J\004\127\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\238\000\000\004\166\000\000\000\000\001\003\004y\004\155\000\000\000\000\004\186\000\000\000\000\000\000\000\000\004\127\004\184\000\000\002\209\004\157\004\144\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\001\004\001h\000\000\000\000\001 \001!\004\244\000\000\000\250\000\000\000\000\000\000\000\000\004\155\004\164\000\000\004\186\000\000\000\000\004\144\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004P\000\000\004\154\002b\000\000\004J\000\000\004K\004L\002\160\004J\004M\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\004\164\000\000\004\186\004y\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\004\127\004P\004\166\004\154\002b\004\127\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\004\164\0019\001:\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\004P\000\000\004\154\002b\004\144\001\003\004\250\000\000\004\166\004\144\004y\000\000\000\000\004\155\000\000\000\000\000\000\001Q\000\000\004\127\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\004\166\000\250\000\000\000\000\000\000\005\000\000\000\000\000\000\255\001\000\001\001\000\000\004\155\001\002\000\000\004\186\004\144\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004\164\000\000\000\000\000\000\000\000\004\164\000\000\005\006\000\000\000\000\000\000\000\000\000\000\004P\004\155\004\154\002b\000\000\004P\000\000\004\154\002b\000\000\004\184\004\186\002\209\004\157\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\004\164\004\166\004y\000\000\004\186\000\000\004\166\000\000\000\000\000\000\000\000\004\127\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\001Q\004K\004L\002\160\000\000\004M\000\000\000\000\005\012\000\000\001\003\000\000\000\000\005\018\000\000\004\155\000\000\000\000\004\144\004y\004\155\000\000\000\000\004\166\004\184\000\000\002\209\004\157\004\127\004\184\000\000\002\209\004\157\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\ni\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\186\000\000\000\000\005\024\000\000\004\186\000\000\000\000\004\144\000\000\004\155\004J\000\000\004K\004L\002\160\000\000\004M\000\000\004\184\000\000\002\209\004\157\004\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\004\127\004J\000\000\004K\004L\002\160\000\000\004M\004\186\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\004y\000\000\000\000\000\000\004J\004\164\004K\004L\002\160\004\127\004M\004\166\004\144\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004y\000\000\000\000\ng\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\144\000\000\005\030\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\166\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\004\144\000\000\000\000\000\000\004\164\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\005$\000\000\004\186\000\000\000\000\004y\000\000\004\155\000\000\000\000\000\000\000\000\000\000\004\164\004\127\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004\166\000\000\000\000\000\000\000\000\004\164\004J\000\000\004K\004L\002\160\000\000\004M\004\186\000\000\004\144\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\004\166\000\000\000\000\005*\000\000\004\127\000\000\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004\166\000\000\004J\000\000\004K\004L\002\160\000\000\004M\0050\000\000\000\000\000\000\000\000\004\144\000\000\004\155\000\000\000\000\004\164\000\000\000\000\004y\000\000\004\186\004\184\000\000\002\209\004\157\000\000\000\000\004\127\004P\0056\004\154\002b\000\000\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\144\000\000\000\000\000\000\004\166\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\004J\004\186\004K\004L\002\160\000\000\004M\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\002\158\000\000\005<\002\159\002\160\000\000\002\161\004\127\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\004\166\004\164\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\004P\000\000\004\154\002b\004\144\000\000\000\000\000\000\000\000\000\000\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005B\000\000\000\000\000\000\000\000\003\025\002\158\004\155\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\004\184\004\166\002\209\004\157\000\000\000\000\005\157\003\030\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\004\164\000\000\004\186\004y\000\000\000\000\000\000\005P\000\000\000\000\000\000\000\000\004\127\004P\004\155\004\154\002b\000\000\000\000\000\000\000\000\000\000\002\194\004\184\002\190\002\209\004\157\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\002\182\004M\000\000\002b\000\000\000\000\002\191\005\159\000\000\000\000\004\144\000\000\000\000\000\000\004\166\004y\004J\004\186\004K\004L\002\160\000\000\004M\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\004J\003\031\004K\004L\002\160\000\000\004M\004\127\000\000\005V\002\194\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\144\004y\000\000\000\000\002\182\000\000\004\184\002b\002\209\004\157\004\127\004\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\004\144\000\000\000\000\004P\000\000\004\154\002b\002\214\000\000\002\209\000\000\000\000\000\000\004J\004\186\004K\004L\002\160\000\000\004M\000\000\000\000\004\144\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\004\164\000\000\004\166\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\004\164\002\207\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\002\214\004M\002\209\004P\005\222\004\154\002b\004\144\000\000\000\000\000\000\004\155\004\164\000\000\000\000\004y\000\000\000\000\004\166\000\000\004\184\000\000\002\209\004\157\004\127\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\186\000\000\005\231\000\000\000\000\000\000\000\000\000\000\004\144\004\155\000\000\000\000\004\166\004y\000\000\000\000\004\164\000\000\004\184\000\000\002\209\004\157\004\127\005\240\000\000\000\000\000\000\000\000\000\000\004P\004\155\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\005\250\000\000\004\186\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\144\004J\000\000\004K\004L\002\160\004\184\004M\002\209\004\157\004\166\004\164\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004\127\000\000\000\000\000\000\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\003\000\000\000\000\000\000\000\000\000\000\000\000\004\155\002\158\000\000\000\000\002\159\002\160\000\000\002\161\004\164\004\184\004\166\002\209\004\157\004\144\000\000\000\000\004J\000\000\004K\004L\002\160\004P\004M\004\154\002b\000\000\000\000\000\000\002\162\002\163\000\000\002\174\002\175\002\180\000\000\000\000\004y\000\000\004\186\000\000\000\000\000\000\000\000\006\012\000\000\004\127\000\000\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\004\164\004M\000\000\000\000\000\000\000\000\000\000\004\144\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\004\186\000\000\006\023\000\000\000\000\000\000\000\000\004m\004J\004\155\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\004\166\002\181\000\000\000\000\000\000\004\127\004J\000\000\004K\004L\002\160\000\000\004M\000\000\002\182\004\186\004\164\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\004P\000\000\004\154\002b\006 \000\000\004\127\000\000\000\000\004\144\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\004\166\004O\000\000\004\144\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\004\186\004P\000\000\004\154\002b\000\000\002\162\002\189\000\000\002\174\002\175\002\180\002\207\004y\000\000\000\000\000\000\000\000\004\164\000\000\006)\002\208\004\127\002\209\000\000\000\000\000\000\004\155\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\004\184\000\000\002\209\004\157\002\190\000\000\000\000\002\158\000\000\000\000\002\159\002\160\004\164\002\161\000\000\000\000\000\000\000\000\000\000\004\144\000\000\002\191\006|\000\000\000\000\004P\000\000\004\154\002b\004\186\000\000\004\166\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\156\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\002\194\0060\000\000\000\000\000\000\002\190\000\000\000\000\004\155\000\000\000\000\000\000\000\000\002\182\004\164\000\000\002b\004\184\000\000\002\209\004\157\000\000\002\191\006e\000\000\000\000\000\000\004P\000\000\004\154\002b\006_\000\000\000\000\000\000\000\000\000\000\004J\004\155\004K\004L\002\160\000\000\004M\000\000\000\000\004\186\004\184\000\000\002\209\004\157\000\000\000\000\002\196\000\000\002\158\000\000\004y\002\159\002\160\000\000\002\161\000\000\004\166\002\194\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\186\002\182\000\000\000\000\002b\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\006k\000\000\002\214\004\144\002\209\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\002\190\002\196\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\006m\000\000\000\000\000\000\000\000\000\000\000\000\004\186\000\000\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\002\207\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\002\214\004J\002\209\004K\004L\002\160\000\000\004M\004P\000\000\004\154\002b\000\000\002\194\000\000\000\000\000\000\002\190\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\004\127\000\000\000\000\000\000\002\191\006u\004J\000\000\004K\004L\002\160\000\000\004M\000\000\004\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\004J\000\000\004K\004L\002\160\004\144\004M\004\127\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\006s\004y\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\127\000\000\002\182\000\000\000\000\002b\004\184\000\000\002\209\004\157\004J\004\144\004K\004L\002\160\002\207\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\004y\000\000\000\000\004\144\004\164\004\186\000\000\000\000\000\000\004\127\000\000\000\000\002\196\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\002\158\004y\004\144\002\159\002\160\000\000\002\161\000\000\002\207\000\000\004\127\000\000\004P\004\166\004\154\002b\000\000\002\214\000\000\002\209\004J\004\164\004K\004L\002\160\000\000\004M\002\162\002\189\000\000\002\174\002\175\002\180\000\000\004P\000\000\004\154\002b\000\000\000\000\004y\000\000\000\000\004\144\000\000\000\000\006{\000\000\004\166\004\127\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\004\164\002\190\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\004\166\000\000\000\000\004P\000\000\004\154\002b\000\000\002\191\007\255\000\000\006\130\004\144\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\186\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\004\164\000\000\006\142\000\000\000\000\000\000\000\000\000\000\004\166\004\155\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\004\184\002\194\002\209\004\157\000\000\000\000\000\000\004\186\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\000\004\164\000\000\006\141\000\000\000\000\000\000\000\000\000\000\004\186\004\155\004\166\000\000\000\000\004P\000\000\004\154\002b\000\000\004\184\000\000\002\209\004\157\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\006\148\000\000\000\000\000\000\004\186\000\000\004\166\004\155\004\127\004J\000\000\004K\004L\002\160\000\000\004M\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\002\214\000\000\002\209\004\127\006\234\000\000\004\144\000\000\000\000\000\000\004\186\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\209\004\157\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\004\186\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\164\000\000\000\000\002\162\002\189\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\004\166\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\004\166\004\164\004\127\006\233\000\000\002\191\n9\000\000\000\000\000\000\004\155\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\004\184\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\006\240\001\002\004\144\000\000\001>\000\000\000\000\004\155\000\000\000\000\000\000\001@\000\000\000\000\002\194\004\186\004\184\004\166\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001D\000\000\000\000\000\000\004\186\000\000\000\000\001F\000\000\007\002\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\004\164\000\000\000\000\000\000\000\000\000\000\004\184\002\196\002\209\004\157\000\000\000\000\000\000\004P\000\000\004\154\002b\000\255\001\000\001\001\000\000\001\019\001\002\000\000\000\000\001K\000\255\001\000\001\001\000\000\000\000\001\002\001M\000\000\001d\004\186\000\000\000\000\001\003\000\000\000\000\001f\001A\002\207\000\000\000\000\000\000\000\000\000\000\004\166\000\000\000\000\002\214\000\000\002\209\000\000\000\000\000\000\001\019\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001G\000\000\000\000\nX\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\001\004\002\209\004\157\001\019\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001N\000\000\000\000\000\000\004\186\001\003\000\000\000\000\000\000\001g\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\140\000\255\001\000\001\001\000\000\000\000\001\002\001\142\000\000\001\148\000\255\001\000\001\001\000\000\000\000\001\002\001\150\000\000\001\156\001Q\000\000\000\000\000\255\001\000\001\001\001\158\000\000\001\002\0017\000\000\001\144\0018\000\000\000\000\0019\001:\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\004J\001\164\004K\004L\002\160\000\000\004M\001Q\001\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004q\001\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\001\019\000\000\000\000\001\143\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001\151\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001\159\000\000\001\004\000\000\000\000\000\000\001 \001!\001\003\000\000\000\250\001\004\000\000\000\000\000\000\001 \001!\000\000\001\019\000\250\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\001\004\000\000\000\000\001\003\001 \001!\000\000\001\167\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\177\000\255\001\000\001\001\000\000\000\000\001\002\001\179\000\000\001\185\001\004\004O\000\000\000\000\001 \001!\001\187\000\000\000\250\000\000\000\000\000\000\000\000\000\000\004P\0017\004\154\002b\0018\000\000\000\000\0019\001:\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\255\001\000\001\001\000\000\0017\001\002\000\000\0018\001\193\001Q\0019\001:\000\000\000\000\000\000\001\195\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001Q\000\000\000\000\000\000\0017\000\000\000\000\0018\001\019\000\000\0019\001:\001Q\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001\180\000\000\004\155\000\000\000\000\001\003\000\000\000\000\000\000\001\188\000\000\004\156\000\000\002\209\004\157\000\000\000\000\000\000\000\000\001Q\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\004\000\255\001\000\001\001\001 \001!\001\002\000\000\000\250\001\019\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\201\000\000\000\000\000\000\000\000\000\000\000\000\001\203\001\003\000\000\000\000\000\000\001\196\000\000\000\255\001\000\001\001\000\000\n\237\001\002\000\000\000\000\nr\000\255\001\000\001\001\000\000\000\000\001\002\nt\000\000\nz\001\004\000\000\000\000\000\000\001 \001!\n|\000\000\000\250\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\001\019\001\002\000\000\001Q\n\168\000\000\000\000\000\000\001\003\000\000\000\000\n\170\001Q\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001\204\001\019\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\001\019\001\004\0019\001:\000\000\001 \001!\000\000\001\003\000\250\001\004\000\000\nu\000\000\001 \001!\000\000\001\003\000\250\000\000\000\000\n}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Q\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\019\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\n\176\000\000\000\000\000\000\000\000\000\000\000\000\n\178\001\003\000\000\000\000\000\000\n\171\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\001`\000\000\0019\001:\000\000\0017\000\000\000\000\0018\001Q\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\n\184\001\019\000\000\000\000\001Q\000\000\000\000\n\186\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\n\179\000\000\000\000\000\255\001\000\001\001\0017\000\000\001\002\0018\000\000\n\192\0019\001:\000\000\000\000\000\000\000\000\n\194\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\n\205\000\000\000\000\000\000\001Q\000\000\000\000\n\207\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\001\019\001\002\000\000\000\000\n\213\000\255\001\000\001\001\000\000\000\000\001\002\n\215\000\000\n\221\000\000\000\000\000\000\001\003\000\000\000\000\n\223\n\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\000\000\000\000\0017\000\000\000\000\0018\001\004\000\000\0019\001:\001 \001!\000\000\000\000\000\250\001\003\000\000\000\000\000\000\n\195\000\000\000\255\001\000\001\001\001\019\000\000\001\002\000\000\000\000\n\229\000\000\000\000\000\000\000\000\000\000\000\000\n\231\001Q\000\000\001\004\000\000\001\003\000\000\001 \001!\n\208\001\019\000\250\000\000\000\000\000\000\000\255\001\000\001\001\000\000\001\019\001\002\000\000\000\000\n\239\000\000\000\000\000\000\001\003\000\000\001\004\n\241\n\216\000\000\001 \001!\000\000\001\003\000\250\000\000\000\000\n\224\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\001\019\000\255\001\000\001\001\000\000\0017\001\002\001Q\0018\n\247\000\000\0019\001:\000\000\000\000\000\000\n\249\001\003\000\000\000\000\000\000\n\232\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\001\019\0017\001\002\000\000\0018\011\001\000\000\0019\001:\000\000\001Q\001\004\011\003\000\000\000\000\001 \001!\001\003\000\000\000\250\000\000\n\242\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\0017\000\000\000\000\0018\001Q\000\000\0019\001:\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\001\019\000\000\001Q\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\001Q\011\t\000\000\000\000\000\000\000\000\001\003\000\000\011\011\000\000\n\250\000\000\000\000\000\000\000\000\001\019\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\001\003\000\000\001 \001!\011\004\000\000\000\250\002\158\000\000\000\000\002\159\002\160\000\000\002\161\0017\000\000\000\000\0018\000\000\001Q\0019\001:\000\000\000\000\001\004\t\221\t\221\002\158\001 \001!\002\159\002\160\000\250\002\161\002\162\0044\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\011\148\011\148\001\019\011\149\011\149\001Q\000\000\t\224\t\224\000\000\002\162\0044\000\000\002\174\002\175\002\180\000\000\t\225\t\225\001\003\000\000\000\000\000\000\011\012\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\0017\t\226\t\226\0018\000\000\000\000\0019\001:\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\000\000\000\000\001Q\000\000\000\000\000\000\t\227\t\227\000\000\011\148\000\000\002\182\011\149\000\000\002b\000\000\t\224\000\000\002\181\000\000\000\255\001\000\001\001\t\228\t\228\001\002\t\225\000\000\001\152\000\000\0017\002\182\000\000\0018\002b\000\000\0019\001:\000\000\000\255\001\000\001\001\000\000\000\000\001\002\011\150\011\154\001\160\000\000\000\000\000\000\000\000\t\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\226\000\000\000\000\001Q\t\230\t\230\000\000\000\255\001\000\001\001\t\208\000\000\001\002\000\000\000\000\001\168\t\231\t\231\000\000\000\000\t\232\t\232\000\000\t\234\t\234\002\207\t\239\t\239\000\000\000\000\000\000\000\000\000\000\000\000\002\208\000\000\002\209\000\000\t\227\000\000\t\241\t\241\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\t\209\000\000\000\000\002\208\t\228\002\209\000\000\000\000\000\000\001\003\t\242\t\242\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\t\217\001\191\000\000\000\000\000\000\000\000\011\159\000\000\001\003\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\255\001\000\001\001\000\000\t\230\001\002\000\000\000\000\001\181\001\004\000\000\000\000\000\000\001 \001!\001\003\t\231\000\250\000\000\000\000\t\232\000\000\000\000\t\234\000\000\000\000\t\239\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\189\000\000\000\000\000\000\001\004\t\241\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\197\000\000\000\000\t\242\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\001\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\255\001\000\001\001\000\000\000\000\001\002\001\004\001Q\001\205\000\000\001 \001!\001\003\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\001Q\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\001\003\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\001\208\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\001\003\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001\004\000\255\001\000\001\001\001 \001!\001\002\000\000\000\250\001\212\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\001Q\0019\001:\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001Q\000\000\002\162\002\173\001\003\002\174\002\175\002\180\000\000\000\000\002\158\000\000\000\000\002\159\002\160\0017\002\161\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\001Q\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\002\162\002\206\000\000\002\174\002\175\002\180\000\000\000\000\000\000\001\003\000\000\000\000\000\000\001Q\000\000\000\000\002\158\000\000\0017\002\159\002\160\0018\002\161\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\002\162\002\221\000\000\002\174\002\175\002\180\000\000\000\000\002\158\000\000\001Q\002\159\002\160\000\000\002\161\002\181\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\002\182\000\000\000\000\002b\000\000\000\000\000\000\002\162\002\236\000\000\002\174\002\175\002\180\000\000\000\000\002\158\000\000\000\000\002\159\002\160\000\000\002\161\002\181\000\000\000\000\002\158\000\000\001Q\002\159\002\160\000\000\002\161\000\000\000\000\0017\002\182\000\000\0018\002b\000\000\0019\001:\002\162\003\023\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\002\162\003)\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\000\000\000\000\001Q\000\000\002\158\000\000\000\000\002\159\002\160\002\207\002\161\002\182\000\000\000\000\002b\000\000\000\000\000\000\002\208\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\0036\002\181\002\174\002\175\002\180\000\000\000\000\002\158\000\000\000\000\002\159\002\160\002\207\002\161\002\182\000\000\000\000\002b\000\000\000\000\000\000\002\208\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162\003:\002\181\002\174\002\175\002\180\000\000\002\158\000\000\000\000\002\159\002\160\002\181\002\161\000\000\002\182\000\000\000\000\002b\000\000\000\000\002\207\000\000\000\000\000\000\002\182\000\000\000\000\002b\000\000\002\208\000\000\002\209\000\000\002\162\003D\000\000\002\174\002\175\002\180\000\000\000\000\000\255\001\000\001\001\002\158\000\000\001\002\002\159\002\160\b\196\002\161\000\000\000\000\000\000\000\000\002\207\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\208\000\000\002\209\000\000\000\000\000\000\002\182\002\162\0043\002b\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\158\000\000\000\000\002\159\002\160\002\207\002\161\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\208\002\207\002\209\000\000\000\000\000\000\002\182\000\000\000\000\002b\002\208\000\000\002\209\002\162\005\155\000\000\002\174\002\175\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\181\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\b\203\000\000\002\182\000\000\000\000\002b\001\003\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\208\002\158\002\209\000\000\002\159\002\160\000\000\002\161\000\000\002\181\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\002\182\000\000\000\000\002b\002\207\000\000\002\162\n*\000\000\002\174\002\175\002\180\000\000\002\208\000\000\002\209\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\nv\000\000\000\000\002\181\002\158\000\000\000\000\002\159\002\160\000\000\002\161\000\000\000\000\002\207\000\000\000\000\002\182\000\000\000\000\002b\000\000\000\000\002\208\000\000\002\209\000\255\001\000\001\001\000\000\001\003\001\002\002\162\n7\n~\002\174\002\175\002\180\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\255\001\000\001\001\000\000\002\207\001\002\001\004\000\000\n\172\000\000\001 \001!\000\000\002\208\000\250\002\209\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\001Q\001\002\002\181\000\000\n\180\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\n\188\000\000\002\182\000\000\000\000\002b\000\000\002\207\000\000\001\003\000\000\000\000\000\000\000\000\000\000\000\000\002\208\000\000\002\209\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\n\196\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\002\181\0017\000\250\001\003\0018\000\000\000\000\0019\001:\000\255\001\000\001\001\000\000\002\182\001\002\000\000\002b\n\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\001Q\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\002\208\001\004\002\209\000\000\000\000\001 \001!\001\003\000\000\000\250\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\0017\n\209\000\000\0018\001\004\000\000\0019\001:\001 \001!\000\000\000\000\000\250\001\004\000\000\000\000\000\000\001 \001!\001\003\000\000\000\250\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\208\0017\002\209\001Q\0018\000\000\000\000\0019\001:\000\000\000\000\001\004\000\000\001\003\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\0017\000\000\001\002\0018\000\000\n\217\0019\001:\000\000\000\000\000\000\000\000\000\000\001Q\001\004\000\255\001\000\001\001\001 \001!\001\002\0017\000\250\n\225\0018\000\000\000\000\0019\001:\000\000\0017\000\000\000\000\0018\000\000\001Q\0019\001:\000\000\000\000\001\003\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\n\233\000\000\000\000\000\255\001\000\001\001\001Q\000\000\001\002\000\000\0017\n\243\000\000\0018\001\004\001Q\0019\001:\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\n\251\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\001Q\000\000\000\000\000\000\001\003\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\n\235\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\0017\000\000\n\255\0018\000\000\001\004\0019\001:\001\003\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\011\005\000\000\000\000\001\004\000\000\000\000\001Q\001 \001!\000\000\001\003\000\250\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\0017\011\r\000\000\0018\001\004\000\000\0019\001:\001 \001!\001\003\000\000\000\250\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\000\000\t\221\000\000\001\004\001Q\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001Q\011\139\000\000\0017\000\000\t\224\0018\000\000\000\000\0019\001:\001\003\000\000\000\000\000\000\t\225\000\000\000\255\001\000\001\001\000\000\000\000\001\002\0017\000\000\000\000\0018\001Q\000\000\0019\001:\000\000\000\255\001\000\001\001\001\004\000\000\001\002\001Q\001 \001!\000\000\001\003\000\250\000\255\001\000\001\001\000\000\000\000\001\002\000\000\t\226\000\000\0017\000\000\000\000\0018\000\000\001Q\0019\001:\000\000\000\255\001\000\001\001\000\000\001\004\001\002\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001`\t\227\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\228\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\001\003\000\000\004J\000\000\004K\004L\002\160\000\000\004M\000\000\011\140\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\0017\000\000\000\000\0018\001Q\001\004\0019\001:\001\003\001 \001!\t\230\004\137\000\250\000\000\004J\000\000\004K\004L\002\160\001\004\004M\000\000\t\231\001 \001!\001\003\t\232\000\250\000\000\t\234\000\000\001\004\t\239\000\000\001Q\001 \001!\000\000\000\000\000\250\001\003\000\000\000\000\004\153\000\000\000\000\t\241\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\001\003\000\250\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\t\242\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\0017\000\000\000\000\0018\001\004\000\000\0019\001:\001 \001!\000\000\000\000\000\250\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\004O\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001\221\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\0017\000\000\000\000\0018\000\000\001\217\0019\001:\000\000\000\000\000\000\000\000\000\000\004O\000\000\0017\000\000\001U\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\0017\000\000\000\000\0018\001_\000\000\0019\001:\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\004J\001^\004K\004L\002\160\000\000\004M\004J\000\000\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\004:\000\000\004\165\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\185\004\156\000\000\002\209\004\157\000\000\000\000\005K\004J\000\000\004K\004L\002\160\004J\004M\004K\004L\002\160\000\000\004M\000\000\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\156\000\000\002\209\004\157\005\212\000\255\001\000\001\001\000\000\006\253\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\000\000\000\000\004O\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\000\000\004O\000\000\000\000\004P\000\000\004\154\002b\004O\000\000\000\000\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\255\001\000\001\001\000\000\000\000\001\002\000\000\000\000\000\000\000\000\004O\000\000\000\255\001\000\001\001\004O\000\000\001\002\000\000\000\000\000\000\000\000\001\003\004P\000\000\004\154\002b\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\000\000\004K\004L\002\160\000\000\004M\001\004\000\000\000\000\000\000\001 \001!\004\155\000\000\000\250\001\003\000\000\000\000\000\000\000\000\000\000\004\156\004\155\002\209\004\157\000\000\001\003\000\000\nD\004\155\000\000\004\156\000\000\002\209\004\157\000\000\000\000\000\000\004\156\001\004\002\209\004\157\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\004\155\000\000\000\000\001\003\004J\004\155\004K\004L\002\160\004\156\004M\002\209\004\157\000\000\004\156\001\003\002\209\004\157\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\001\004\000\000\000\000\000\000\001 \001!\nS\000\000\000\250\000\000\000\000\000\000\001\004\000\000\000\000\000\000\001 \001!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\0017\000\000\007o\0018\000\000\000\000\0019\001:\004O\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007t\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\0017\000\000\000\000\0018\000\000\000\000\0019\001:\000\000\000\000\000\000\000\000\000\000\004O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\134\000\000\000\000\004P\000\000\004\154\002b\000\000\000\000\000\000\000\000\000\000\007\138\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\156\000\000\002\209\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\156\000\000\002\209\004\157")) + ((16, "\002\012\001\157\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\219\001V\000)\000\247\001(\000\025\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\007\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016L\000\204\001z\002|\000\000\000\000\000\000\000\000\000\000\000\000\002\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\146\000\000\000\170\000\000\000\244!\216\002(\000\000\006\146\002L\000\000\002\134\000\000\002\206\000\000\000\000\000\000\000\000!\240\000\000\000\000=6\016\214\003n\002\000\001n\000\000\003J\000l\004F\004\158\000\000\000\000\000\000\000\000\026\148\003\246\004(\000\002\000\000\000\000\000\000\0026\000\000\000\000\003X\000\000\000\000\000\000\000\000\000\000\005\004\000\000\004\228\000\000\004\240\005\220\000\000\000\000\005X\000\000\005\024\000\000\005\156\005\028\000\000\006\254\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\005>\000\000\005\214\006\016\000\000\000\138\000\145\007\030\000\000\007\176\tF\000\000\000\000\011\160\006\146\000\000*\186\006\146\006\204\000\000\001\190\003\144\"\218\000\000\000\000\006\196\006~#0\000\000\000\000\b\136#\142\b\"\000\000\011\248\bN\000\000\rJ\015\030\131\156\000\000\177<\000\000\000e\000\000\000\000\001<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\236#\230\007\156\025\002\007\168\t\142\t\238\000\000\000\000\000\000\1582\b\242\000\000\000\000m\252\017Z\000\000\000\000\002\206\006\226\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000#\248\000\000\b\206\000\000\t\228\000\000\t\178\000\000\131J\0186\000\000\t\242\000\000\000\000\nJ\000\000\n\024\000\000\000\000%\018\000\000\000\000\000\000\000\000\000\000\002P\n\000\158\182\n\004\000\000\000\000\167\028\n4\159\014\nT\000\000\000\000\167`\nh\000\000\159b\n~\000\000\000\000\168\004\n\146\000\000\000jG\202\000\000\178\012\000j\b\196\000\000\000\000\000\000\000\000\178$\000\000\178N\000j\000j\000j\000\000\000\000\160:\n\220\000\000\000\000\1680\n\228\000\000\000\000\000\000\000\000\012\002\000\000\000\000\000\000\nL\000\000\000\000\0128\000\000\n\136\000\000\000\000\002P\000\000%6\000\000\n\176\000\000\012X\000\000\n\198\000\000\002P\011\242\000\000\002P\000\000%N\002P\012\004\160p\012(\000\000\000\000\168^\012B\000\000\000\000\160\172\012P\000\000\000\000\168r\012d\000\000\012l\160\190\012\162\000\000\000\000\168\134\012\190\000\000\000\000\161\018\012\208\000\000\000\000\168\186\012\238\000\000\169D\018t\000\000%\156\002P\r\n\161\150\r\022\000\000\000\000\169p\r6\000\000\000\000\161\246\rV\000\000\000\000\169\162\rj\000\000\r\254\162p\0142\000\000\000\000\169\206\014@\000\000\000\000\162\206\014R\000\000\000\000\169\228\014f\000\000\170~\014n\000\000\000\000\170\146\014\192\000\000\000\000\002P\000\000\000j`\020\000\000\000\000\000jr\206\000\000\000\000\r\158\0154\000\000\000\000\000\000\000\000\000\000\015r\000\000\006\194\015\234\000\000&\182\007\128o\028\000\000\000\000\000\000\000\000\002P\000\000\000\000\000\000\r\204\000\000\000\000\000\000\000\000\000\000\000\000\000\164\015\232\000\000\000\000\000\000\002P\027H\002P&x\002P\000\000\000\000\127\168\000\000\000\000\017\016\000\000\000\000\000\000\000\000x\246\130\220\015\154\007\140\015|\127\224\000\000\000\000\000\000\000\000&\242\002P\000\000\128f\000\000\000\000\000\000'\204\002P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000oL\000\000\015\230\007\206\016\146\000\000\000\000\000\000\000\000\004\172\000\000\000\000\b(\001\136\000\000\bz\0076\015\248\b\174\004\018\006\b\001\030\001\020\007\176\017:\001\\\002l\0000\b\254\000\000\000\000\000\000\016\016\016\018\t\b\001\158\001\162\t,\128\\((\016\020\tH\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\028\t\160(\180\022j\130\220?\\)\002\000\000\128\186\000\021\000\000\000\000\000\000)~\002P\000\000K\\\000\000\000\000\000\000*\b\002P\000\000\000\000orp\152q\016\000\000\000\201\000\000\000\000\000\000\017\004* \002P\017\012\129H\016@\n$h\136\000\000\002f\000\000\000\000\000\000\000\002\000\000\000\000\129\238w<\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130v\000\000\000\000\000\000+.\002P\000\000\000\000\129\160\000\000\000\000\000\000\001\240\000\000\000\000\000\000\000\000\000\000\000\000\017\170\130\142\000\000\016\\\nL\130\230\000\000\000\000\000\000\000\161\000\000\131\188\000\161\000\000\131\212\000\000\000\000\000\000+T\002P\000\000\000\000\149F\000\000\000\000\000\000\000\000\000\000\000\161\132,\000\161\132DoL\017\024\000\000\161\244\000\000\000\000\000\000\000\000\000\161\000\000\132\206\000\000\000\000\000\000+l\002P\000\000\000\000\170\198\000\000\000\000\000\161+\210\002P\000\000\133\026\000\161\005H\000\000\000\161\000\000\000\000\000\161\000\000q\016\000\000\000\000\000\000\000\161q8\000\000\000\000\000\000\000\161\000\000\000\000\000\161\000\000\000\161\000\000\000}\017>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171(\000\000\000\000\000\000\0164\133\180\000\161\000\000\000\000\000\000\133\250\000\000\000\000\000\000,~\002P\000\000\000\000\171\172\000\000\000\000\0164\000\000\134@\000\000\000\000\000\000,\242\002P\000\000\000\000\171\188\000\000\000\000\0164\171\212\000\000\134\192\000\000\000\000\000\000-X\002P\000\000\000\000\172\022\000\000\000\000\0164\001\200\000\000\002l\0160\022\142\000\000-\150\002P\0174\000\000\000\000\002\174\000\000\000\000\016\188\000\000\000\000\000\000\000\000\000\000\000\000\002p\016\208\017\232-\220\017\018\017\"\017T\nR\003~\nT\001R\017\248\000\000\000\000\005\182\006l\000\000\007\020\n\132\004\230\017v\000\000\000\000\b4\000\000\n\202\006\148\006\162\000\159\019\020\000\000\000\000p\130\000\000q\164\018\158\000\000.B\002P.\168\002P\000\000\001\021\000\199\000\000\b\154\n\202\000\000\000\000\017\164\000\000\000\000\000\000\000\000\000\000\tH\n\202\n\146\n\202\000\000\001\158\000\000\000\000\005&\000\000\000\000\000\000\019N\000\000\000\000\000\000\n\202\n\202\000\000\n\202\000\000\000\000\004\006\000\000\000\215\001\162\000\000\000\215\000\000\n\212\n\202\000\000\000\000\000\000\000\000\000\000\000\215/\012q\254rT\019\000\018\142\134\154\001\018\000\000\135\012\017\186\n\188\144*\179\014\135<\179F\017\192\011$/\152\017\200\011h0\004\017\202\011j(\228s6\000\1610p\017\210\011\140\135\134\019\014\000\0000\2481\2222,\000\161\022\218\000\00014\002\206\000\000\003\164\000\000\000\000\000\000\000\000\000\000\000\000\000\218\023\190\000\0002^\004R\000\000\t<\000\000\000\000s\194\018\232\000\000\000\000\018\238\000\000\000\000\000\000\000\000\024T\000\159\000\000\000\000\n\208\000\000\000\000\000\000\n\230\000\000\000\000\000\000\000\000\000\000\002\n\000\000\000\000\000\161\024\204\000\0002\132\002\206\000\0003|\000\161\025\020\000\0002\210\002\206\003\164\000\000\000\000\000\000\000\000\000\000\000\000\172\154\025\196\000\161\026\"\000\00038\002\206\000\000t\024\000\161\000\000\026n\000\0004\"\002\206\000\000\003\164\000\000\000\000\000\000\000\000\000\000\000\000\014\140\000\000\000\000\018\240\178\188\000j\000\0004\144\018$\011\1945\n\000\000\135\254\000\000\000\000\019\188\000\000\000\000\000\000\179l\179\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005V\026\226\000\000\000\000\000\000\018X\011\228\006\018\000\215\011,\n\202\000\000\000\000\000\000\000\021\000\0005F\002P5\140\018\132\011\244\136f\000\1616h6\212\018\142\012\006\179\220\000\000\000\000\000\000\180\b\000\000\000\000s\150\018\146\01287$\000\000t\150\137\026\018\154\012:7\176\000\000\000\000\015\234\000\000\000\000\020t\000\000\000\000\000\000\000\000\000\000\180F\000\000\000\000\000\000\004\2367\162\000\000\000\000\000\000\137F\000\000\000\000\020v\000\000\000\000\000\000\180h\000\000\000\000\000\000\000\000\000\000\019\018\012V8\006\000\000t\186\000\000\180\202\000\000\018\2128\196\000\000\000\000\002d\137Z\019:\012X9\164\000\000\002d\137\132\019@\012\1289\192\000\000\002d\000\000\181(\000\000\137\220\019B\012\156:\128\000\000\002d:\206\004\146;\006\000\000\000\000\138v\019J\012\208;\140\000\000\002d\139P\019L\012\254\144\000\000\002d\141r\019^\r\150>\172\000\000\002d\141\158\019`\r\162?6\000\000\002d\142.\019f\r\204?R\000\000\002d\142>\019h\r\212?\214\000\000\002d\142j\019j\r\216@|\000\000\002d\142\206\019l\r\218@\252\000\000\002d\143^\019n\r\224At\000\000\002d\143\142\019p\r\234A\194\000\000\002d\144\138\019x\r\236B\014\000\000\002d\144\186\019z\r\238B\186\000\000\002d\145\004\019|\r\250C\006\000\000\002d\145J\019\138\014\024CT\000\000\002d\145\134\019\156\014\028C\204\000\000\002d\146`\019\160\014\"D\026\000\000\002d\146\170\000\000\000\000\021@\000\000\000\000\000\000\181`\000\000\019\202\014$D\198\000\000\002d\146\226\019\204\014,E\018\000\000\002d\014@\b\220u\182\019\148\000\000u\206D\154\000\000\000\000\003\146\000\000\000\000E\144\000\000\000\000\000\000\004<\027H\000\012\000\000E\200\ttF^\000\000\000\000F\230\000\000\000\000F\130\t\128G|\000\000\000\000G\194\000\000\019\152HJ\000\000\000\000H\144\000\000\000\000\000\000I&\000\000\019\164H\218\t\254I~\000\000\000\000J\020\000\000\000\000J\156\000\000\0164J\226\000\000\145\176\000\000\000\000\000\000K,\002P\000\000\000\000\172\178\000\000\000\000\0164\138\006\000\161\007&\000\000\007\164\028B\028\142\000\000K\170\nbL\020\000\000\000\000L\164\000\000\019\168L\226\000\000\000\000M4\000\000\000\000\000\000Mr\000\000\000\000\001\228\007\002\000\000\000\000\000\000\002dM\214\000\000\000\000Nf\000\000\000\000\000\000\000\000v\018\000\000\000\000\002dv\144\000\000v\206\000\000\000\000w.\000\000\000\000\000\000\181\152\000\000\000\000w\138\000\000\000\000\147|\019\236\014TO\018\000\000\002dx\b\000\000\000\000\147\188\019\244\014ZO\148\000\000\002dx\138\000\000\000\000\148\170\019\246\014`P\012\000\000\002d\t\170O\220\000\000\000\000\148\218\019\248\014\150Q\006\000\000\002dP\214\000\000\000\000\148\234\019\252\014\152Q\178\000\000\002dQ\208\000\000\000\000\149\254\020\000\014\168R\000\000\000\002d\000\000\000\000x\158\000\000\000\000\150\b\020\002\014\208R\172\000\000\002dyd\000\000\000\000\150\202\020\004\014\214R\250\000\000\002dy\178\000\000\000\000\150\218\020\006\014\216S\160\000\000\002d\000\000\1518\020\b\014\220S\238\000\000\002d\000\000r\012\000\000\000\000\002d\000\000\000\000\000\000z~\000\000\000\000z\196\000\000\000\000\000\000\020\b\000\000\000\000Tl\000\000T\186\000\000\000\000\000\000\0164U$\000\000\000\000U\172\000\000\012\184\000\000\000\000\179\136\000\000\000\000z\212\020\012\014\224VX\002\\\151\248\020\014\014\230V\226\000\000\002d\0068\000\000\000\146\152\152\152\190\000\161\1520\020\016\015\bWR\000\000\002d\153~\000\161\153\214\020\018\015\016W\152\000\000\002d\154\000\000\161\154V\020\022\015 W\222\000\000\002d\000\161\154\244\020\026\0150X\216\000\000\002d\155J\020\028\0154X\240\020\030\155v\020(\0156Yr\000\000\002d\006\182\155\182\020.\015\000\000\000\000f\246\000\000\000a\017\152\022\014\000\000\000\000|$\020>\003z\000\000gN\002Pg\150\000\000\000\000h\016\000\000\000\000\014n\000\000\b0\000\000\000\000\000\000\000\000\000\000\000\000\020\186\000\000\000\000|\224\021(\007v\000\000h\162\002Pi\004\000\000\000\000iR\000\000\000\000\017\158i\222\015\028\000\000\017\166\017\170\000\129\001l\017\176\012\198\017\184\022\"\030\184\015L\000\000\017\186\017\196\012\222\000\000\004\192\031l\000\000\002\002\000\000\017\212\027\160\127\252\005\b\020\194\005|\000\000s&r\012\000\000\b\208\000\000\000\000\b\208\000\000\000\000\b\208\012\236\000\000\005\248\b\208\022(\031\242\015\152\000\000\b\208\000\000\011\196\000\000\1720\000\000\023\240\014\240\002P\000\000}>\172\228\000\000}\138\000\000\004\236\000\000\000\000\000\000\006\176\000\000\000\000\000\000\000\000\b\208\000\000\000\000\016\198\000\000\007D\011\238\016\242\000\000\017\214\031\132\017\006\000\000\000\000\000\000\017\180\000\000\000\000\t,\000\000\b\208}\246\000\000\b,\b\208%\254\000\000\017\228\021r\017\232\022\188\021\"\000\000\149\160\017\252\021z\000\000\000\000\000\000A*\017\018\000\000\000\000\000\000\000\000\000\000\000\000\018\212\000\000\018\002\000\000\021\028\017\234\t\028\011X\000\000\021\138\017\238\t\172\000\000\006\202\022\170\022R\018\n\021\148\000\000\000\000\000\000\000\000\000\000\000\000\018Jc^\000\000\000\000\000\000\018\212\000\000\000\000\000\000\000\000\018^p(\000\000\000\000\000\000\000\000\000\000\000\000\022B\001\172\011\130\021P\007\184\017\240\000\000\018\028\000\000\007\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021R\007\226\018,\000\000\0188\000\000\006\214\b\000\022\190\022f\018\140\000\000\000\000\022R\0036\t\168\000\000\000\000\000\000\000\215\n\202\000\000\173\028\000\000\000\000\000\161\000\000\158~\000\000\000\000\000\000jZ\002P\000\000\000\000\173\166\000\000\000\000\000\161\000\161\000\000j\194\002P\000\000\n|\000\000\000\000\000\000\182\188\000\000\021<\018Tj\192\000\000\002d\000\000\157\242\000\000\000\000\022\196\000\000\000\000\000\000\183\158\000\000\021@\018^k\236\000\000\002d\000\000lD\000\000\000\000\000\000\000\000\000\000 \160\018\162\000\000\018\170\172z\000\000\000\000\000j\173X\000\000\000\000\000\000\000\000\000\000l|\002P\021\002\163\028\021\n\000\000\000\000\1740\021\012\000\000\000\000\163H\021\016\000\000\000\000\174\128\021\022\000\000\015\030\t\218\000\000\000\000\000\000\r\180\021P\021z\r\180\000\000\000\000\000\000\002P\000\000\021R\n2\000\000\000\000\000\000\000\000\002P\000\230\006\206\011\162\000\000\000\000\000\000\000\000\012\222\000\000\000\000\000\000\000\000\000\000\t\142\022\140\018\184\000\000\000\000\022x\002\222\t\152\000\000\000\000\000\000\000\000\tl\rp\022\190\t\202\022\144\019F\000\000\000\000\022\128\003N\t\206\000\000P(\021j\021n\018\192\014H\019n\000\000\018\208\015\\\019\148\000\000\021t\021v\018\244\021\166\021r\016\n\n\202\000\000\018\250\022\"\000\000\015\146\019\168\000\000\022$\000\000\018\246\n\210\021\236\019<\022(\000\000\019\014\011@\021\240\000\000\000\000\014\138\014\220\019\212\000\000\019\\\n\202\019\244\000\000\015L\000\000\021\138\019N\015\240\020\212\021\140\019T\0236\021\156\000\000\000\000~d\020\n\021\244\019j\023<\021\162\000\000\000\000~\174\020$\021\250\000\000\000\000\000\000i\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020(\000\000\021\154\019p\019d\011L\022\134\000\000\022\014\000\000\022\020\019t\011\142\000\000\014\216\000\000\n\230\022\214\020,\022\024\000\000\000\000\000\000\000\000\000\000\000\000\n\202\000\000\000\000l\160\002P\021j\163\166\021l\000\000\000\000\174\146\021n\000\000\000\000\163\244\021r\000\000\000\000\174\168\021v\000\000\021x\164~\021|\000\000\000\000\174\200\021~\000\000\000\000\164\204\021\128\000\000\000\000\174\220\021\130\000\000\174\244\021t\000\000l\184\002P\021\134\165\002\021\136\000\000\000\000\175\n\021\138\000\000\000\000\165V\021\144\000\000\000\000\175\218\021\150\000\000\021\152\165\164\021\154\000\000\000\000\176.\021\156\000\000\000\000\165\218\021\158\000\000\000\000\176F\021\160\000\000\000j\176\178\021\162\166.\021\164\000\000\000\000\176\200\021\166\000\000\000\000\166\178\021\168\000\000\000\000\176\254\021\170\000\000\000j\176\232\021\172\167\006\021\176\000\000\000\000\177\022\021\178\000\000\000\000\167J\021\182\000\000\000\000\177`\021\184\000\000\002P\000\000\002P\000\000\000\000\000\000\000\000\000\000m\030\000\000\r2\000\000\022$\000\000\r\156\000\000\002P\022*\000\000\022\236\0200\000\000\000\000\000\000nf\000\000n\172\000\000\000\000\000\000\000\000\000\000\002\024\000\000\000\000\000\000\000\015\000\027\000\000\000\000\000\000\000\000\000\000\011\154\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\166\000\000\000\000\000\000 \178\000\000\002P\000\000!\152\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\209\000\000\000\000\000\000\0009\000\000\000\215\000\000\003:\000\000\n\202\000\000\000\025\000\000\000\000\000\000}\238\000\161\000\000\000\000\000\031\000\000\000\000\000\000\000\000\005V\005l\0220\002\250\000\000\000\000\000\000\000\000\000\000\000\000\0222\006|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\148\214\000\000\0202\000\000\000\000\000\000\000\000\006\002\007\208\017R\027\254\000\000\000\000\0204\030\218\000\000\000\000\000\000\02068\192\000\000\000\000\000\000\000\000"), (16, "\tT\004P\011_\004Q\004R\002\168\003\185\004S\011s\004R\002\168\002\166\000q\002\168\003M\002\168\003\157\002\169\011@\002j\b\170\004\127\tU\tt\002f\000<\tW\002j\002k\000\206\004\133\001&\001'\n3\003\139\000\206\tX\tu\002\170\004f\b>\002\182\002\183\002\188\tT\004P\003\142\004Q\004R\002\168\011`\004S\000\216\002j\002f\004\011\003\146\002j\002\140\t\001\004\012\004\014\003\150\004\150\001\002\004\127\tU\tt\002\141\0110\tW\003\031\tY\b?\004\133\002f\tx\011c\002j\002\140\tX\tu\001`\001\b\001\t\003\176\011u\001a\006O\003$\002f\011k\002f\002j\002k\002j\002\140\002\143\002f\001\b\t\003\002j\002k\n+\011A\000\252\003\021\004\150\000@\000\165\tZ\011[\003\151\001\002\001\005\000n\tY\b\205\003\127\t\004\tx\004\170\000[\011d\t\006\t\001\003\187\t[\tB\002j\b\207\002\202\tp\011l\004V\002\143\004\160\002j\0008\011v\004\011\004\160\002j\003\146\002\190\005p\004\014\002j\011B\003\150\000\193\001\002\003\186\ty\tZ\011I\001\002\002\b\004P\011\\\004Q\004R\002\168\006\155\004S\004\170\t\003\001\002\007r\000\167\tz\t[\000\144\001\b\006R\006W\b\172\t\134\004V\002\201\004\160\002j\t^\003%\003\233\t\004\t_\006\198\000\182\ta\t\006\007M\tf\000\200\t.\006\206\001\006\ty\002l\003\151\004\175\n\012\003\188\004\176\011J\000_\tr\0008\001$\000\144\004\161\000\193\001(\001)\tz\005\191\001\002\000c\0008\004\190\002\215\002\217\004\163\002\011\002\155\007\025\t^\ts\001(\002\222\t_\002\217\001\002\ta\011K\003\185\tf\000x\tT\004P\011.\004Q\004R\002\168\004\175\004S\003v\004\176\004\192\002\166\tr\006i\002\167\002\168\004\161\002\169\007P\000\193\011L\004\127\tU\tt\002Q\004\190\tW\002\217\004\163\005\191\004\133\002\166\0008\ts\000\204\007\169\tX\tu\002\170\004:\004U\002\182\002\183\002\188\tT\004P\t\131\004Q\004R\002\168\000\146\004S\011\030\006\209\004\192\004\160\002j\002\140\000\148\007\233\002\155\t\144\002\187\004\150\001(\004\127\tU\0115\001\002\004;\tW\003\176\tY\000\206\004\133\000\254\tx\000\212\003\139\006\156\tX\tu\003\176\001\002\003\176\0119\000w\011\027\000A\011\029\003z\n\015\n\016\n\170\000\193\000\148\006\201\005\191\002f\001\b\003\146\002j\002k\002\154\tp\b\130\003\150\004\150\001\002\t\171\tZ\t\133\003\187\n%\000;\002j\tY\n\019\007\155\0008\007\232\004\170\003\180\003\187\003\159\003\187\002j\t[\002j\004\161\002\201\002\189\001\002\t\001\004V\003\246\004\160\002j\004\162\b\132\002\217\004\163\006\158\003\186\002\190\000\167\006\166\002j\003\174\003\168\001\"\001\b\001\t\ty\tZ\001#\003\151\004\016\004P\b\134\004Q\004R\002\168\004\014\004S\004\170\011\127\004R\002\168\000\193\tz\t[\000\144\002f\t\003\003\152\002j\002k\004V\005\193\004\160\002j\t^\000:\b\135\004<\t_\006\198\003\188\ta\t\148\t\149\tf\t\004\000>\006\206\000\157\ty\t\006\003\188\004\175\003\188\t\022\004\176\t\150\t\151\tr\003[\000\144\003c\004\161\005f\005l\n.\tz\000v\t\152\007\155\000\182\004\190\002\215\002\217\004\163\000\200\002\155\006\207\t^\ts\001(\002\216\t_\002\217\001\002\ta\0117\000\127\tf\011;\tT\004P\t{\004Q\004R\002\168\004\175\004S\000\228\004\176\004\192\000\139\tr\001`\001\b\001\t\004\161\005g\001a\000\201\t\167\004\127\tU\tt\006\179\004\190\tW\002\217\004\163\000\142\004\133\n=\003^\ts\007\165\b\252\tX\tu\001$\000\193\004U\011g\001(\001)\tT\004P\001\002\004Q\004R\002\168\000\146\004S\000\149\006\209\004\192\004\160\002j\002\140\000\148\011\128\000\252\004\160\002j\004\150\000\205\004\127\tU\tt\001\002\001\005\tW\006\161\tY\000\206\004\133\006\161\t\226\t\158\003\139\001r\tX\tu\003z\003W\003\176\011h\000\146\002\166\000\147\004\189\002\167\002\168\003\146\002\169\000\148\002U\006\201\005h\003\150\007w\001\002\007_\005\128\004\011\000\252\n1\n2\004\150\b\196\004\014\tZ\005\134\001\002\001\005\002\170\004:\tY\002\182\002\183\002\188\t}\004\170\003\189\000\160\006\173\003\187\001r\t[\002j\004\161\003Y\n\019\007\155\005\191\004V\bq\004\160\002j\004\162\001$\002\217\004\163\001r\001(\001)\004;\003\230\001\002\003\151\t\148\t\149\br\003\176\ty\tZ\b\137\0008\007k\007m\007o\000\252\n1\n2\t\150\t\151\004\170\005g\003\152\001\002\001\005\tz\t[\001`\001\b\001\t\t\152\007\155\001a\004V\bq\004\160\002j\t^\b\177\001&\001'\t_\n\019\007\155\ta\003\177\006\161\tf\003\187\000\156\br\002j\ty\001\b\by\004\175\003\188\002\162\004\176\000\193\004\189\tr\002\189\000\164\000\252\004\161\001`\001\b\001\t\tz\bV\001a\001\002\001\005\004\190\002\190\002\217\004\163\002j\002\251\002\168\t^\ts\003v\011O\t_\006\212\002\168\ta\000\170\bq\tf\000\144\tT\004P\006\192\004Q\004R\002\168\004\175\004S\006\202\004\176\004\192\001r\tr\br\000\163\003\232\004\161\bs\011\138\011\139\007y\004\127\011\141\004<\000\169\004\190\tW\002\217\004\163\003z\004\133\003\188\t\172\ts\000\252\b+\tX\011\143\002j\003\146\0008\b+\001\002\001\005\002j\003\150\bq\001\002\002f\005f\005l\002j\002k\006\161\004\192\006\200\000\190\000\144\002\215\007|\001$\001r\br\004\150\001(\001)\bx\002\216\001\002\002\217\005\202\b\181\tY\002j\002\140\tT\004P\000\193\004Q\004R\002\168\011\158\004S\t\001\002f\002\155\000\206\002j\002k\001(\002O\003\139\005\135\001\002\011\150\003\151\004\127\011\151\001r\001$\003\162\tW\003\243\001(\001)\004\133\000\184\001\002\001\002\bq\tZ\tX\011\159\005\216\003\152\000\146\000\194\000\186\000\197\t\001\011P\004\170\002\217\000\148\t\003\br\b.\t[\002\217\b\145\003x\003\168\004\200\007/\004V\000\208\004\160\002j\004\150\011\135\004R\002\168\002f\t\004\003\163\002j\002k\tY\t\006\001\224\011\146\002f\t\r\006g\002j\002\140\001\007\001\b\001\t\b\136\t\003\001\n\003z\000\206\001\015\003\172\007Q\003~\003\139\006\161\tz\001\029\003\146\000\146\000\189\000\192\003\176\t\001\003\150\t\004\001\002\000\148\t^\004\189\t\006\tZ\t_\000\193\t\n\ta\001\030\001\b\tf\b\132\006\201\t\164\004\170\000\193\003\164\000\193\004\175\t\242\t[\004\176\002f\0008\tr\002j\002k\004V\004\161\004\160\002j\b\134\004_\000\196\000\193\003\187\t\003\004\190\002j\002\217\004\163\007;\011\163\005\167\002\168\ts\003\151\tT\004P\007P\004Q\004R\002\168\005\191\004S\t\004\b\135\t\001\000\211\001\027\t\006\n\012\000\210\tz\t\007\003\152\004\192\006\205\004\127\tU\t\169\003z\b\b\tW\003\170\t^\001\011\004\133\006i\t_\0012\003\146\ta\tX\tu\tf\000\144\003\150\011\136\001\002\004\160\002j\003\176\004\175\005\191\007_\004\176\tk\t\003\tr\001\012\003\167\000\144\004\161\001(\001)\005\169\002\168\001\002\001\002\004\150\003\188\004\190\000\234\002\217\004\163\000\206\t\004\006\161\tY\ts\bB\t\006\002R\tT\004P\t\017\004Q\004R\002\168\007@\004S\004\189\003\187\002\155\bz\002j\003\151\001(\000\193\000\252\004\192\001\002\011\150\006\157\004\127\011\151\001\251\001\002\001\005\tW\007n\007m\007o\004\133\003z\003\152\tZ\003\169\000\193\tX\011\154\005\191\002f\001>\003\146\002j\002\140\004\170\b\212\t;\003\150\001?\001\002\t[\001@\005\192\tp\001A\001B\001\129\004V\007\186\004\160\002j\000\226\003\176\004\150\002f\n\015\n\016\002j\002k\004\011\000\193\006\149\tY\003\176\b\220\004\014\ty\000\233\000\146\005\191\000\199\t=\006\201\001Y\006\161\003\188\000\148\n \001s\007Z\007\155\n\019\007\155\tz\000\146\bt\000\215\003\151\004\189\t\001\007H\t?\000\148\003\187\000\193\t^\002j\001!\002\017\t_\tZ\007L\ta\b\014\003\187\tf\003\152\002j\001\249\b\216\t\145\004\170\b+\004\175\002\031\002j\004\176\t[\t\160\tr\b\024\002\168\t@\004\161\004V\002\166\004\160\002j\005m\002\168\t\003\002\169\004\190\b+\002\217\004\163\002j\000\241\006\187\011\157\ts\tT\004P\007*\004Q\004R\002\168\002>\004S\t\004\t\146\b\138\005\138\002\197\t\006\002\182\002\183\002\188\t4\000\244\tz\004\192\004\127\tU\t\147\003z\005\191\tW\003{\003\188\002f\004\133\t^\002j\002k\003\146\t_\tX\t\127\ta\003\188\003\150\tf\001\002\000\144\003\031\001\007\001\b\001\t\000\193\004\175\001\n\002G\004\176\001\015\000\193\tr\t\140\tp\002\217\004\161\001\029\005\149\003$\004\150\t\001\001\b\007\251\001\222\004\190\n:\002\217\004\163\tY\001\022\006\161\003z\ts\t\154\003\144\002\217\t1\001\007\001\b\001\t\003\176\003\146\001\n\000\193\004\189\001\015\003\151\003\150\002J\001\002\bt\000\206\001\029\004\192\005\168\ti\003\139\003\176\n\012\005\191\002\202\t\003\000\252\b\146\003\176\003\152\tZ\001\007\001\b\001\t\001\002\001\005\001\n\002\190\002M\001\015\002j\004\170\007\192\003\185\t\004\003\187\001\029\t[\002j\t\006\001\027\007P\000\193\tF\004V\000\252\004\160\002j\n\012\007\236\b\000\003\151\003\187\001\002\001\005\002j\td\001\011\n\024\003\187\005\191\0012\002j\t\130\005\189\005\190\003%\000\144\005\191\000\146\003\152\001-\003z\002]\006\161\003\154\001\027\000\148\n\012\006\161\tz\001\012\003\146\000\193\tA\001(\001)\005\191\003\150\001\002\001\002\002`\t^\001\011\n(\007\237\t_\0012\001\021\ta\002\155\bt\tf\002\215\001(\002d\001\027\001_\001\002\000\193\004\175\003\188\002\222\004\176\002\217\007P\tr\001\012\000\144\t=\004\161\001(\001)\001\011\n7\001\002\t\b\0012\003\188\004\190\006\019\002\217\004\163\002j\002\140\003\188\bm\ts\003\151\t?\n\015\n\016\n/\007_\000\144\001>\001\020\001\012\001\025\002q\t\168\001(\001)\001?\000\193\001\002\001@\003\152\004\192\001A\001B\n\025\n&\001\007\001\b\001\t\n\019\007\155\001\n\n>\t@\001\015\000\193\0060\000\144\0075\n\015\n\016\001\029\003\186\001r\001>\n0\000\146\003\245\0011\000\193\007_\001Y\001?\t\146\000\148\001@\001s\000\144\001A\001B\n\025\n&\n\007\007m\007o\n\019\007\155\t\147\000\144\n\015\n\016\001r\n0\000\144\001>\005u\005\191\001r\002\150\001/\005\191\005}\001?\n\012\000\144\001@\0016\001Y\001A\001B\n\025\n&\001s\000\193\007\180\n\019\007\155\000\146\002\196\001;\003z\003j\003l\003\156\b\005\000\148\n\021\007m\007o\000\206\003\146\001\027\011G\n\157\003\139\t\197\003\150\001Y\001\002\001\007\001\b\001\t\001s\000\146\001\n\001z\003u\001\015\001\011\n\161\0019\000\148\0012\003z\001\029\005\191\003\183\001\007\001\b\001\t\001r\005\191\001\n\003\146\005\143\t\031\001j\005\191\001G\003\150\t=\001\002\001\012\000\146\003\201\001\127\001(\001)\nQ\000\193\001\002\000\148\n\\\001\007\001\b\001\t\003\151\003\185\001\n\007P\t?\001\015\001i\000\146\001\236\001\134\n\012\003z\001\029\000\193\004a\000\148\000\193\000\193\000\146\003\152\001\138\003\146\001M\000\146\001r\004\005\000\148\003\150\005\176\001\002\001\237\000\148\001Q\003\151\000\146\t@\004\t\002\005\001\027\006\161\003\207\000\193\000\148\001T\003z\n\015\n\016\007J\b(\007\155\001>\nb\003\152\001X\003\146\001\011\t!\n\150\001?\0012\003\150\001@\001\002\te\001A\001B\n\025\n&\007_\000\193\005\191\n\019\007\155\001\011\003\210\003\213\003\145\003\151\bh\001\012\003\145\002j\001\027\001(\001)\002\166\t5\001\002\003M\002\168\001m\002\169\003\219\001Y\001q\006\161\003\152\t$\001s\001\011\005\191\001(\001)\0012\003z\001\002\001\005\007\195\bv\001\242\003\151\002j\002\170\004f\003\146\002\182\002\183\002\188\0008\004E\003\150\000\193\001\002\001\012\n\029\007m\007o\001(\001)\003\152\003z\001\002\011H\007\213\000\144\003\145\004^\000\144\n\015\n\016\003\146\003\145\005\191\001>\004l\003\031\003\150\003\186\001\002\t\138\007\155\001?\007\161\004r\001@\000\193\000\193\001A\001B\n\017\n\018\005\191\006O\003$\n\019\007\155\001\007\001\b\001\t\001?\003\151\001\n\t'\000\193\001\015\001A\001B\001\236\004|\004\130\005\191\001\029\007\246\000\144\001v\005\191\001Y\001>\br\003\152\t,\001s\t)\004\166\004\180\001?\003\151\000\144\001@\001\237\000\193\001A\001B\001\252\001Y\002\202\002\003\005\191\001\007\001\b\001\t\001}\000\144\001\n\004\186\003\152\001\015\000\193\002\190\001\236\005\191\002j\t\b\001\029\007\252\000\193\007_\001\136\004\195\001\141\001Y\001\007\001\b\001\t\000\193\001s\001\n\b\247\001\154\001\015\002j\001\237\001\236\b\001\t\015\005\191\001\029\002j\001\238\006V\000\146\001\027\007\130\000\146\004\206\007\135\001\149\003%\000\148\000\193\000\193\000\148\b\006\003z\001\237\000\144\007\216\b#\001\011\001\153\005\191\002\001\0012\003\146\000\193\000\193\001\157\004\212\001\242\003\150\n5\001\002\n\"\007m\007o\004\218\001\161\004\224\003z\b0\001\170\007\219\001\012\001\027\002\215\000\193\001(\001)\003\146\000\146\001\002\007\139\b3\002\222\003\150\002\217\001\002\000\148\003z\000\193\001\011\007\224\005\191\000\146\0012\b\018\001\027\001\165\003\146\002\166\001\242\000\148\002\167\002\168\003\150\002\169\001\002\ba\000\146\003\151\011#\001\169\b\239\001\011\001\012\000\193\000\148\0012\001(\001)\001\173\004\230\001\002\001\242\004\236\004\242\002\170\004:\003\152\002\182\002\183\002\188\b\129\004\248\003\151\001\177\001>\001\012\000\193\004\254\tp\001(\001)\005\191\001?\001\002\000\193\001@\000\193\001\191\001A\001B\001\252\003\152\003\151\001\186\005\191\001\007\001\b\001\t\005\004\000\146\001\n\011'\005\n\001\015\005\016\005\022\001\253\000\148\005\028\001\190\001\029\003\152\b\133\005\"\005(\005.\001>\001Y\001\007\001\b\001\t\0054\001s\001\n\001?\001\194\001\015\001@\001\255\001\253\001A\001B\001\252\001\029\bk\001\198\005:\nD\005@\001>\000\193\005F\005T\000\193\000\193\001\002\005Z\001?\n\011\007\155\001@\001\255\000\193\001A\001B\001\252\005^\002\189\000\193\001Y\001\007\001\b\001\t\b\171\001s\001\n\005\226\nk\001\015\005\235\002\190\001\236\005\244\002j\003z\001\029\b\206\007\227\n\159\000\193\001\027\005\191\001Y\000\193\003\146\000\193\000\193\001s\003z\000\193\003\150\007\230\001\002\001\241\000\193\000\193\000\193\001\011\003\146\005\254\006\007\0012\000\193\001\027\003\150\005\191\001\002\001\242\006\016\001\207\ng\004<\004P\002j\004Q\004R\002\168\000\193\004S\000\193\001\011\001\012\000\193\000\193\0012\001(\001)\000\193\006\027\001\002\001\242\006$\006-\nm\0064\001\202\006^\000\193\004=\006c\003\151\0067\001\206\005\191\001\012\001\027\002\215\000\193\001(\001)\000\193\001\210\001\002\000\193\003\151\002\216\006o\002\217\tp\003\152\006w\001\214\001\011\b\232\nn\001\217\0012\0068\006\127\001\007\001\b\001\t\001\242\003\152\001\n\nH\006\134\001\015\006\140\006\145\000\193\000\193\006\152\001\002\001\029\001>\001\012\b\243\006\171\000\193\001(\001)\006\185\001?\001\002\006\216\001@\006\232\006\237\001A\001B\t\030\nV\006\244\007\006\007\011\001\221\007\020\001>\000\193\001\002\001\235\000\193\000\193\b\026\000\193\001?\000\193\001\245\001@\000\193\007\029\001A\001B\001\252\t\021\003z\007(\001Y\007\244\nm\002\n\004U\001s\0073\011+\003\146\000\193\001\007\001\b\001\t\000\193\003\150\001\n\001\002\004V\001\015\004\160\002j\000\193\001>\001Y\003z\001\029\001\027\nP\001s\000\193\001?\000\193\000\193\001@\003\146\000\193\001A\001B\001\252\007?\003\150\000\193\001\002\001\011\001\030\000\193\002\023\0012\000\193\007E\000\193\000\193\007T\007g\002\030\n\172\000\193\000\193\000\193\006:\000\193\t\196\007i\tT\003\151\001Y\005\191\001\012\007\152\007\157\001s\001(\001)\007\172\000\193\001\002\001\007\001\b\001\t\007\178\000\193\001\n\011\150\003\152\001\015\011\151\007\191\000\193\005\191\tW\003\151\001\029\002=\004\161\007\209\001\027\007\235\002A\005\191\tX\007\241\002L\004\162\007\248\002\217\004\163\nr\007\155\007\254\003\152\001\030\002S\001\011\007\234\002\\\002c\0012\b\023\b'\002p\000\193\001\143\b/\b2\b:\002\146\003\016\001\007\001\b\001\t\000\193\001>\001\n\000\193\000\193\tY\001\012\002\149\003\b\001?\001(\001)\001@\000\193\001\002\001A\001B\b$\t2\000\193\000\193\002\195\002\225\bG\000\193\bM\bX\bc\003\020\003#\000\193\001\027\003Z\007s\003V\002\166\003\\\000\193\002\167\002\168\t6\002\169\007\141\tZ\001Y\000\193\003d\000\193\001\011\001s\t:\000\193\0012\bu\000\193\005\191\001\007\001\b\001\t\000\193\t[\001\n\002\170\004:\001\015\002\182\002\183\002\188\000\193\000\193\001>\001\029\001\012\000\193\000\193\000\193\001(\001)\001?\005\191\001\002\001@\011\153\bg\001A\001B\001\129\001\007\001\b\001\t\001\030\005\191\001\n\b|\005\191\001\015\b\140\b\150\005\191\001\011\b\157\0014\001\029\t]\000\193\007\163\000\193\000\193\000\193\001\007\001\b\001\t\007\156\001Y\001\n\t^\b\161\001\015\001s\t_\007>\001\030\ta\001\012\001\029\tf\b\190\001(\001)\b\230\005\191\001\002\001\180\t3\000\193\b\235\001>\t>\t\018\tr\005\191\001\027\b\240\t\014\001?\003i\003o\001@\b\246\003w\001A\001B\001\129\003\132\b\026\002\189\b\254\t8\001\011\003\134\ts\tJ\0012\005\191\000\193\003\149\tL\tc\002\190\th\t\141\002j\001\027\tQ\000\193\b\029\t`\000\193\000\193\001Y\tn\000\193\001\012\003\166\001s\005\191\001(\001)\007$\001\011\001\002\007 \t\143\0012\001\027\001?\003\200\000\193\001@\003\206\t\155\001A\001B\003\209\003\212\007\147\t\157\000\193\003\218\tG\000\193\001\011\tv\001\012\000\193\0012\000\193\001(\001)\000\193\t\204\001\002\t\128\000\193\000\193\t\219\001\007\001\b\001\t\000\193\007\150\001\n\003\255\003\249\001\015\001\012\003\252\000\193\000\193\001(\001)\001\029\004A\001\002\002\215\t\163\001>\000\193\000\193\004D\000\193\000\193\b5\002\216\001?\002\217\005\191\001@\004K\t\231\001A\001B\001\129\t\233\001\007\001\b\001\t\n*\003z\001\n\tI\n[\001\015\000\193\nC\004]\005\191\001>\003\146\001\029\003z\000\193\nG\na\003\150\001?\001\002\000\193\001@\001Y\003\146\001A\001B\001\129\001s\005\191\003\150\004k\001\002\001>\nM\000\193\004q\nS\004{\005\191\000\193\001?\004\129\b\026\001@\001\027\000\167\001A\001B\b$\001\007\001\b\001\t\003z\001Y\001\n\nj\003z\001\015\001s\n\149\005\191\001\011\003\146\b`\001\029\0012\003\146\003\151\003\150\n^\001\002\n9\003\150\000\193\001\002\001Y\005\191\000\193\nq\003\151\001s\nu\001\027\004\137\004\155\001\012\003\152\005\191\000\193\001(\001)\nE\n}\001\002\b\026\n\148\000\193\n\156\003\152\001\011\005\191\004\165\005\191\0012\005\191\005\194\005\191\005\191\005\191\005\191\nI\001\007\001\b\001\t\000\193\b\201\001\n\000\193\003\151\001\015\nW\004\179\003\151\001\012\004\185\004\194\001\029\001(\001)\004\205\004\211\001\002\004\217\004\223\001\027\004\229\004\235\003\152\004\241\004\247\004\253\003\152\nh\005\003\005\t\005\015\005\021\005\027\005!\001>\000\193\001\011\005'\005-\0053\0012\b\026\001?\nl\000\193\001@\0059\000\193\001A\001B\b6\001\007\001\b\001\t\n{\005?\001\n\005E\000\193\001\015\001\012\000\193\b\215\000\193\001(\001)\001\029\n\131\001\002\n\145\005M\n\163\001>\011-\011\144\011\155\011\160\001Y\005S\005Y\001?\001\027\001s\001@\005a\005\131\001A\001B\b$\001\007\001\b\001\t\005\146\005\182\001\n\005\225\b\026\001\015\001\011\005\234\005\243\005\253\0012\006\006\001\029\006\015\006\026\006#\006,\0063\006I\006]\006b\006n\006v\001Y\006~\b\225\006\133\006\139\001s\006\142\001\012\001\030\001>\006\144\001(\001)\006\151\006\160\001\002\006\170\001?\006\184\n\209\001@\001\027\006\195\001A\001B\b$\006\203\006\215\006\231\006\236\006\243\006\255\007\005\007\n\007\019\007\028\007\"\007'\001\011\0072\007D\007F\0012\007S\007\151\007f\007\128\007\137\007\159\007\166\007\171\007\177\001Y\007\190\007\199\007\201\007\208\001s\007\247\001\027\007\240\007\242\001\012\007\245\b\004\007\250\001(\001)\b\003\007\255\001\002\001>\b\002\b\022\b\030\b\"\001\011\b!\b&\001?\0012\b1\001@\b\149\b9\001A\001B\b$\b<\004P\bC\004Q\004R\002\168\bK\004S\bR\b]\b\148\b\141\001\012\b\142\b\147\b\151\001(\001)\b\152\b\158\001\002\004\127\b\163\b\167\b\185\b\192\001Y\001\007\001\b\001\t\004\133\001s\001\n\b\241\t\t\001\015\t\019\007\197\001>\tS\tM\tN\001\029\tR\tb\tq\001?\tl\tm\001@\to\t\136\001A\001B\b$\t\142\t\156\t\161\t\162\t\166\t\203\t\212\t\218\004\150\t\253\001\007\001\b\001\t\t\248\t\252\001\n\n\000\003R\001\015\n\004\n\014\001>\n)\n-\n8\001\029\001Y\n<\nF\001?\nB\001s\001@\nR\nL\001A\001B\001\129\nN\ne\nY\nd\n_\nc\np\nt\nv\nw\n\133\n~\n\127\n\132\n\147\000n\n\151\003\227\n\153\001\027\n\165\n\162\n\164\n\183\n\178\n\182\001Y\n\186\004\170\n\190\n\199\001s\n\194\n\198\n\202\n\206\001\011\n\220\n\215\n\219\0012\004V\n\223\004\160\002j\n\227\n\236\n\231\n\235\n\239\n\243\n\254\n\249\n\253\011\001\011\005\011\016\001\027\011\011\011\015\001\012\011\019\011\023\011%\001(\001)\011*\011,\001\002\011z\011\130\000\000\000\000\000\000\001\011\000\000\000\000\004\172\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\012\000\000\000\000\001\029\001(\001)\000\000\000\000\001\002\004\175\000\000\000\000\004\176\001\007\001\b\001\t\000\000\000\000\001\n\004\161\000\000\t\031\000\000\000\000\000\000\000\000\001>\000\000\004\190\000\000\002\217\004\163\000\000\003\240\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\166\000\000\004\192\002\167\002\168\000\000\002\169\000\000\000\000\001>\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001?\001\027\001s\001@\000\000\000\000\001A\001B\003\231\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\t!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001s\000\000\001\012\001\011\002\198\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\002\199\004\017\000\000\000\000\000\000\001\029\t$\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\017\001\007\001\b\001\t\000n\000\000\001\n\001\218\000\000\001\015\004\019\004\023\000\000\000\000\000\000\000\000\001\029\002\202\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\002\190\001@\000\000\002j\001A\001B\003\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\026\000\000\000\000\000\000\001\027\000\000\000\000\001?\000\000\000\000\t'\000\000\000\000\001A\001B\000\000\004\"\001Y\000\000\000\000\000\000\001\011\001s\000\000\002\204\0012\br\000\000\t+\000\000\t)\001\027\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\001\027\002\169\001Y\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\001\219\001\002\000\000\000\000\000\000\001\011\000\000\000\000\002\215\0012\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\222\000\000\002\217\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\002\198\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001>\000\000\000\000\000\000\002\199\004&\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\231\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004(\001\015\000\000\n\134\000\000\000\000\000\000\000n\001\029\001?\001>\000\000\001@\000\000\004,\001A\001B\001Y\001?\000\000\002\202\001@\001s\000\000\001A\001B\004\029\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\n\135\0040\n\136\001\027\000\000\000\000\004P\001Y\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\011\001s\000\000\000\000\0012\000\000\004\127\000\000\0047\000\000\000\000\000\000\000\000\000\000\000\000\004\133\002\204\000\000\n\137\000\000\000\000\001\027\006Y\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001\007\001\b\001\t\004\150\000\000\001\n\000\000\002\215\001\015\000\000\n\138\000\000\000\000\000\000\000\000\001\029\002\222\001\012\002\217\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\n\139\n\140\000\000\n\141\000\000\000\000\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\001>\000\000\005x\000\000\000\000\000n\000\000\000\000\001?\000\000\000\000\001@\n\169\000\000\001A\001B\003\231\000\000\004\170\000\000\002\170\004:\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\001>\tT\n\143\000\000\001\027\001Y\n\144\000\000\001?\n\146\001s\001@\n\152\n\154\001A\001B\0044\000\000\000\000\000\000\011\150\001\011\000\000\011\151\000\000\0012\n\166\tW\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\002\166\tX\000\000\002\167\002\168\000\000\002\169\001Y\000\000\001\012\000\000\n\167\001s\001(\001)\005\179\000\000\001\002\000\000\000\000\000\000\000\000\000\000\004\175\005\185\000\000\004\176\002\170\004:\000\000\002\182\002\183\002\188\004\161\000\000\000\000\000\000\tY\000\000\002\189\000\000\000\000\004\190\000\000\002\217\004\163\001\007\001\b\001\t\000\000\000\000\001\n\002\190\000\000\001\015\002j\000\000\000\000\004;\000\000\000\000\001\029\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\192\001\015\001>\000\000\tZ\000\000\000\000\000\000\001\029\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\014\000\000\005\171\t[\b\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007b\000\000\000\000\000\000\000\000\011\152\000\000\001Y\000\000\000\000\000\000\002\189\001s\000\000\000\000\000\000\000\000\000\000\000\000\002\215\007e\000\000\001\027\000\000\002\190\000\000\t]\002j\002\216\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t^\001\011\001\027\000\000\t_\0012\t\012\ta\000\000\002\166\tf\000\000\005m\002\168\000\000\002\169\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\tr\001\012\000\000\004<\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\005\138\002\197\000\000\002\182\002\183\002\188\000\000\001\012\000\000\ts\000\000\001(\001)\000\000\000\000\001\002\000\000\005f\005l\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\215\000\000\001\n\000\000\000\000\001\015\000\000\003\031\000\000\002\216\000\000\002\217\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\149\003$\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\005\186\001?\bk\000\000\001@\000\000\000\000\001A\001B\002\014\000\000\001>\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\001\015\001@\000\000\000\000\001A\001B\005\168\001\029\000\000\000\000\000\000\000\000\002\202\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\002\190\000\000\001\027\002j\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\007j\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\002\166\000\000\000\000\005m\002\168\000\000\002\169\000\000\000\000\000\000\000\000\005\189\007\160\003%\000\000\000\000\tT\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\027\005\138\002\197\000\000\002\182\002\183\002\188\000\000\000\000\011\150\000\000\000\000\011\151\000\000\000\000\000\000\tW\001\011\000\000\000\000\000\000\0012\000\000\000\000\002\215\000\000\tX\000\000\000\000\000\000\000\000\000\000\000\000\002\222\003\031\002\217\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\005\149\003$\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\tY\001?\000\000\000\000\001@\000\000\000\000\001A\001B\bp\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\007\001\b\001\t\001\029\005\168\001\n\000\000\000\000\001\015\000\000\002\202\000\000\000\000\000\000\001Y\001\029\tZ\000\000\000\000\001s\000\000\001>\000\000\002\190\000\000\000\000\002j\b\250\000\000\001?\000\000\000\000\001@\t[\000\000\001A\001B\b}\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000\000\000\000\002\166\000\000\000\000\005m\002\168\000\000\002\169\000\000\011\156\000\000\000\000\000\000\000\000\005\189\b\242\003%\000\000\001Y\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\001\027\005\138\002\197\t]\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\t^\000\000\001\011\000\000\t_\000\000\0012\ta\000\000\000\000\tf\002\215\000\000\000\000\001\011\000\000\000\000\000\000\0012\003\031\002\222\000\000\002\217\000\000\tr\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\005\149\003$\001\012\000\000\000\000\000\000\001(\001)\000\000\ts\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\001\007\001\b\001\t\000\000\000\000\001\n\001\029\000\000\001\015\000\000\005\168\000\000\000\000\000\000\000\000\001\029\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\002\190\000\000\000\000\002j\000\000\000\000\001?\007b\000\000\001@\001>\000\000\001A\001B\bp\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b}\t\230\000\000\t9\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\189\t\020\003%\000\000\001Y\000\000\000\000\000\000\000\000\001s\001\027\000\000\000\000\000\000\011S\000\000\001Y\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\011\000\000\000\000\002\215\0012\004P\000\000\004Q\004R\002\168\000\000\004S\002\222\000\000\002\217\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\004\127\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\011W\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\007\001\b\001\t\001\029\000\000\001\n\000\000\000\000\001\015\000\000\004\150\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\001>\000\000\001@\000\000\011Y\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\004\170\000\000\007j\000\000\000\000\001\027\001Y\000\000\000\000\000\000\000\000\001s\000\000\004V\000\000\004\160\002j\001\027\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\004P\000\000\004Q\004R\002\168\001\012\004S\000\000\004\172\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\004\127\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\t\225\000\000\004\175\000\000\000\000\004\176\000\000\004P\000\000\004Q\004R\002\168\004\161\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\150\004\127\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\004\133\000\000\000\000\000\000\000\000\001?\000\000\t\222\001@\001>\000\000\001A\001B\011\026\004\192\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011\024\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\150\001\015\000\000\000\000\000\000\000\000\000\000\001Y\001\029\000\000\000\000\000\000\001s\000\000\000\000\004\170\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\001\007\001\b\001\t\000\000\000\000\001\n\001\029\000\000\001\015\000\000\000\000\000\000\004\170\000\000\000\000\001\029\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\001\011\000\000\004\176\000\000\0012\000\000\000\000\000\000\000\000\004\161\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\001\012\000\000\000\000\001\027\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\004\175\000\000\001\011\004\176\000\000\004\192\0012\000\000\000\000\000\000\004\161\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001>\000\000\004\192\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\000\000\001A\001B\002\012\000\000\000\000\001\029\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\007\001\b\001\t\001\029\000\000\001\n\000\000\000\000\001\015\001Y\001>\000\000\000\000\000\000\001s\001\029\000\000\000\000\001?\001>\000\000\001@\000\000\000\000\001A\001B\001\223\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\142\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\001Y\001\029\001\027\000\000\000\000\001s\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\001\011\001\027\000\000\000\000\0012\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\001\027\002\169\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\0012\002\170\004:\000\000\002\182\002\183\002\188\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\027\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\001>\000\000\000\000\000\000\001\029\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\001C\000\000\001>\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\001\015\001@\001>\000\000\001A\001B\001\139\001\029\000\000\000\000\001?\000\000\002\189\001@\000\000\001Y\001A\001B\001\145\000\000\001s\000\000\001\007\001\b\001\t\002\190\000\000\001\n\002j\000\000\001\015\000\000\000\000\001Y\000\000\001\246\000\000\001\029\001s\000\000\000\000\001>\000\000\000\000\000\000\001Y\001\027\000\000\000\000\001?\001s\000\000\001@\000\000\000\000\001A\001B\001\182\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\tG\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001\012\000\000\001s\000\000\001(\001)\000\000\001\011\001\002\000\000\000\000\0012\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\002\216\000\000\002\217\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\tH\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001\012\000\000\000\000\001>\001(\001)\000\000\000\000\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\016\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\004\127\001?\000\000\000\000\001@\001Y\000\000\001A\001B\004\133\001s\000\000\000\000\000\000\000\000\000\000\007\206\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\001\027\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\002&\000\000\001\250\004\150\000\000\001\011\000\000\000\000\000\000\0012\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001\012\000\000\004\127\001s\001(\001)\002\166\000\000\001\002\002\167\002\168\004\133\002\169\000\000\000\000\000\000\000\000\000\000\007\203\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004\170\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\004\127\000\000\000\000\004\150\004V\000\000\004\160\002j\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\007\175\006\227\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\002\198\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002-\004\172\000\000\004\150\002\199\003\215\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\004\170\000\000\000\000\000\000\001\029\001Y\000\000\000\000\000\000\004\175\001s\000\000\004\176\004V\000\000\004\160\002j\000\000\000\000\004\161\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\002\190\000\000\004\170\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004\132\000\000\004V\000\000\004\160\002j\000\000\004\192\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\007\001\b\001\t\001\029\001\027\001\n\000\000\002\204\001\015\004\175\000\000\000\000\004\176\000\000\000\000\001\029\000\000\000\000\004\172\004\161\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\001\012\000\000\000\000\004\175\001(\001)\004\176\002\222\001\002\002\217\000\000\000\000\004\192\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\001\027\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\004\192\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\001>\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\002}\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001Y\000\000\001\007\001\b\001\t\001s\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\007\001\b\001\t\001\029\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001>\001\011\000\000\001\029\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\001>\000\000\001A\001B\002\132\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\002\145\001(\001)\000\000\000\000\001\002\000\000\000\000\t\240\000\000\000\000\001\007\001\b\001\t\001\027\001Y\001\n\000\000\000\000\001\015\001s\000\000\000\000\000\000\000\000\000\000\001\029\001Y\000\000\000\000\000\000\001\011\001s\001\027\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\001\012\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\000\000\000\000\0012\000\000\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\t\236\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\011\000\000\000\000\000\000\0012\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\177\000\000\001\012\001>\000\000\000\000\001(\001)\000\000\000\000\001\002\001?\000\000\000\000\001@\001>\000\000\001A\001B\002\210\001\007\001\b\001\t\001?\000\000\001\n\001@\001Y\001\015\001A\001B\002\238\001s\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\027\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001s\001\011\000\000\001>\000\000\0012\000\000\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\015\001A\001B\002\246\000\000\000\000\000\000\001\029\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\001Y\001\015\000\000\000\000\000\000\001s\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\004\127\001(\001)\001>\000\000\001\002\000\000\001\027\000\000\004\133\000\000\001?\000\000\000\000\001@\000\000\007\162\001A\001B\003+\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001\007\001\b\001\t\004\150\000\000\001\n\000\000\001Y\001\015\001\012\000\000\000\000\001s\001(\001)\001\029\001\011\001\002\000\000\000\000\0012\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\0038\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\004\170\000\000\000\000\000\000\001Y\001\029\000\000\000\000\000\000\001s\000\000\000\000\001>\004V\000\000\004\160\002j\000\000\000\000\000\000\001?\000\000\000\000\001@\001\027\000\000\001A\001B\003F\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\001\011\000\000\001>\000\000\0012\000\000\000\000\000\000\004\172\000\000\001?\004\127\000\000\001@\001Y\000\000\001A\001B\003T\001s\004\133\000\000\000\000\000\000\001\012\000\000\000\000\007=\001(\001)\000\000\000\000\001\002\000\000\001\027\000\000\000\000\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\001Y\000\000\000\000\004\161\000\000\001s\001\011\000\000\004\150\000\000\0012\000\000\004\190\000\000\002\217\004\163\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\004\127\000\000\001\002\000\000\000\000\004\192\000\000\001>\000\000\004\133\000\000\000\000\000\000\000\000\000\000\001?\006\248\000\000\001@\000\000\000\000\001A\001B\003\136\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\004\150\004V\000\000\004\160\002j\000\000\000\000\000\000\001Y\000\000\000\000\000\000\004\127\001s\000\000\000\000\001>\000\000\000\000\000\000\000\000\004\133\000\000\000\000\001?\000\000\000\000\001@\006\228\000\000\001A\001B\003\138\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\004\150\000\000\000\000\000\000\004\170\001Y\000\000\000\000\000\000\000\000\001s\000\000\004\127\004\175\000\000\000\000\004\176\004V\000\000\004\160\002j\004\133\000\000\004\161\000\000\000\000\000\000\000\000\006\220\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004\150\000\000\000\000\000\000\004\170\000\000\002\166\004\192\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\002\170\002\197\000\000\002\182\002\183\002\188\004\161\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\004\190\001\n\002\217\004\163\001\015\004\172\000\000\000\000\000\000\000\000\004\170\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\004\192\000\000\000\000\000\000\000\000\000\000\004\175\002\199\003\238\004\176\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\247\002\166\000\000\000\000\002\167\002\168\002\202\002\169\000\000\001\027\000\000\004\192\000\000\000\000\000\000\000\000\000\000\004\175\000\000\002\190\004\176\000\000\002j\000\000\000\000\000\000\001\011\004\161\002\170\002\197\0012\002\182\002\183\002\188\000\000\000\000\004\190\000\000\002\217\004\163\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\001\012\000\000\000\000\003\251\001(\001)\000\000\000\000\001\002\002\204\000\000\000\000\002\198\000\000\000\000\004\192\000\000\002\170\002\197\000\000\002\182\002\183\002\188\001\007\001\b\001\t\000\000\000\000\001\n\002\199\003\225\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\007\001\b\001\t\002\215\000\000\001\n\000\000\000\000\001\015\002\198\000\000\000\000\002\222\000\000\002\217\001\029\000n\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\002\199\003\225\000\000\002\202\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\229\001\007\001\b\001\t\002\190\000\000\001\n\002j\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\027\000\000\002\202\000\000\001s\000\000\000\000\000\000\003\236\000\000\000\000\000\000\000\000\000\000\000\000\002\190\002\204\001\011\002j\001\027\000\000\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001\011\000\000\000\000\001\029\0012\001\012\000\000\000\000\000\000\001(\001)\003\234\000\000\001\002\002\166\000\000\002\215\002\167\002\168\002\204\002\169\000\000\001\027\000\000\001\012\002\222\000\000\002\217\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\002\170\002\197\0012\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\002\222\000\000\002\217\001(\001)\001>\000\000\001\002\000\000\001\027\000\000\002\198\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\242\000\000\000\000\001>\000\000\001\011\000\000\002\199\004\024\0012\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\021\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\015\001\012\000\000\000\000\001s\001(\001)\001\029\000\000\001\002\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\001Y\000\000\000\000\002\202\001?\001s\000\000\001@\000\000\000\000\001A\001B\004\028\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\004\127\000\000\000\000\001s\000\000\000\000\001>\004\030\004 \004\133\000\000\000\000\000\000\000\000\001?\002\204\000\000\001@\001\027\000\000\001A\001B\004*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\002\166\004\150\000\000\002\167\002\168\000\000\002\169\000\000\001Y\000\000\002\215\000\000\000\000\001s\000\000\000\000\000\000\000\000\001\012\002\222\000\000\002\217\001(\001)\000\000\000\000\001\002\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\004F\001\029\000\000\000\000\000\000\000\000\000\000\004\170\000\000\002\198\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\004V\000\000\004\160\002j\000\000\000\000\002\199\003\215\000\000\000\000\001>\000\000\000\000\004\127\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\004\133\000\000\001A\001B\0042\000\000\000\000\006N\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\000\000\000\000\001\027\000\000\001Y\000\000\004\150\000\000\000\000\001s\000\000\000\000\002\190\000\000\000\000\002j\000\000\005j\000\000\001\011\004\176\006\219\000\000\0012\000\000\004\132\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\204\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\004\170\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\004\133\000\000\000\000\000\000\000\000\002\215\000\000\006F\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001>\004P\001\n\004Q\004R\002\168\004\172\004S\001?\004\150\000\000\001@\000\000\000\000\001A\001B\004h\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\007s\000\000\000\000\004\175\006E\000\000\004\176\000\000\002\166\000\000\001Y\002\167\002\168\004\161\002\169\001s\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\004\170\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004}\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\002\198\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\002\166\000\000\000\000\002\167\002\168\004\172\002\169\000\000\002\199\003\215\004\170\000\000\001\012\004\127\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\004\133\004V\000\000\004\160\002j\002\170\002\197\004\148\002\182\002\183\002\188\000\000\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\002\166\000\000\004\161\002\167\002\168\000\000\002\169\002\202\000\000\004\131\000\000\004\190\004\150\002\217\004\163\000\000\004\172\000\000\002\198\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\004\132\000\000\002\199\003\215\000\000\000\000\000\000\004\192\001?\000\000\000\000\001@\000\000\004\175\001A\001B\004\176\000\000\007z\004\167\000\000\000\000\000\000\004\161\000\000\000\000\000\000\002\204\002\198\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\170\000\000\000\000\000\000\000\000\000\000\007{\002\202\002\199\003\215\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\002\190\000\000\tT\002j\004\192\004P\002\215\004Q\004R\002\168\000\000\004S\000\000\004\132\000\000\002\222\000\000\002\217\000\000\000\000\000\000\011\150\000\000\000\000\011\151\004\127\000\000\000\000\tW\004\172\002\202\000\000\000\000\000\000\004\133\000\000\000\000\000\000\tX\000\000\002\204\004\174\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\004\150\000\000\004\161\000\000\000\000\000\000\000\000\tY\000\000\002\215\000\000\004\190\000\000\002\217\004\163\000\000\002\204\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\000\000\000\000\tZ\000\000\000\000\000\000\000\000\002\166\000\000\002\215\002\167\002\168\000\000\002\169\000\000\004\170\000\000\000\000\002\222\t[\002\217\002\166\000\000\000\000\002\167\002\168\000\000\002\169\004V\000\000\004\160\002j\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\011\161\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\004\181\000\000\000\000\t]\000\000\004\172\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\000\004\187\t^\000\000\000\000\000\000\t_\000\000\000\000\ta\002\198\000\000\tf\002\199\003\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\tr\002\199\003\215\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\002\166\000\000\ts\002\167\002\168\000\000\002\169\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\002\202\004\192\002j\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\004\132\002\190\000\000\004P\002j\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004\132\000\000\004\196\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\002\198\000\000\002\204\000\000\000\000\000\000\004P\004\133\004Q\004R\002\168\000\000\004S\000\000\004\202\000\000\002\204\002\199\003\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\002\215\000\000\004\150\000\000\004\201\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\002\202\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\002\190\002\166\000\000\002j\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\004V\002\204\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\207\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004\172\002\215\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\000\000\002\166\004\161\000\000\002\167\002\168\000\000\002\169\002\202\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\004\175\002\190\000\000\004\176\002j\000\000\000\000\000\000\002\170\002\197\004\161\002\182\002\183\002\188\004\132\000\000\000\000\000\000\000\000\004\190\004\192\002\217\004\163\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\004\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\002\198\002\166\000\000\000\000\002\167\002\168\004\192\002\169\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\004\219\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\222\000\000\002\217\001\007\001\b\001\t\000\000\000\000\001\n\004\225\000\000\n\191\000\000\000\000\000\000\002\202\002\199\003\215\002\198\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\190\000\000\000\000\002j\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\004\132\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\002\190\000\000\004\231\002j\000\000\000\000\002\202\000\000\000\000\000\000\000\000\002\198\000\000\004\132\000\000\000\000\000\000\000\000\000\000\002\190\002\166\000\000\002j\002\167\002\168\000\000\002\169\000\000\002\199\003\215\000\000\000\000\004\132\002\215\001\011\000\000\000\000\000\000\n\207\000\000\002\204\000\000\002\222\000\000\002\217\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\001\012\002\204\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\002\202\000\000\004\237\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\002\198\000\000\002\190\000\000\002\222\002j\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\004\132\002\166\002\199\003\215\002\167\002\168\000\000\002\169\002\222\000\000\002\217\000\000\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\000\000\002\204\002\170\002\197\000\000\002\182\002\183\002\188\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\170\002\197\002\202\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\004\243\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\002\198\002\215\000\000\000\000\000\000\004\249\000\000\011\006\004\132\000\000\002\222\000\000\002\217\000\000\002\198\000\000\000\000\002\199\003\215\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\002\199\003\215\000\000\000\000\002\204\002\166\000\000\000\000\002\167\002\168\004P\002\169\004Q\004R\002\168\000\000\004S\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\002\202\000\000\004\127\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004\133\002\215\002\190\002\202\004\255\002j\000\000\000\000\000\000\000\000\002\222\007\183\002\217\002\198\000\000\004\132\002\190\000\000\005\005\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\004\132\002\199\003\215\002\166\004\150\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\002\204\000\000\002\199\003\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\005\011\002\190\002\202\002\222\002j\002\217\000\000\004\170\002\215\002\198\000\000\000\000\000\000\000\000\004\132\002\190\000\000\002\222\002j\002\217\004V\000\000\004\160\002j\000\000\000\000\002\199\003\215\004\132\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\004\172\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\002\190\000\000\005\017\002j\000\000\002\222\000\000\002\217\007\185\000\000\002\215\002\198\000\000\004\132\002\166\004\161\000\000\002\167\002\168\002\222\002\169\002\217\000\000\000\000\004\190\000\000\002\217\004\163\002\199\003\215\000\000\000\000\000\000\000\000\000\000\000\000\tT\000\000\000\000\000\000\002\204\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\000\000\000\000\tU\000\000\000\000\000\000\tW\000\000\000\000\000\000\005\023\000\000\000\000\000\000\002\202\000\000\tX\000\000\002\166\002\198\002\215\002\167\002\168\000\000\002\169\000\000\000\000\002\190\000\000\002\222\002j\002\217\000\000\000\000\000\000\000\000\002\199\003\215\000\000\000\000\004\132\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\tY\000\000\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\002\204\000\000\000\000\005\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\002\198\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\tZ\002\190\000\000\000\000\002j\002\166\002\199\003\215\002\167\002\168\000\000\002\169\000\000\002\215\004\132\000\000\000\000\t[\000\000\005#\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\002\198\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\002\204\000\000\t\\\000\000\002\199\003\215\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\t]\002\190\000\000\000\000\002j\000\000\002\198\000\000\000\000\000\000\000\000\000\000\t^\000\000\004\132\000\000\t_\002\215\000\000\ta\000\000\000\000\tf\002\199\003\215\000\000\002\222\002\202\002\217\000\000\000\000\002\166\000\000\000\000\002\167\002\168\tr\002\169\000\000\000\000\002\190\002\204\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\000\000\ts\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\202\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\002\215\002\190\000\000\002\204\002j\000\000\005/\000\000\000\000\002\222\000\000\002\217\000\000\000\000\004\132\002\198\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\166\002\199\003\215\002\167\002\168\000\000\002\169\000\000\002\215\000\000\002\204\000\000\000\000\0055\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\002\198\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\000\000\002\202\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\005;\000\000\000\000\002\222\002\190\002\217\000\000\002j\002\166\002\198\000\000\002\167\002\168\000\000\002\169\000\000\000\000\004\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\002\202\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\190\000\000\002\204\002j\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\004\132\000\000\000\000\000\000\000\000\005A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\002\198\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\002\215\002\190\002\204\000\000\002j\000\000\002\199\003\215\000\000\002\222\000\000\002\217\000\000\000\000\004\132\000\000\000\000\000\000\000\000\005G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\002\215\000\000\000\000\002\204\000\000\000\000\000\000\002\199\003\215\002\222\002\202\002\217\000\000\004\127\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\004\133\002\190\000\000\000\000\002j\000\000\000\000\005d\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\002\215\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\002\222\002\202\002\217\000\000\000\000\002\166\000\000\004\150\002\167\002\168\000\000\002\169\000\000\000\000\002\190\002\204\000\000\002j\000\000\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\002\198\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\002\215\000\000\000\000\002\204\000\000\000\000\005[\000\000\000\000\002\222\000\000\002\217\000\000\000\000\004\170\002\198\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\002\199\003\215\000\000\000\000\002\202\004\127\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\002\222\002\190\002\217\000\000\002j\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\004\132\004\172\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\002\204\002j\000\000\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\004\132\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\002\215\004S\002\204\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\004\170\001\027\000\000\004\127\004\192\000\000\000\000\000\000\000\000\001\007\001\b\001\t\004\133\004V\001\n\004\160\002j\001\015\001\011\005t\000\000\000\000\0012\000\000\001\029\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\001\012\000\000\000\000\004\150\001(\001)\000\000\004\172\001\002\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005j\004\133\000\000\004\176\005k\000\000\000\000\000\000\005w\000\000\004\161\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\170\000\000\000\000\001>\000\000\000\000\000\000\000\000\001\011\000\000\004\150\001?\0012\004V\001@\004\160\002j\001A\001B\005r\000\000\000\000\000\000\004P\004\192\004Q\004R\002\168\000\000\004S\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\127\000\000\000\000\001Y\000\000\000\000\004\172\000\000\001s\004\133\000\000\000\000\000\000\000\000\000\000\004P\005|\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\004\170\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\127\004\175\000\000\004V\004\176\004\160\002j\004\150\000\000\004\133\000\000\004\161\000\000\000\000\000\000\000\000\005\127\000\000\001>\000\000\004\190\000\000\002\217\004\163\000\000\000\000\001?\001b\000\000\001@\000\000\000\000\001A\001B\005z\000\000\000\000\000\000\000\000\004\172\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\004P\004\192\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\004\170\001s\000\000\004\127\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\004\133\004V\004\161\004\160\002j\000\000\004P\005\130\004Q\004R\002\168\004\190\004S\002\217\004\163\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\004\133\004V\004\172\004\160\002j\004\192\001\012\005\133\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\004\175\004\150\000\000\004\176\000\000\004\172\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\004\190\004S\002\217\004\163\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\004\175\000\000\004V\004\176\004\160\002j\000\000\000\000\004\133\000\000\004\161\001?\000\000\004\192\001@\005\137\000\000\001A\001B\004\190\000\000\002\217\004\163\004P\004\170\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\001\027\000\000\000\000\004V\004\172\004\160\002j\004\150\000\000\004\127\000\000\000\000\001h\000\000\004\192\000\000\000\000\001\011\004\133\000\000\000\000\0012\000\000\000\000\000\000\005\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\000\000\004\172\000\000\001\012\000\000\000\000\004\161\001(\001)\000\000\000\000\001\002\000\000\004\150\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\004\170\004Q\004R\002\168\004\175\004S\000\000\004\176\000\000\000\000\000\000\000\000\000\000\004V\004\161\004\160\002j\004\192\000\000\004\127\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\005\145\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\004\170\000\000\000\000\000\000\001?\004\172\000\000\001@\004\192\000\000\001A\001B\005\140\004V\000\000\004\160\002j\004\150\000\000\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\001Y\000\000\000\000\000\000\004\127\001s\004\161\000\000\000\000\000\000\004\172\000\000\000\000\004\133\000\000\004\190\000\000\002\217\004\163\004P\005\148\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\004\127\004\175\000\000\000\000\004\176\004\192\000\000\004\150\000\000\004\133\004V\004\161\004\160\002j\000\000\000\000\005\151\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\002\166\004\150\000\000\002\167\002\168\004\172\002\169\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\004\175\000\000\004V\004\176\004\160\002j\000\000\000\000\000\000\000\000\004\161\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\190\001\015\002\217\004\163\000\000\004\170\003\031\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\004V\004\172\004\160\002j\000\000\003 \003$\000\000\000\000\000\000\000\000\004\192\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\000\000\004\172\000\000\001\012\000\000\004\127\004\161\001(\001)\000\000\000\000\001\002\000\000\002\202\004\133\004\190\000\000\002\217\004\163\000\000\000\000\005\175\000\000\000\000\000\000\001\027\002\190\000\000\000\000\002j\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\000\000\000\000\004\161\001\011\000\000\004\192\000\000\0012\004\150\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\003%\001\012\001>\000\000\000\000\001(\001)\000\000\000\000\001\002\001?\000\000\004\127\001@\004\192\000\000\001A\001B\005\157\000\000\000\000\004\133\000\000\004P\000\000\004Q\004R\002\168\005\178\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\004\170\000\000\000\000\004\127\000\000\001Y\002\222\000\000\002\217\000\000\001s\000\000\004\133\004V\004\150\004\160\002j\000\000\000\000\005\181\000\000\000\000\000\000\000\000\004P\001>\004Q\004R\002\168\000\000\004S\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\005\173\000\000\000\000\004\127\004\150\000\000\000\000\000\000\004\172\000\000\000\000\000\000\004\133\000\000\004P\000\000\004Q\004R\002\168\005\184\004S\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\004\170\001s\000\000\004\127\000\000\000\000\000\000\004\175\000\000\000\000\004\176\000\000\004\133\004V\004\150\004\160\002j\004\161\000\000\005\188\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\170\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004V\004\150\004\160\002j\000\000\004\172\000\000\000\000\000\000\004\127\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\005\197\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\004\175\004\172\000\000\004\176\000\000\000\000\004V\000\000\004\160\002j\004\161\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\170\000\000\004P\000\000\004Q\004R\002\168\004\175\004S\000\000\004\176\000\000\000\000\004V\000\000\004\160\002j\004\161\004\172\000\000\000\000\000\000\004\127\000\000\004\192\000\000\004\190\000\000\002\217\004\163\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\005\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\004\172\004\170\004\176\000\000\000\000\000\000\004\192\000\000\000\000\004\161\000\000\000\000\000\000\000\000\004V\004\150\004\160\002j\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\000\000\002\166\004\161\000\000\002\167\002\168\000\000\002\169\000\000\004\192\000\000\004\190\004\172\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004\170\000\000\000\000\000\000\000\000\004\192\000\000\004\175\000\000\000\000\004\176\000\000\000\000\004V\000\000\004\160\002j\004\161\005\227\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\002\198\002\217\004\163\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\005\236\000\000\000\000\002\202\004\127\000\000\004\161\000\000\002\166\002\198\000\000\002\167\002\168\004\133\002\169\004\190\002\190\002\217\004\163\002j\005\249\n\134\000\000\000\000\000\000\000\000\002\199\003\215\000\000\004\132\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\004\192\000\000\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\135\002\204\n\136\000\000\000\000\005\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\002\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\002\199\003\215\000\000\000\000\000\000\000\000\002\215\n\137\004\132\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\004\170\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\004V\000\000\004\160\002j\002\204\000\000\000\000\000\000\000\000\000\000\000\000\002\202\004\127\n\138\000\000\000\000\002\166\000\000\000\000\002\167\002\168\004\133\002\169\000\000\002\190\000\000\000\000\002j\006\002\000\000\n\139\n\140\000\000\n\141\000\000\000\000\004\172\004\132\000\000\000\000\002\215\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\002\222\000\000\002\217\000\000\000\000\004\150\000\000\000\000\000\000\n\168\000\000\000\000\000\000\000\000\000\000\002\204\000\000\004\175\000\000\005\255\004\176\000\000\000\000\000\000\000\000\000\000\000\000\004\161\002\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\n\143\002\217\004\163\000\000\n\144\000\000\000\000\n\146\002\199\003\215\n\152\n\154\000\000\000\000\002\215\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\222\n\166\002\217\004\170\000\000\004\192\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\004V\000\000\004\160\002j\002\170\002\197\n\167\002\182\002\183\002\188\000\000\002\202\004\127\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\004\133\002\169\000\000\002\190\000\000\000\000\002j\006\011\006\b\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004\132\002\198\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\004\150\002\199\003\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\004\175\000\000\006\017\004\176\000\000\000\000\000\000\000\000\000\000\000\000\004\161\002\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\002\202\000\000\000\000\002\215\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\222\002\190\002\217\004\170\002j\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\004V\000\000\004\160\002j\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\202\000\000\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\002\190\002\204\000\000\002j\000\000\006\028\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004\132\002\198\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\002\215\000\000\000\000\002\204\000\000\004\175\000\000\006%\004\176\002\222\000\000\002\217\000\000\000\000\000\000\004\161\002\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\002\202\000\000\002\166\002\215\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\002\222\002\190\002\217\000\000\002j\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\002\202\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\002\190\002\204\006.\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\004\132\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\002\204\0065\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\002\198\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\002\202\000\000\004\127\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\004\133\000\000\002\190\000\000\002\222\002j\002\217\006J\000\000\000\000\004P\000\000\004Q\004R\002\168\004\132\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\000\000\004\127\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\004\133\000\000\002\190\002\204\000\000\002j\000\000\006L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\002\204\000\000\004\127\000\000\000\000\000\000\002\222\000\000\002\217\000\000\004\170\004\133\000\000\000\000\000\000\000\000\000\000\000\000\006Q\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\002\222\000\000\002\217\000\000\004\170\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\004\172\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\006T\000\000\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\000\000\004\172\004\161\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\004\150\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\002\166\004\192\004\161\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004\170\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\000\000\000\000\004\175\000\000\004V\004\176\004\160\002j\000\000\006_\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\002\198\000\000\000\000\004\190\000\000\002\217\004\163\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\002\199\003\215\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\002\202\006d\000\000\004\161\000\000\002\166\000\000\000\000\002\167\002\168\002\198\002\169\004\190\002\190\002\217\004\163\002j\000\000\000\000\000\000\000\000\000\000\007s\000\000\000\000\000\000\004\132\002\199\003\215\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\002\166\004\192\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\006p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\170\002\197\002\202\002\182\002\183\002\188\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\190\002\199\003\215\002j\000\000\000\000\001\011\002\215\000\000\000\000\006x\000\000\000\000\004\132\000\000\000\000\002\222\000\000\002\217\002\198\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\199\003\215\001\002\000\000\002\204\000\000\000\000\002\202\000\000\006\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\002\199\003\215\000\000\000\000\000\000\002\215\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\002\204\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\132\001@\000\000\000\000\001A\001B\000\000\000\000\007\143\002\202\000\000\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\002\190\000\000\000\000\002j\002\166\002\204\002\215\002\167\002\168\000\000\002\169\007\146\000\000\004\132\000\000\002\222\000\000\002\217\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\002\204\002\215\000\000\000\000\006\135\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\002\198\000\000\000\000\006\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\000\000\000\000\002\166\002\199\003\215\002\167\002\168\000\000\002\169\002\215\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\146\000\000\000\000\002\202\002\190\000\000\000\000\002j\002\166\002\198\000\000\002\167\002\168\000\000\002\169\000\000\002\190\004\132\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\004\132\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\002\204\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\002\204\000\000\000\000\000\000\006\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\002\198\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\002\215\002\190\000\000\000\000\002j\000\000\002\199\003\215\000\000\002\222\000\000\002\217\002\215\000\000\004\132\000\000\000\000\000\000\000\000\006\172\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\002\198\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\002\204\000\000\000\000\000\000\002\199\003\215\000\000\002\202\000\000\000\000\004\127\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\004\133\002\190\000\000\000\000\002j\000\000\000\000\006\222\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\002\215\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\002\222\002\202\002\217\000\000\000\000\002\166\000\000\004\150\002\167\002\168\000\000\002\169\000\000\000\000\002\190\002\204\000\000\002j\000\000\006\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\002\198\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\002\215\000\000\000\000\002\204\000\000\000\000\006\217\000\000\000\000\002\222\000\000\002\217\000\000\000\000\004\170\002\198\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\002\199\003\215\000\000\000\000\002\202\004\127\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\002\222\002\190\002\217\000\000\002j\006\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\004\172\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\202\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\002\204\002j\000\000\000\000\004\175\002\170\002\197\004\176\002\182\002\183\002\188\004\132\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\006\233\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\204\002\198\002\166\000\000\000\000\002\167\002\168\002\222\002\169\002\217\004\170\000\000\000\000\000\000\004\192\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\006\238\000\000\000\000\000\000\000\000\004\172\002\202\000\000\000\000\002\198\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\190\000\000\000\000\002j\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\004\132\000\000\000\000\004\175\000\000\000\000\004\176\002\170\002\197\000\000\002\182\002\183\002\188\004\161\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\004\190\000\000\002\217\004\163\000\000\002\204\000\000\000\000\000\000\000\000\006\245\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\002\198\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\190\002\166\004\192\002j\002\167\002\168\000\000\002\169\000\000\002\199\003\215\000\000\000\000\004\132\002\215\000\000\000\000\000\000\007\007\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\002\198\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\000\000\002\202\000\000\007\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\002\190\002\166\000\000\002j\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\002\215\004\132\000\000\002\199\003\215\000\000\000\000\000\000\000\000\002\222\002\202\002\217\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\190\000\000\000\000\002j\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\000\000\000\000\007\021\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\002\198\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\190\000\000\000\000\002j\000\000\002\204\002\215\000\000\000\000\002\199\003\215\000\000\000\000\004\132\000\000\002\222\000\000\002\217\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\000\000\002\204\002\215\000\000\000\000\000\000\007\030\000\000\000\000\000\000\000\000\002\222\002\202\002\217\000\000\002\198\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\002\215\004\132\000\000\000\000\007)\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\002\198\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\199\003\215\000\000\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\190\000\000\000\000\002j\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\004\132\002\215\000\000\000\000\000\000\0074\001\029\000\000\000\000\002\202\002\222\000\000\002\217\004P\002\198\004Q\004R\002\168\000\000\004S\000\000\000\000\002\190\000\000\000\000\002j\000\000\002\204\000\000\000\000\000\000\002\199\003\215\004\127\000\000\004\132\000\000\000\000\000\000\000\000\000\000\004P\004\133\004Q\004R\002\168\000\000\004S\000\000\007B\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\004\127\002\204\002\215\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\002\222\002\202\002\217\004\150\001\027\007O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\001\227\002j\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\002\215\004\132\000\000\000\000\000\000\004\150\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\204\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\001\011\004\127\000\000\000\000\000\000\000\000\004\170\002\215\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\002\222\007\154\002\217\004V\000\000\004\160\002j\000\000\001\012\000\000\001>\004\172\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\007\140\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\004\175\000\000\002\166\004\176\000\000\002\167\002\168\000\000\002\169\000\000\004\161\000\000\001Y\000\000\000\000\000\000\000\000\001s\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\004\175\002\170\002\197\004\176\002\182\002\183\002\188\000\000\000\000\002\166\004\161\001?\002\167\002\168\001@\002\169\004\170\001A\001B\004\190\004\192\002\217\004\163\000\000\000\000\000\000\007\173\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\002\198\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\001h\000\000\004\192\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\179\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\000\000\002\202\004\175\000\000\000\000\004\176\000\000\002\166\000\000\000\000\002\167\002\168\004\161\002\169\002\190\000\000\000\000\002j\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\004\132\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\002\202\002\182\002\183\002\188\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\190\004\192\000\000\002j\000\000\002\204\000\000\000\000\000\000\000\000\007\205\000\000\000\000\004\132\000\000\000\000\000\000\000\000\000\000\002\198\002\170\002\197\000\000\002\182\002\183\002\188\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\002\199\003\215\000\000\000\000\002\204\002\215\000\000\000\000\000\000\007\210\004\127\000\000\000\000\000\000\002\222\000\000\002\217\000\000\002\198\004\133\000\000\000\000\001\007\001\b\001\t\000\000\b\012\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\002\199\003\215\001\029\000\000\000\000\002\215\000\000\002\202\000\000\000\000\000\000\000\000\tT\000\000\002\222\000\000\002\217\004\150\000\000\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\tU\000\000\000\000\000\000\tW\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\tX\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\000\000\001\027\000\000\000\000\004\170\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\tY\001\015\000\000\000\000\004V\001\011\004\160\002j\001\029\0012\000\000\002\204\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\tZ\000\000\004\172\000\000\000\000\000\000\001\007\001\b\001\t\002\215\000\000\001\n\000\000\000\000\001\015\000\000\000\000\t[\002\222\000\000\002\217\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\001\027\000\000\004\161\tw\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\190\001\015\002\217\004\163\001>\000\000\001\011\000\000\001\029\t]\0012\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\028\t^\000\000\000\000\000\000\t_\000\000\000\000\ta\004\192\001\012\tf\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\027\000\000\000\000\000\000\000\000\tr\000\000\001Y\001\007\001\b\001\t\000\000\001s\001\n\000\000\000\000\001\015\001\011\000\000\000\000\000\000\0012\000\000\001\029\000\000\000\000\ts\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\001\027\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\004\127\000\000\001\002\000\000\000\000\000\000\000\000\001>\001\011\004\133\000\000\000\000\0012\000\000\000\000\001?\b\166\000\000\001@\000\000\000\000\001A\001B\bI\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004P\004\150\004Q\004R\002\168\001\027\004S\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001s\000\000\000\000\001>\000\000\000\000\004\127\000\000\001\011\000\000\000\000\001?\0012\000\000\001@\004\133\000\000\001A\001B\bU\000\000\000\000\b\169\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\001\012\000\000\000\000\000\000\001(\001)\001\029\000\000\001\002\001>\000\000\000\000\000\000\004\170\001Y\000\000\004\150\001?\000\000\001s\001@\000\000\000\000\001A\001B\bo\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\004\127\000\000\000\000\001s\000\000\000\000\000\000\000\000\004\172\004\133\001>\000\000\000\000\000\000\000\000\000\000\b\184\000\000\001?\000\000\004\170\001@\001\027\000\000\001A\001B\b\127\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\004\175\001\011\000\000\004\176\004\150\0012\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\004\190\001s\002\217\004\163\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\004\172\000\000\001\002\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\004\175\004\170\004\133\004\176\000\000\000\000\000\000\000\000\000\000\b\187\004\161\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\004\190\000\000\002\217\004\163\000\000\000\000\001\007\001\b\001\t\001>\000\000\001\n\000\000\000\000\001\015\000\000\004\150\001?\000\000\000\000\001@\001\029\000\000\001A\001B\b\180\000\000\000\000\000\000\004\192\000\000\004\172\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\004\127\000\000\000\000\001s\000\000\000\000\000\000\004\175\000\000\004\133\004\176\000\000\000\000\000\000\000\000\000\000\b\200\004\161\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\004V\000\000\004\160\002j\001\027\000\000\000\000\000\000\004P\004\150\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\001\011\004\192\000\000\000\000\0012\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004\133\000\000\000\000\000\000\000\000\000\000\000\000\b\203\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\175\004\170\002\166\004\176\004\150\002\167\002\168\000\000\002\169\000\000\004\161\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\004\190\000\000\002\217\004\163\001\007\001\b\001\t\000\000\000\000\001\n\002\170\003\014\001\015\002\182\002\183\002\188\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\004\192\000\000\004\172\001?\000\000\000\000\001@\000\000\000\000\001A\001B\b\198\000\000\000\000\004\170\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\004\175\000\000\000\000\004\176\004\127\000\000\001Y\000\000\000\000\000\000\004\161\001s\000\000\004\133\000\000\000\000\000\000\000\000\000\000\004\190\b\224\002\217\004\163\004P\000\000\004Q\004R\002\168\001\027\004S\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\004\127\000\000\001\011\004\150\000\000\004\192\0012\000\000\000\000\004\133\n\134\000\000\002\190\000\000\000\000\002j\b\227\000\000\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\001\012\000\000\004\161\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\150\000\000\n\135\000\000\n\136\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\004\192\000\000\000\000\000\000\004\127\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\004\133\000\000\000\000\n\137\000\000\000\000\000\000\b\231\000\000\002\215\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\002\216\001?\002\217\004\170\001@\000\000\000\000\001A\001B\b\222\000\000\000\000\000\000\004\172\000\000\004\150\004V\000\000\004\160\002j\000\000\000\000\n\138\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001Y\000\000\001\029\n\139\n\140\001s\n\141\004\175\000\000\000\000\004\176\000\000\000\000\000\000\000\000\000\000\004\172\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\002\166\n\142\000\000\002\167\002\168\000\000\002\169\004\170\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\175\001\015\000\000\004\176\004V\000\000\004\160\002j\001\029\004\192\004\161\002\170\002\197\n\143\002\182\002\183\002\188\n\144\000\000\004\190\n\146\002\217\004\163\n\152\n\154\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\205\n\166\000\000\000\000\004\172\000\000\000\000\001\011\000\000\002\198\000\000\0012\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\167\000\000\000\000\000\000\002\199\003\215\000\000\000\000\000\000\001\012\000\000\000\000\004\175\001(\001)\004\176\000\000\001\002\000\000\000\000\001\027\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\004\192\001\012\002j\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\132\001>\000\000\000\000\002\166\000\000\000\000\002\167\002\168\001?\002\169\000\000\001@\000\000\000\000\001A\001B\t\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\002\166\001s\000\000\002\167\002\168\001>\002\169\000\000\t\220\000\000\000\000\000\000\000\000\001?\000\000\002\215\001@\002\198\000\000\001A\001B\t\194\000\000\000\000\002\222\000\000\002\217\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\199\003\215\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\001Y\000\000\000\000\001\029\t\224\001s\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\198\001\015\000\000\000\000\000\000\001\007\001\b\001\t\001\029\000\000\001\n\000\000\000\000\001\015\000\000\002\202\000\000\002\199\003\215\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\202\001\027\001\n\000\000\000\000\001\015\000\000\000\000\000\000\002\204\000\000\000\000\001\029\002\190\000\000\000\000\002j\000\000\001\011\001\027\000\000\000\000\0012\000\000\000\000\000\000\004\132\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\001\012\000\000\000\000\002\215\001(\001)\001\011\000\000\001\002\000\000\0012\002\204\002\222\000\000\002\217\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\001\011\002\217\000\000\000\000\0012\000\000\000\000\001>\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\001\162\001@\000\000\000\000\001A\001B\t\244\001\012\001>\000\000\000\000\001(\001)\000\000\000\000\001\002\001?\000\000\000\000\001@\001>\000\000\001A\001B\n\174\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\n\211\004P\001s\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001s\004\127\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\004\133\000\000\001s\000\000\000\000\001>\004P\0111\004Q\004R\002\168\000\000\004S\001?\000\000\000\000\001@\000\000\000\000\001A\001B\011(\000\000\000\000\000\000\000\000\004\127\000\000\001\011\000\000\000\000\000\000\001\178\004\150\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\0113\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\001s\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\002\166\000\000\000\000\002\167\002\168\004\170\002\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\002\166\004\160\002j\002\167\002\168\000\000\002\169\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\001?\000\000\004\170\001@\000\000\000\000\001A\001B\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004V\004\172\004\160\002j\003\026\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\002\199\002\231\002\198\000\000\000\000\000\000\004\175\000\000\001\011\004\176\000\000\004\172\0012\000\000\000\000\000\000\004\161\000\000\000\000\002\199\003\005\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000n\000\000\tT\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004\175\002\202\000\000\004\176\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\tU\004\192\002\190\000\000\tW\002j\000\000\004\190\002\202\002\217\004\163\000\000\000\000\000\000\tX\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\166\004\192\001\n\002\167\002\168\001\015\002\169\002\204\001>\000\000\000\000\000\000\001\029\000\000\000\000\tY\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\002\204\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\003\023\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\002\222\tZ\002\217\000\000\001\248\000\000\000\000\000\000\002\166\002\198\002\215\002\167\002\168\000\000\002\169\000\000\000\000\000\000\t[\002\222\000\000\002\217\000\000\000\000\000\000\000\000\002\199\003\005\002\166\000\000\001\027\002\167\002\168\000\000\002\169\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\t\129\000\000\003\003\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\t]\000\000\000\000\000\000\000\000\003\007\000\000\002\202\002\198\000\000\001\012\000\000\t^\000\000\001(\001)\t_\000\000\001\002\ta\002\190\000\000\tf\002j\000\000\002\199\003\005\000\000\002\198\001\007\001\b\001\t\000\000\000\000\001\n\000\000\tr\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\002\199\003\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ts\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\004P\002\202\004Q\004R\002\168\000\000\004S\004P\001>\004Q\004R\002\168\000\000\004S\002\190\000\000\001?\002j\000\000\001@\004\127\002\202\001A\001B\000\000\000\000\000\000\000\000\000\000\004\133\002\215\000\000\000\000\000\000\002\190\000\000\0067\002j\000\000\002\222\0078\002\217\000\000\004P\000\000\004Q\004R\002\168\001\027\004S\000\000\001Y\000\000\000\000\002\204\000\000\003\131\000\000\000\000\000\000\000\000\000\000\004\150\004\127\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\004\133\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007,\000\000\000\000\000\000\000\000\000\000\001\012\002\215\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\222\000\000\002\217\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\002\215\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\222\004\170\002\217\000\000\000\000\000\000\000\000\000\000\004U\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\001\231\004P\000\000\004Q\004R\002\168\001>\004S\000\000\002\166\000\000\000\000\002\167\002\168\001?\002\169\004\170\001@\000\000\000\000\001A\001B\004\172\000\000\000\000\000\000\000\000\000\000\000\000\004V\0067\004\160\002j\000\000\000\000\0069\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\003\133\007:\t\005\004P\000\000\004Q\004R\002\168\004\161\004S\000\000\004\172\000\000\001\011\000\000\004\161\002\198\004\190\000\000\002\217\004\163\000\000\000\000\004\127\004\162\002\166\002\217\004\163\002\167\002\168\000\000\002\169\004\133\002\199\003\215\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\006=\007.\001\002\004\192\000\000\000\000\000\000\000\000\004\161\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004\150\000\000\004U\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\202\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\002\198\000\000\002\190\004\192\000\000\002j\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\006\226\000\000\002\199\003\238\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\006:\004\170\000\000\000\000\000\000\000\000\002\204\002\198\000\000\004P\000\000\004Q\004R\002\168\004V\004S\004\160\002j\000\000\000\000\000\000\000\000\001h\002\202\002\199\004-\000\000\002\166\000\000\004\127\002\167\002\168\000\000\002\169\004\161\000\000\002\190\000\000\004\133\002j\000\000\000\000\002\215\004\162\000\000\002\217\004\163\000\000\000\000\006<\004\172\002\222\000\000\002\217\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\003\248\004\150\000\000\000\000\000\000\000\000\002\204\000\000\000\000\002\190\000\000\000\000\002j\005\207\000\000\000\000\000\000\000\000\002\198\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\002\199\003\215\000\000\000\000\000\000\000\000\0045\002\215\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\004\192\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\002\202\000\000\000\000\000\000\000\000\000\000\002\166\000\000\002\215\005`\002\168\000\000\002\169\002\190\000\000\000\000\002j\002\222\002\166\002\217\000\000\002\167\002\168\000\000\002\169\000\000\004\169\000\000\000\000\000\000\000\000\004\172\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\005e\000\000\000\000\002\170\004:\000\000\002\182\002\183\002\188\000\000\004P\002\204\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\005\207\000\000\000\000\002\198\000\000\000\000\000\000\004\161\004\127\000\000\000\000\000\000\004;\000\000\000\000\000\000\004\190\004\133\002\217\004\163\002\199\002\231\000\000\000\000\000\000\002\215\000\000\000\000\005\205\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\000\000\000n\004\150\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\002\189\002\190\000\000\000\000\002j\000\000\004\133\000\000\004P\000\000\004Q\004R\002\168\002\190\004S\000\000\002j\005\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\004\133\000\000\004\150\000\000\002\204\000\000\000\000\000\000\000\000\000\000\004V\005\211\004\160\002j\000\000\000\000\000\000\004<\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\002\166\000\000\000\000\002\167\002\168\000\000\002\169\004\150\000\000\000\000\000\000\000\000\000\000\004\127\002\215\000\000\000\000\005f\005l\000\000\004\172\000\000\004\133\002\222\000\000\002\217\002\215\002\170\002\171\000\000\002\182\002\183\002\188\005\214\004\170\002\216\000\000\002\217\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\004V\000\000\004\160\002j\000\000\000\000\005\207\000\000\004\150\000\000\000\000\000\000\004\127\004\161\000\000\000\000\000\000\000\000\004\170\000\000\000\000\004\133\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\004V\005\221\004\160\002j\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\150\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004\170\004\172\000\000\005\207\000\000\000\000\000\000\002\189\000\000\004\127\004\161\000\000\000\000\004V\000\000\004\160\002j\000\000\004\133\004\190\002\190\002\217\004\163\002j\000\000\000\000\000\000\000\000\000\000\005\230\000\000\000\000\000\000\000\000\005\207\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\004\170\000\000\004\192\004\172\004\190\004\150\002\217\004\163\004P\000\000\004Q\004R\002\168\004V\004S\004\160\002j\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\004\192\000\000\000\000\005\207\004\133\004\127\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\004\133\005\239\004\172\002\215\000\000\004\190\000\000\002\217\004\163\000\000\000\000\006\022\002\216\000\000\002\217\004P\004\170\004Q\004R\002\168\000\000\004S\000\000\004\150\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\150\004\192\005\207\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\t\199\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\004\192\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\004\170\000\000\000\000\004V\000\000\004\160\002j\005\207\004\133\000\000\000\000\000\000\000\000\004V\004\161\004\160\002j\000\000\004P\006\031\004Q\004R\002\168\004\190\004S\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\004\172\000\000\004\150\000\000\000\000\004U\000\000\000\000\004\133\000\000\004\172\000\000\000\000\004\192\000\000\000\000\000\000\000\000\004V\006(\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\207\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004\150\000\000\005\207\000\000\000\000\000\000\000\000\000\000\004\190\004\161\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\004\190\004\170\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\004\192\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\004\192\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\004\170\000\000\004\127\000\000\004\162\000\000\002\217\004\163\000\000\000\000\004\172\004\133\000\000\004V\000\000\004\160\002j\004P\000\000\004Q\004R\002\168\006@\004S\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\005\207\004\150\004\127\004\133\000\000\000\000\004\172\004\161\000\000\000\000\000\000\004\133\000\000\000\000\006C\000\000\004\190\000\000\002\217\004\163\000\000\000\000\006\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\005\207\000\000\000\000\000\000\000\000\004\150\004\192\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\127\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\004\133\000\000\004V\004\172\004\160\002j\000\000\000\000\000\000\000\000\004V\006\176\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\005\207\000\000\004\172\000\000\000\000\004\127\000\000\004\161\000\000\002\166\004\172\000\000\002\167\002\168\004\133\002\169\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\006\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\204\000\000\005\207\002\170\004:\000\000\002\182\002\183\002\188\004\161\006\165\000\000\004\192\000\000\004\150\000\000\000\000\004\161\004\190\000\000\002\217\004\163\004\170\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\004;\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\192\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\002\166\004\172\004\170\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\b\228\000\000\002\189\002\170\004:\000\000\002\182\002\183\002\188\000\000\006\178\000\000\000\000\000\000\000\000\002\190\000\000\004\161\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\004\172\002\217\004\163\000\000\001\007\001\b\001\t\004;\000\000\001\n\000\000\000\000\t\031\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004<\001\011\000\000\000\000\006\191\0012\000\000\000\000\000\000\000\000\000\000\004\161\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004\190\t\031\002\217\004\163\000\000\001\012\005f\005l\000\000\001(\001)\000\000\000\000\001\002\000\000\002\215\000\000\000\000\000\000\000\000\002\189\000\000\000\000\000\000\002\216\000\000\002\217\000\000\000\000\004\192\000\000\000\000\000\000\002\190\000\000\002\166\002j\000\000\002\167\002\168\t!\002\169\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\t\031\000\000\001\011\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\001>\000\000\000\000\000\000\000\000\004<\000\000\000\000\001?\t!\000\000\001@\t$\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\000\000\001\011\002\198\000\000\000\000\000\000\005f\005l\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\215\t\031\000\000\001Y\002\199\011o\000\000\011q\007d\002\216\t$\002\217\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\t!\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\t\031\000\000\001\011\000\000\000\000\000\000\001?\000\000\002\202\t'\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\br\t$\t*\000\000\t)\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\000\000\t!\001Y\000\000\000\000\001?\000\000\000\000\t'\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\002\204\000\000\br\000\000\t(\000\000\t)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t!\000\000\001Y\000\000\t$\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\000\000\000\000\000\000\001\011\000\000\000\000\002\215\001?\000\000\000\000\t'\000\000\000\000\001A\001B\002\222\000\000\002\217\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\br\t$\tD\000\000\t)\001(\001)\000\000\000\000\001\002\001\005\000\000\004\127\000\000\000\000\000\000\001Y\000\000\000\000\000\000\002\166\004\133\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\166\000\000\001?\002\167\002\168\t'\002\169\000\000\001A\001B\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004\150\br\000\000\nz\000\000\t)\000\000\002\170\004:\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\000\000\t'\000\000\000\000\001A\001B\002\198\004P\000\000\004Q\004R\002\168\002\166\004S\000\000\002\167\002\168\br\002\169\n\130\000\000\t)\000\000\002\199\t\191\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\004\133\004\170\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\004\150\000\000\000\000\000\000\002\198\004\127\000\000\000\000\000\000\002\190\002\189\000\000\002j\000\000\004\133\000\000\000\000\004\172\000\000\000\000\000\000\002\199\t\177\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\002\204\t\206\000\000\000\000\000\000\000\000\000\000\002\166\004\161\004\170\002\167\002\168\000\000\002\169\002\202\b\255\000\000\004\190\000\000\002\217\004\163\000\000\004V\000\000\004\160\002j\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\002\170\002\197\002\215\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\002\222\004\192\002\217\000\000\000\000\002\215\002\166\000\000\000\000\002\167\002\168\004\170\002\169\004\172\002\216\000\000\002\217\000\000\000\000\000\000\000\000\000\000\002\204\002\198\004V\000\000\004\160\002j\000\000\000\000\t\011\000\000\000\000\002\170\002\181\000\000\002\182\002\183\002\188\000\000\002\199\003\015\000\000\000\000\000\000\002\166\007\221\000\000\002\167\002\168\000\000\002\169\000\000\004\161\000\000\000\000\000\000\000\000\002\215\000\000\004\172\000\000\004\190\000\000\002\217\004\163\000\000\002\222\000\000\002\217\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\007\174\000\000\002\190\000\000\000\000\002j\000\000\004\161\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\004\190\000\000\002\217\004\163\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\002\199\003\r\002\166\002\189\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\002\204\000\000\000\000\004\192\002\190\002\170\002\197\002j\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\004P\002\202\004Q\004R\002\168\002\166\004S\002\215\002\167\002\168\002\198\002\169\000\000\000\000\002\190\000\000\002\222\002j\002\217\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\000\002\199\003\n\007\188\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\199\002\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\002\216\000\000\002\217\001\007\001\b\001\t\002\198\000\000\001\n\002\202\000\000\001\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\002\190\002\199\002\200\002j\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\002\222\000\000\002\217\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\004U\000\000\002\204\000\000\002\166\002\202\000\000\002\167\002\168\000\000\002\169\000\000\000\000\004V\002\204\004\160\002j\000\000\002\190\002\170\002\197\002j\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\002\222\002\166\002\217\002\215\002\167\002\168\002\198\002\169\000\000\000\000\000\000\002\204\002\222\002\166\002\217\000\000\002\167\002\168\002\198\002\169\000\000\000\000\001\012\002\199\002\203\000\000\001(\001)\002\170\002\197\001\002\002\182\002\183\002\188\000\000\002\199\002\219\000\000\000\000\001\011\002\170\002\197\004\161\002\182\002\183\002\188\000\000\002\215\000\000\000\000\000\000\004\162\000\000\002\217\004\163\000\000\002\222\000\000\002\217\000\000\000\000\000\000\002\198\001\012\000\000\002\202\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\002\198\000\000\000\000\002\202\002\190\002\199\002\221\002j\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\002\190\002\199\002\252\002j\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\000\000\002\204\000\000\002\166\002\202\000\000\002\167\002\168\000\000\002\169\000\000\000\000\001Y\002\204\000\000\000\000\002\202\002\190\001?\000\000\002j\001@\000\000\000\000\001A\001B\002\198\000\000\000\000\002\190\002\170\002\197\002j\002\182\002\183\002\188\000\000\002\215\000\000\000\000\000\000\000\000\000\000\002\199\002\244\000\000\002\222\000\000\002\217\002\215\000\000\000\000\000\000\001\229\000\000\000\000\000\000\002\204\002\222\000\000\002\217\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\166\002\199\002\249\002\167\002\168\002\202\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\002\222\000\000\002\217\002\215\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\222\002\166\002\217\000\000\002\167\002\168\000\000\002\169\000\000\002\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\002\204\002j\000\000\002\198\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\002\199\003\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\003\031\002\204\002\170\002\197\000\000\002\182\002\183\002\188\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\0031\003$\000\000\004P\000\000\004Q\004R\002\168\002\202\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\031\000\000\002\215\002\190\002\166\004\127\002j\002\167\002\168\000\000\002\169\002\222\000\000\002\217\004\133\000\000\000\000\003>\003$\000\000\000\000\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\002\190\000\000\000\000\002j\004P\002\204\004Q\004R\002\168\004\150\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\202\000\000\004\127\000\000\003\031\000\000\004P\000\000\004Q\004R\002\168\004\133\004S\002\190\000\000\000\000\002j\003%\000\000\002\215\000\000\003L\003$\000\000\000\000\000\000\004\127\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\166\007\022\004\170\002\167\002\168\000\000\002\169\000\000\000\000\003%\000\000\002\215\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\002\222\002\202\002\217\000\000\000\000\004\150\000\000\002\170\004:\000\000\002\182\002\183\002\188\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\002\222\000\000\002\217\004;\004\170\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\004V\003%\004\160\002j\000\000\000\000\000\000\000\000\004\127\000\000\000\000\004\170\007\031\000\000\000\000\000\000\000\000\004\133\000\000\004\161\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\004\172\000\000\002\215\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\002\222\002\189\002\217\004\150\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\172\002\190\000\000\000\000\002j\000\000\000\000\002\170\002\197\007\024\002\182\002\183\002\188\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\007\014\000\000\000\000\000\000\000\000\000\000\000\000\004\161\002\198\004<\000\000\000\000\000\000\000\000\000\000\004\170\004\190\000\000\002\217\004\163\000\000\004\192\000\000\000\000\000\000\002\199\004m\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\004>\005l\004P\000\000\004Q\004R\002\168\000\000\004S\002\215\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\002\217\000\000\004\127\000\000\004P\000\000\004Q\004R\002\168\004\172\004S\004\133\002\202\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\004\127\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\004\133\004\127\004P\000\000\004Q\004R\002\168\000\000\004S\006\218\004\133\004\150\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\004\133\002\204\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\004\127\002\166\002\215\004\170\002\167\002\168\000\000\002\169\000\000\004\133\000\000\002\222\000\000\002\217\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004\170\000\000\000\000\004V\000\000\004\160\002j\004\150\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\172\000\000\000\000\000\000\004\170\004P\000\000\004Q\004R\002\168\002\198\004S\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\004\172\000\000\000\000\004\127\000\000\002\199\005\165\000\000\000\000\000\000\004\172\006;\004\133\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\004\190\000\000\002\217\004\163\004\172\000\000\005\195\000\000\000\000\000\000\000\000\000\000\004V\004\161\004\160\002j\004\182\000\000\004\150\000\000\002\202\000\000\004\190\004\161\002\217\004\163\000\000\000\000\000\000\004\192\000\000\000\000\004\190\002\190\002\217\004\163\002j\004\188\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\004\172\000\000\000\000\004\192\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\004\192\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\002\204\000\000\000\000\004\170\000\000\000\000\000\000\000\000\004\197\004\192\000\000\000\000\004\127\000\000\000\000\004\161\004V\000\000\004\160\002j\000\000\004\133\000\000\000\000\004\190\000\000\002\217\004\163\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\000\000\004\127\000\000\000\000\004\172\004\192\004\150\000\000\000\000\004P\004\133\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\208\004\133\000\000\000\000\000\000\000\000\004\150\004\161\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\127\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\004\133\000\000\004V\000\000\004\160\002j\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\004\150\004\127\000\000\000\000\000\000\004\172\004V\000\000\004\160\002j\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\214\000\000\000\000\000\000\004\172\004\150\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\004\170\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\004\172\004V\000\000\004\160\002j\004\220\000\000\000\000\000\000\000\000\000\000\004\127\004\161\004\192\000\000\000\000\000\000\000\000\000\000\000\000\004\133\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\226\000\000\000\000\000\000\004\172\000\000\004P\004\161\004Q\004R\002\168\004V\004S\004\160\002j\000\000\004\190\004\192\002\217\004\163\004\150\000\000\000\000\000\000\000\000\000\000\004\127\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\004\133\000\000\004\232\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004\192\000\000\004\172\004\127\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\238\000\000\004\192\000\000\000\000\000\000\000\000\004\161\000\000\000\000\004\150\004V\000\000\004\160\002j\000\000\004\190\000\000\002\217\004\163\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\004\192\004\170\004\172\004\127\004\133\004P\000\000\004Q\004R\002\168\000\000\004S\004\133\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\004\244\004V\004\150\004\160\002j\000\000\000\000\004\161\000\000\000\000\004\150\000\000\000\000\000\000\000\000\004\172\004\190\000\000\002\217\004\163\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\004\172\000\000\000\000\004\127\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\250\004\133\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\004\190\000\000\002\217\004\163\004\170\000\000\005\000\000\000\000\000\004V\000\000\004\160\002j\004\161\000\000\000\000\000\000\004V\004\150\004\160\002j\000\000\004\190\000\000\002\217\004\163\004\170\000\000\004P\004\192\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\004\172\000\000\000\000\004\127\000\000\000\000\004\192\004P\004\172\004Q\004R\002\168\004\133\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\004\172\004\170\000\000\005\006\000\000\000\000\004\133\000\000\000\000\000\000\004\161\005\012\000\000\000\000\004V\004\150\004\160\002j\004\161\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\005\018\000\000\000\000\000\000\000\000\000\000\004\150\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\190\004\172\002\217\004\163\000\000\000\000\004P\004\192\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\004\192\000\000\000\000\000\000\000\000\005\024\007\017\000\000\004V\000\000\004\160\002j\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\190\000\000\002\217\004\163\004P\000\000\004Q\004R\002\168\000\000\004S\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004\127\000\000\000\000\000\000\004P\004\192\004Q\004R\002\168\004\133\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\030\004\133\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004P\004\150\004Q\004R\002\168\000\000\004S\004\190\000\000\002\217\004\163\004U\000\000\000\000\000\000\005$\000\000\000\000\000\000\000\000\004\127\000\000\004\161\000\000\004V\004\150\004\160\002j\000\000\004\133\000\000\004\190\000\000\002\217\004\163\004P\004\192\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\004\170\004\192\000\000\004\150\000\000\004\133\004P\000\000\004Q\004R\002\168\000\000\004S\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\127\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\004\133\000\000\004V\004\150\004\160\002j\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004\162\000\000\002\217\004\163\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\004\172\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\005*\000\000\000\000\000\000\000\000\003\031\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\190\000\000\002\217\004\163\000\000\000\000\005\163\003$\0050\000\000\000\000\004V\004\172\004\160\002j\004\161\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\004\190\000\000\002\217\004\163\004\170\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\004V\000\000\004\160\002j\0056\004\133\004\172\000\000\002\202\000\000\000\000\004\161\004\192\004P\000\000\004Q\004R\002\168\000\000\004S\004\190\002\190\002\217\004\163\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\004\172\000\000\004\150\005<\000\000\004P\004\133\004Q\004R\002\168\004\161\004S\000\000\004\192\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\003%\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005B\004\133\000\000\000\000\000\000\000\000\004\150\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\002\215\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\002\222\000\000\002\217\004V\000\000\004\160\002j\000\000\004\192\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\004\172\004V\004\133\004\160\002j\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\004V\000\000\004\160\002j\005H\004\133\004\150\000\000\004\172\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\004\150\000\000\000\000\005V\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\005\\\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004\190\004\192\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\004P\004\170\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\172\004\192\004\127\tT\000\000\000\000\004P\000\000\004Q\004R\002\168\004\133\004S\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\011\141\004\127\000\000\000\000\tW\000\000\000\000\004\172\005\228\004\127\004\133\000\000\000\000\000\000\tX\004\161\000\000\000\000\004\133\004\150\000\000\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\166\000\000\000\000\002\167\002\168\005\237\002\169\000\000\004\150\000\000\000\000\000\000\004\161\000\000\000\000\tY\004\150\000\000\004\192\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\002\170\002\214\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\002\166\000\000\000\000\002\167\002\168\004\192\002\169\000\000\tZ\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\t[\000\000\002\170\004:\004\170\002\182\002\183\002\188\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\172\004P\011\142\004Q\004R\002\168\004P\004S\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\t]\000\000\004\172\000\000\004\127\000\000\000\000\002\189\004\133\000\000\004\172\005\246\t^\004\133\000\000\000\000\t_\000\000\004\161\ta\002\190\000\000\tf\002j\000\000\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\006\000\tr\000\000\000\000\000\000\000\000\004\150\004\161\006\t\000\000\000\000\004\150\000\000\000\000\000\000\004\161\004\190\002\189\002\217\004\163\000\000\004\192\ts\000\000\004\190\000\000\002\217\004\163\000\000\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\004P\000\000\004Q\004R\002\168\000\000\004S\004\192\004P\000\000\004Q\004R\002\168\000\000\004S\002\215\000\000\000\000\004\170\000\000\004\127\000\000\000\000\004\170\002\216\tG\002\217\000\000\004\127\004\133\000\000\004V\000\000\004\160\002j\000\000\004V\004\133\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\002\215\004S\004\150\000\000\000\000\000\000\000\000\004\172\000\000\002\216\004\150\002\217\004\172\000\000\000\000\004\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\tP\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\018\000\000\000\000\000\000\000\000\006\029\000\000\004\161\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\004\190\004\150\002\217\004\163\004\170\004\190\000\000\002\217\004\163\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\192\000\000\000\000\000\000\000\000\004\192\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\172\000\000\004\127\000\000\000\000\000\000\004\170\000\000\004\172\000\000\004P\004\133\004Q\004R\002\168\000\000\004S\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\006&\000\000\000\000\000\000\000\000\000\000\004\133\004\161\006/\000\000\000\000\004\150\000\000\000\000\000\000\004\161\004\190\000\000\002\217\004\163\000\000\000\000\004\172\000\000\004\190\000\000\002\217\004\163\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\002\166\000\000\000\000\002\167\002\168\004\192\002\169\0066\002\170\002\197\000\000\002\182\002\183\002\188\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\190\000\000\002\217\004\163\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\002\198\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\002\199\006\130\002\198\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\006k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\166\000\000\004\172\002\167\002\168\002\202\002\169\006e\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\004\190\002\202\002\217\004\163\002\170\002\197\000\000\002\182\002\183\002\188\000\000\000\000\006q\000\000\002\190\000\000\000\000\002j\000\000\004\161\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\004\190\004\192\002\217\004\163\000\000\000\000\000\000\002\204\000\000\000\000\002\198\000\000\000\000\004\127\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\004\133\000\000\000\000\000\000\002\204\002\199\006s\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\002\215\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\002\222\000\000\002\217\004\150\000\000\004P\000\000\004Q\004R\002\168\002\215\004S\000\000\000\000\000\000\000\000\000\000\002\202\000\000\002\222\000\000\002\217\000\000\002\198\000\000\004\127\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\004\133\000\000\000\000\000\000\000\000\000\000\002\199\006{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\002\204\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\002\202\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\002\190\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\004\127\000\000\002\215\000\000\000\000\000\000\004\172\000\000\000\000\004\133\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\002\204\000\000\000\000\004V\000\000\004\160\002j\000\000\006y\000\000\000\000\004\150\004\127\000\000\004P\004\161\004Q\004R\002\168\000\000\004S\004\133\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\002\215\000\000\000\000\004\172\000\000\000\000\000\000\004\133\000\000\002\222\004P\002\217\004Q\004R\002\168\000\000\004S\004\192\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\004\170\000\000\000\000\006\129\000\000\000\000\004\133\004\150\000\000\000\000\004\161\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\004\190\000\000\002\217\004\163\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\004\170\000\000\004\127\000\000\000\000\004\192\004\172\000\000\000\000\000\000\000\000\004\133\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\004\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\004V\004S\004\160\002j\006\136\000\000\000\000\000\000\000\000\004\150\000\000\004\161\000\000\000\000\004\172\004\127\000\000\000\000\000\000\004\170\004\190\000\000\002\217\004\163\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004\172\000\000\000\000\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\006\148\004S\004\192\000\000\000\000\000\000\000\000\004\161\000\000\000\000\004\150\000\000\000\000\000\000\000\000\004\127\004\190\000\000\002\217\004\163\004\170\004\172\006\147\000\000\004\133\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\154\000\000\000\000\004\150\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\004\192\004\170\004\172\004\190\000\000\002\217\004\163\004P\000\000\004Q\004R\002\168\000\000\004S\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\127\000\000\000\000\000\000\000\000\004\192\000\000\000\000\006\240\004\133\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\004\170\000\000\004\172\004\190\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004\150\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\002\166\000\000\004\192\002\167\002\168\006\239\002\169\000\000\000\000\000\000\000\000\000\000\004\161\004\127\000\000\000\000\000\000\000\000\000\000\004\172\000\000\004\190\004\133\002\217\004\163\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\024\000\000\000\000\000\000\000\000\000\000\000\000\001\026\004\170\004\192\000\000\006\246\000\000\000\000\004\150\000\000\000\000\000\000\004\161\000\000\002\198\004V\002\166\004\160\002j\002\167\002\168\004\190\002\169\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\002\199\b\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\170\002\197\000\000\002\182\002\183\002\188\000\000\004\192\004\172\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001F\000\000\000\000\000\000\000\000\000\000\004\170\001H\000\000\000\000\000\000\001\027\000\000\002\202\000\000\000\000\000\000\002\198\000\000\004V\000\000\004\160\002j\000\000\007\b\000\000\002\190\000\000\001\011\002j\000\000\004\161\001\215\000\000\002\199\t\190\001\007\001\b\001\t\000\000\004\190\001\n\002\217\004\163\001L\000\000\000\000\000\000\000\000\000\000\000\000\001N\001\012\000\000\000\000\004\172\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\002\202\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001S\000\000\t\221\002\190\000\000\000\000\002j\001U\001\011\004\161\000\000\000\000\001I\000\000\000\000\000\000\002\215\000\000\004\190\000\000\002\217\004\163\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001\027\001(\001)\001?\000\000\001\002\001@\000\000\002\204\001A\001B\000\000\004\192\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001\012\001\027\000\000\002\215\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\002\222\000\000\002\217\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001V\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001l\000\000\001A\001B\000\000\000\000\000\000\001n\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\148\000\000\000\000\000\000\001Y\000\000\000\000\001\150\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\156\001\007\001\b\001\t\000\000\000\000\001\n\001\158\000\000\001\164\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\001Y\000\000\001\027\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001o\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\001\172\000\000\000\000\000\000\000\000\000\000\000\000\001\174\000\000\001Y\001\012\000\000\000\000\001\011\001(\001)\000\000\001\151\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\001\159\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\167\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\185\001\012\000\000\000\000\000\000\001(\001)\001\187\000\000\001\002\001\012\001\027\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\002\166\001\175\000\000\002\167\002\168\000\000\002\169\000\000\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\193\001A\001B\001Y\001\012\000\000\000\000\001\195\001(\001)\002\170\002\227\001\002\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\001\027\001Y\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\188\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\201\000\000\000\000\000\000\000\000\000\000\000\000\001\203\001Y\001\012\000\000\000\000\000\000\001(\001)\001?\001\027\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\196\000\000\001\007\001\b\001\t\002\189\000\000\001\n\000\000\000\000\001\209\000\000\000\000\001Y\000\000\000\000\000\000\001\211\002\190\000\000\001\012\002j\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\t\247\001A\001B\000\000\000\000\000\000\000\000\t\249\001\011\000\000\000\000\000\000\001\204\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\t\255\000\000\000\000\000\000\000\000\000\000\000\000\n\001\001Y\000\000\001\012\000\000\000\000\000\000\001(\001)\001\027\000\000\001\002\000\000\000\000\001?\000\000\002\215\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\002\216\001\011\002\217\000\000\000\000\001\212\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\177\000\000\000\000\000\000\000\000\000\000\000\000\n\179\001\027\001Y\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\t\250\001\027\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\n\185\000\000\001A\001B\000\000\000\000\000\000\n\187\001\011\000\000\001\012\000\000\n\002\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\012\000\000\000\000\000\000\001(\001)\001\027\000\000\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\n\180\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\193\000\000\000\000\000\000\000\000\000\000\000\000\n\195\001\027\001Y\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\n\188\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\n\201\000\000\001A\001B\000\000\000\000\000\000\n\203\000\000\001Y\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\214\000\000\000\000\000\000\001Y\000\000\000\000\n\216\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\n\196\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\222\000\000\000\000\000\000\000\000\000\000\000\000\n\224\001\027\001Y\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\n\204\000\000\001\007\001\b\001\t\000\000\001\027\001\n\000\000\000\000\n\230\000\000\000\000\000\000\000\000\000\000\000\000\n\232\000\000\001Y\001\012\000\000\000\000\001\011\001(\001)\000\000\n\217\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\238\000\000\000\000\000\000\000\000\000\000\000\000\n\240\000\000\000\000\001\012\001\027\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\n\225\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\248\000\000\000\000\000\000\000\000\000\000\000\000\n\250\001\027\001Y\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\n\233\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001Y\001\012\000\000\000\000\001\011\001(\001)\000\000\n\241\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011\000\000\000\000\000\000\000\000\000\000\000\000\000\011\002\000\000\001Y\001\012\001\027\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\n\251\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011\n\000\000\000\000\001\007\001\b\001\t\000\000\011\012\001\n\001Y\001\012\001J\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011\018\001\027\000\000\001\007\001\b\001\t\001?\011\020\001\n\001@\000\000\001P\001A\001B\001Y\000\000\000\000\000\000\001\011\000\000\000\000\000\000\011\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\012\001\027\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\011\r\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001Y\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001W\001\011\001\012\000\000\000\000\011\021\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\001p\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\152\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\160\001Y\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\001\168\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\176\000\000\000\000\001\011\000\000\000\000\001?\001Y\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001?\001Y\000\000\001@\000\000\000\000\001A\001B\001\011\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\001\011\001\012\000\000\000\000\001Y\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\001\199\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\001\189\001\012\000\000\001\011\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\197\000\000\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\000\000\001\007\001\b\001\t\000\000\001Y\001\n\000\000\000\000\001\205\000\000\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\213\001A\001B\000\000\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\000\000\001\011\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001\011\000\000\001\012\000\000\001Y\001?\001(\001)\001@\000\000\001\002\001A\001B\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\011\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\216\000\000\001\007\001\b\001\t\000\000\001\011\001\n\001\012\000\000\001\220\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\001\012\000\000\000\000\000\000\001(\001)\002\170\002\242\001\002\002\182\002\183\002\188\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001Y\002\166\000\000\000\000\002\167\002\168\000\000\002\169\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001Y\000\000\000\000\000\000\001\011\000\000\002\170\003\029\000\000\002\182\002\183\002\188\001?\000\000\001\011\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001?\000\000\001Y\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\002\166\001\002\001Y\002\167\002\168\002\189\002\169\000\000\002\166\000\000\000\000\002\167\002\168\001Y\002\169\000\000\000\000\000\000\002\190\000\000\002\166\002j\000\000\002\167\002\168\000\000\002\169\002\170\003/\000\000\002\182\002\183\002\188\000\000\000\000\002\170\003<\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\000\000\000\000\002\170\003@\000\000\002\182\002\183\002\188\002\166\002\189\001?\002\167\002\168\001@\002\169\000\000\001A\001B\000\000\000\000\001?\000\000\002\190\001@\000\000\002j\001A\001B\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\170\003J\t\027\002\182\002\183\002\188\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\002\216\000\000\002\217\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\002\166\002\189\000\000\002\167\002\168\000\000\002\169\000\000\000\000\002\189\000\000\000\000\002\166\000\000\002\190\002\167\002\168\002j\002\169\000\000\000\000\002\189\002\190\000\000\002\215\002j\000\000\002\170\0049\000\000\002\182\002\183\002\188\002\216\002\190\002\217\000\000\002j\000\000\002\170\005\161\000\000\002\182\002\183\002\188\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\t\"\002\189\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\166\000\000\002\190\002\167\002\168\002j\002\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\215\000\000\002\170\t\175\001\011\002\182\002\183\002\188\002\215\002\216\000\000\002\217\000\000\001\007\001\b\001\t\000\000\002\216\001\n\002\217\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\002\216\002\189\002\217\001(\001)\000\000\000\000\001\002\000\000\000\000\t\235\000\000\000\000\002\189\002\190\002\166\000\000\002j\002\167\002\168\000\000\002\169\000\000\000\000\002\215\000\000\002\190\000\000\001\011\002j\000\000\000\000\000\000\002\216\001?\002\217\000\000\001@\000\000\000\000\001A\001B\002\170\t\188\000\000\002\182\002\183\002\188\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\190\000\000\000\000\002j\000\000\000\000\000\000\001\011\000\000\000\000\000\000\002\215\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\216\t\251\002\217\002\215\000\000\000\000\000\000\t\236\000\000\000\000\000\000\001\012\002\216\000\000\002\217\001(\001)\000\000\000\000\001\002\000\000\000\000\t\238\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\002\189\000\000\001\n\000\000\000\000\n\003\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\190\n\181\000\000\002j\001\007\001\b\001\t\002\215\000\000\001\n\000\000\001Y\n\189\000\000\000\000\000\000\002\216\000\000\002\217\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\197\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\n\205\000\000\001A\001B\001\007\001\b\001\t\000\000\001\011\001\n\000\000\000\000\n\228\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\236\001\012\000\000\000\000\000\000\001(\001)\002\215\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\002\216\001\011\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\000\000\001\011\001(\001)\000\000\000\000\001\002\000\000\000\000\001\012\000\000\001\011\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001?\000\000\001\011\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\001\011\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\n\226\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001Y\000\000\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\n\234\001A\001B\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001Y\001?\n\242\000\000\001@\000\000\000\000\001A\001B\001Y\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001Y\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001?\000\000\001Y\001@\000\000\000\000\001A\001B\001\011\000\000\000\000\000\000\001Y\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\000\000\n\244\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\012\n\252\000\000\001Y\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\246\001\011\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011\004\000\000\001\011\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011\014\000\000\001\012\000\000\011\b\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\001\012\000\000\001\n\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\011\022\001A\001B\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\012\000\000\000\000\001\011\001(\001)\001?\000\000\001\002\001@\000\000\001\012\001A\001B\001\011\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\001\011\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\012\000\000\000\000\001Y\001(\001)\000\000\001\011\001\002\001\007\001\b\001\t\001\012\000\000\001\n\001Y\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\001\011\001\n\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\001\007\001\b\001\t\001?\000\000\001\n\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001h\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001Y\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001h\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\000\000\001@\001Y\000\000\001A\001B\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\001\011\001@\000\000\000\000\001A\001B\000\000\004P\000\000\004Q\004R\002\168\001\012\004S\000\000\001\225\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001Y\000\000\004P\007\016\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\006\250\000\000\000\000\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\006\213\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001?\004T\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\004P\000\000\004Q\004R\002\168\000\000\004S\001?\000\000\001]\001@\000\000\000\000\001A\001B\000\000\000\000\004U\000\000\000\000\000\000\001g\004P\000\000\004Q\004R\002\168\000\000\004S\004s\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001f\000\000\000\000\004U\000\000\000\000\000\000\000\000\000\000\004w\000\000\004P\000\000\004Q\004R\002\168\004V\004S\004\160\002j\001?\000\000\004U\001@\000\000\000\000\001A\001B\004P\000\000\004Q\004R\002\168\000\000\004S\004V\004U\004\160\002j\000\000\004\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\004@\000\000\004\159\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\162\000\000\002\217\004\163\004P\004U\004Q\004R\002\168\000\000\004S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\004\161\004\160\002j\000\000\000\000\000\000\000\000\000\000\004U\004\162\000\000\002\217\004\163\000\000\004\171\000\000\000\000\000\000\000\000\004\161\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\004\162\000\000\002\217\004\163\004P\004\161\004Q\004R\002\168\000\000\004S\004U\000\000\000\000\004\162\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\004U\000\000\000\000\000\000\004P\004\191\004Q\004R\002\168\000\000\004S\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\162\000\000\002\217\004\163\004P\005Q\004Q\004R\002\168\000\000\004S\000\000\004P\004\161\004Q\004R\002\168\000\000\004S\000\000\000\000\004U\004\162\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\218\004V\000\000\004\160\002j\000\000\000\000\000\000\007\003\000\000\000\000\004\161\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\004\162\000\000\002\217\004\163\001\007\001\b\001\t\000\000\004\161\001\n\000\000\000\000\000\000\000\000\000\000\004U\000\000\004\162\000\000\002\217\004\163\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004U\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\000\000\000\000\000\000\004V\004\161\004\160\002j\001\007\001\b\001\t\000\000\000\000\001\n\004\162\000\000\002\217\004\163\000\000\004U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004U\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\001\011\004P\000\000\004Q\004R\002\168\000\000\004S\004\161\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\004\162\000\000\002\217\004\163\000\000\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\t\201\000\000\001\002\000\000\001\012\000\000\004\161\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\162\000\000\002\217\004\163\000\000\001\011\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\004\161\000\000\001\011\000\000\000\000\000\000\000\000\000\000\004\161\004\162\001\012\002\217\004\163\000\000\001(\001)\000\000\004\162\001\002\002\217\004\163\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004P\000\000\004Q\004R\002\168\000\000\004S\004U\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\007q\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\007x\000\000\t\216\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\007v\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\162\000\000\002\217\004\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004V\000\000\004\160\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\162\000\000\002\217\004\163")) and semantic_action = [| @@ -1770,9 +1807,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5209 "src/ocaml/preprocess/parser_raw.mly" +# 5224 "src/ocaml/preprocess/parser_raw.mly" ( "+" ) -# 1776 "src/ocaml/preprocess/parser_raw.ml" +# 1813 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1795,9 +1832,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5210 "src/ocaml/preprocess/parser_raw.mly" +# 5225 "src/ocaml/preprocess/parser_raw.mly" ( "+." ) -# 1801 "src/ocaml/preprocess/parser_raw.ml" +# 1838 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1820,9 +1857,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4433 "src/ocaml/preprocess/parser_raw.mly" +# 4453 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 1826 "src/ocaml/preprocess/parser_raw.ml" +# 1863 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1872,15 +1909,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 1878 "src/ocaml/preprocess/parser_raw.ml" +# 1915 "src/ocaml/preprocess/parser_raw.ml" in -# 4436 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_alias(ty, tyvar) ) -# 1884 "src/ocaml/preprocess/parser_raw.ml" +# 4456 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_alias(ty, Some tyvar, None) ) +# 1921 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -1888,15 +1925,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 1894 "src/ocaml/preprocess/parser_raw.ml" +# 1931 "src/ocaml/preprocess/parser_raw.ml" in -# 4438 "src/ocaml/preprocess/parser_raw.mly" +# 4458 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 1900 "src/ocaml/preprocess/parser_raw.ml" +# 1937 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1957,7 +1994,7 @@ module Tables = struct }; } = _menhir_stack in let _7 : unit = Obj.magic _7 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _5 : unit = Obj.magic _5 in let _2_inlined1 : (string) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -1970,29 +2007,28 @@ module Tables = struct let _v : (Parsetree.core_type) = let name = let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in let _1 = -# 4125 "src/ocaml/preprocess/parser_raw.mly" +# 4156 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 1976 "src/ocaml/preprocess/parser_raw.ml" +# 2013 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 1985 "src/ocaml/preprocess/parser_raw.ml" +# 2022 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos_aliased_type_ in let _sloc = (_symbolstartpos, _endpos) in -# 4445 "src/ocaml/preprocess/parser_raw.mly" +# 4465 "src/ocaml/preprocess/parser_raw.mly" ( let name = Option.map (fun x -> mkloc x name.loc) name.txt in - Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) - (Ltyp_alias { aliased_type; name; jkind }) ) -# 1996 "src/ocaml/preprocess/parser_raw.ml" + mktyp ~loc:_sloc (Ptyp_alias (aliased_type, name, Some jkind)) ) +# 2032 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2047,7 +2083,7 @@ module Tables = struct }; } = _menhir_stack in let _7 : unit = Obj.magic _7 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _5 : unit = Obj.magic _5 in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in @@ -2058,28 +2094,27 @@ module Tables = struct let _endpos = _endpos__7_ in let _v : (Parsetree.core_type) = let name = let _1 = -# 4127 "src/ocaml/preprocess/parser_raw.mly" +# 4158 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 2064 "src/ocaml/preprocess/parser_raw.ml" +# 2100 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2072 "src/ocaml/preprocess/parser_raw.ml" +# 2108 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos_aliased_type_ in let _sloc = (_symbolstartpos, _endpos) in -# 4445 "src/ocaml/preprocess/parser_raw.mly" +# 4465 "src/ocaml/preprocess/parser_raw.mly" ( let name = Option.map (fun x -> mkloc x name.loc) name.txt in - Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) - (Ltyp_alias { aliased_type; name; jkind }) ) -# 2083 "src/ocaml/preprocess/parser_raw.ml" + mktyp ~loc:_sloc (Ptyp_alias (aliased_type, name, Some jkind)) ) +# 2118 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2126,30 +2161,30 @@ module Tables = struct let _v : (Parser_types.let_binding) = let attrs2 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2132 "src/ocaml/preprocess/parser_raw.ml" +# 2167 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2141 "src/ocaml/preprocess/parser_raw.ml" +# 2176 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3343 "src/ocaml/preprocess/parser_raw.mly" +# 3374 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklb ~loc:_sloc false body attrs ) -# 2153 "src/ocaml/preprocess/parser_raw.ml" +# 2188 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2172,9 +2207,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5081 "src/ocaml/preprocess/parser_raw.mly" +# 5096 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2178 "src/ocaml/preprocess/parser_raw.ml" +# 2213 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2197,9 +2232,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5097 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 2203 "src/ocaml/preprocess/parser_raw.ml" +# 2238 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2231,15 +2266,15 @@ module Tables = struct let _v : (Parsetree.modes) = let _2 = let _1 = _1_inlined1 in -# 4577 "src/ocaml/preprocess/parser_raw.mly" +# 4596 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2237 "src/ocaml/preprocess/parser_raw.ml" +# 2272 "src/ocaml/preprocess/parser_raw.ml" in -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4600 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 2243 "src/ocaml/preprocess/parser_raw.ml" +# 2278 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2271,15 +2306,15 @@ module Tables = struct let _v : (Parsetree.modes) = let _2 = let _1 = _1_inlined1 in -# 4577 "src/ocaml/preprocess/parser_raw.mly" +# 4596 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2277 "src/ocaml/preprocess/parser_raw.ml" +# 2312 "src/ocaml/preprocess/parser_raw.ml" in -# 4598 "src/ocaml/preprocess/parser_raw.mly" +# 4617 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 2283 "src/ocaml/preprocess/parser_raw.ml" +# 2318 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2302,9 +2337,9 @@ module Tables = struct let _startpos = _startpos_type__ in let _endpos = _endpos_type__ in let _v : (Parsetree.core_type) = -# 4769 "src/ocaml/preprocess/parser_raw.mly" +# 4788 "src/ocaml/preprocess/parser_raw.mly" ( type_ ) -# 2308 "src/ocaml/preprocess/parser_raw.ml" +# 2343 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2333,35 +2368,35 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2339 "src/ocaml/preprocess/parser_raw.ml" +# 2374 "src/ocaml/preprocess/parser_raw.ml" in let tys = -# 4811 "src/ocaml/preprocess/parser_raw.mly" +# 4828 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2345 "src/ocaml/preprocess/parser_raw.ml" +# 2380 "src/ocaml/preprocess/parser_raw.ml" in -# 4773 "src/ocaml/preprocess/parser_raw.mly" +# 4792 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_constr (tid, tys) ) -# 2350 "src/ocaml/preprocess/parser_raw.ml" +# 2385 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2359 "src/ocaml/preprocess/parser_raw.ml" +# 2394 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2365 "src/ocaml/preprocess/parser_raw.ml" +# 2400 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2397,20 +2432,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2403 "src/ocaml/preprocess/parser_raw.ml" +# 2438 "src/ocaml/preprocess/parser_raw.ml" in let tys = -# 4813 "src/ocaml/preprocess/parser_raw.mly" +# 4830 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2409 "src/ocaml/preprocess/parser_raw.ml" +# 2444 "src/ocaml/preprocess/parser_raw.ml" in -# 4773 "src/ocaml/preprocess/parser_raw.mly" +# 4792 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_constr (tid, tys) ) -# 2414 "src/ocaml/preprocess/parser_raw.ml" +# 2449 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -2418,15 +2453,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2424 "src/ocaml/preprocess/parser_raw.ml" +# 2459 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2430 "src/ocaml/preprocess/parser_raw.ml" +# 2465 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2477,9 +2512,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2483 "src/ocaml/preprocess/parser_raw.ml" +# 2518 "src/ocaml/preprocess/parser_raw.ml" in let tys = @@ -2487,24 +2522,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 2491 "src/ocaml/preprocess/parser_raw.ml" +# 2526 "src/ocaml/preprocess/parser_raw.ml" in -# 1425 "src/ocaml/preprocess/parser_raw.mly" +# 1466 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 2496 "src/ocaml/preprocess/parser_raw.ml" +# 2531 "src/ocaml/preprocess/parser_raw.ml" in -# 4817 "src/ocaml/preprocess/parser_raw.mly" +# 4834 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 2502 "src/ocaml/preprocess/parser_raw.ml" +# 2537 "src/ocaml/preprocess/parser_raw.ml" in -# 4773 "src/ocaml/preprocess/parser_raw.mly" +# 4792 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_constr (tid, tys) ) -# 2508 "src/ocaml/preprocess/parser_raw.ml" +# 2543 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -2512,15 +2547,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2518 "src/ocaml/preprocess/parser_raw.ml" +# 2553 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2524 "src/ocaml/preprocess/parser_raw.ml" +# 2559 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2549,37 +2584,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2555 "src/ocaml/preprocess/parser_raw.ml" +# 2590 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in let tys = -# 4811 "src/ocaml/preprocess/parser_raw.mly" +# 4828 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2562 "src/ocaml/preprocess/parser_raw.ml" +# 2597 "src/ocaml/preprocess/parser_raw.ml" in let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in -# 4776 "src/ocaml/preprocess/parser_raw.mly" +# 4795 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2568 "src/ocaml/preprocess/parser_raw.ml" +# 2603 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2577 "src/ocaml/preprocess/parser_raw.ml" +# 2612 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2583 "src/ocaml/preprocess/parser_raw.ml" +# 2618 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2615,22 +2650,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2621 "src/ocaml/preprocess/parser_raw.ml" +# 2656 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in let tys = -# 4813 "src/ocaml/preprocess/parser_raw.mly" +# 4830 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2628 "src/ocaml/preprocess/parser_raw.ml" +# 2663 "src/ocaml/preprocess/parser_raw.ml" in let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in -# 4776 "src/ocaml/preprocess/parser_raw.mly" +# 4795 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2634 "src/ocaml/preprocess/parser_raw.ml" +# 2669 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -2638,15 +2673,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2644 "src/ocaml/preprocess/parser_raw.ml" +# 2679 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2650 "src/ocaml/preprocess/parser_raw.ml" +# 2685 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2697,9 +2732,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2703 "src/ocaml/preprocess/parser_raw.ml" +# 2738 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_tid_, _startpos_tid_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in @@ -2708,25 +2743,25 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 2712 "src/ocaml/preprocess/parser_raw.ml" +# 2747 "src/ocaml/preprocess/parser_raw.ml" in -# 1425 "src/ocaml/preprocess/parser_raw.mly" +# 1466 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 2717 "src/ocaml/preprocess/parser_raw.ml" +# 2752 "src/ocaml/preprocess/parser_raw.ml" in -# 4817 "src/ocaml/preprocess/parser_raw.mly" +# 4834 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 2723 "src/ocaml/preprocess/parser_raw.ml" +# 2758 "src/ocaml/preprocess/parser_raw.ml" in let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in -# 4776 "src/ocaml/preprocess/parser_raw.mly" +# 4795 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2730 "src/ocaml/preprocess/parser_raw.ml" +# 2765 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -2734,15 +2769,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2740 "src/ocaml/preprocess/parser_raw.ml" +# 2775 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2746 "src/ocaml/preprocess/parser_raw.ml" +# 2781 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2778,20 +2813,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2784 "src/ocaml/preprocess/parser_raw.ml" +# 2819 "src/ocaml/preprocess/parser_raw.ml" in let tys = -# 4811 "src/ocaml/preprocess/parser_raw.mly" +# 4828 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2790 "src/ocaml/preprocess/parser_raw.ml" +# 2825 "src/ocaml/preprocess/parser_raw.ml" in -# 4780 "src/ocaml/preprocess/parser_raw.mly" +# 4799 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2795 "src/ocaml/preprocess/parser_raw.ml" +# 2830 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos__2_ in @@ -2799,15 +2834,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2805 "src/ocaml/preprocess/parser_raw.ml" +# 2840 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2811 "src/ocaml/preprocess/parser_raw.ml" +# 2846 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2850,20 +2885,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2856 "src/ocaml/preprocess/parser_raw.ml" +# 2891 "src/ocaml/preprocess/parser_raw.ml" in let tys = -# 4813 "src/ocaml/preprocess/parser_raw.mly" +# 4830 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2862 "src/ocaml/preprocess/parser_raw.ml" +# 2897 "src/ocaml/preprocess/parser_raw.ml" in -# 4780 "src/ocaml/preprocess/parser_raw.mly" +# 4799 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2867 "src/ocaml/preprocess/parser_raw.ml" +# 2902 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -2871,15 +2906,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2877 "src/ocaml/preprocess/parser_raw.ml" +# 2912 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2883 "src/ocaml/preprocess/parser_raw.ml" +# 2918 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2937,9 +2972,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2943 "src/ocaml/preprocess/parser_raw.ml" +# 2978 "src/ocaml/preprocess/parser_raw.ml" in let tys = @@ -2947,24 +2982,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 2951 "src/ocaml/preprocess/parser_raw.ml" +# 2986 "src/ocaml/preprocess/parser_raw.ml" in -# 1425 "src/ocaml/preprocess/parser_raw.mly" +# 1466 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 2956 "src/ocaml/preprocess/parser_raw.ml" +# 2991 "src/ocaml/preprocess/parser_raw.ml" in -# 4817 "src/ocaml/preprocess/parser_raw.mly" +# 4834 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 2962 "src/ocaml/preprocess/parser_raw.ml" +# 2997 "src/ocaml/preprocess/parser_raw.ml" in -# 4780 "src/ocaml/preprocess/parser_raw.mly" +# 4799 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2968 "src/ocaml/preprocess/parser_raw.ml" +# 3003 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -2972,15 +3007,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2978 "src/ocaml/preprocess/parser_raw.ml" +# 3013 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2984 "src/ocaml/preprocess/parser_raw.ml" +# 3019 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3023,15 +3058,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3029 "src/ocaml/preprocess/parser_raw.ml" +# 3064 "src/ocaml/preprocess/parser_raw.ml" in -# 4784 "src/ocaml/preprocess/parser_raw.mly" +# 4803 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_open (mod_ident, type_) ) -# 3035 "src/ocaml/preprocess/parser_raw.ml" +# 3070 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_type__ in @@ -3039,15 +3074,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3045 "src/ocaml/preprocess/parser_raw.ml" +# 3080 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3051 "src/ocaml/preprocess/parser_raw.ml" +# 3086 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3078,24 +3113,24 @@ module Tables = struct let _endpos = _endpos_ident_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 4786 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_var ident ) -# 3084 "src/ocaml/preprocess/parser_raw.ml" +# 4805 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_var (ident, None) ) +# 3119 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ident_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3093 "src/ocaml/preprocess/parser_raw.ml" +# 3128 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3099 "src/ocaml/preprocess/parser_raw.ml" +# 3134 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3119,23 +3154,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 4788 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_any ) -# 3125 "src/ocaml/preprocess/parser_raw.ml" +# 4807 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_any None ) +# 3160 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3133 "src/ocaml/preprocess/parser_raw.ml" +# 3168 "src/ocaml/preprocess/parser_raw.ml" in -# 4790 "src/ocaml/preprocess/parser_raw.mly" +# 4809 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3139 "src/ocaml/preprocess/parser_raw.ml" +# 3174 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3184,7 +3219,7 @@ module Tables = struct }; } = _menhir_stack in let _6 : unit = Obj.magic _6 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _4 : unit = Obj.magic _4 in let name : (string) = Obj.magic name in let _2 : unit = Obj.magic _2 in @@ -3196,10 +3231,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4792 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = Some name; jkind } ) -# 3203 "src/ocaml/preprocess/parser_raw.ml" +# 4811 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_var (name, Some jkind)) ) +# 3237 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3242,7 +3276,7 @@ module Tables = struct }; } = _menhir_stack in let _5 : unit = Obj.magic _5 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -3253,10 +3287,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4795 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = None; jkind } ) -# 3260 "src/ocaml/preprocess/parser_raw.ml" +# 4813 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) +# 3293 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3278,25 +3311,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Location.loc) = let _1 = + let _v : (string Asttypes.loc) = let _1 = let _1 = -# 5277 "src/ocaml/preprocess/parser_raw.mly" +# 5292 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3286 "src/ocaml/preprocess/parser_raw.ml" +# 3319 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1270 "src/ocaml/preprocess/parser_raw.mly" +# 1314 "src/ocaml/preprocess/parser_raw.mly" ( mkloc _1 (make_loc _sloc) ) -# 3294 "src/ocaml/preprocess/parser_raw.ml" +# 3327 "src/ocaml/preprocess/parser_raw.ml" in -# 5279 "src/ocaml/preprocess/parser_raw.mly" +# 5294 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3300 "src/ocaml/preprocess/parser_raw.ml" +# 3333 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3326,32 +3359,32 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (string Location.loc) = Obj.magic _3 in + let _3 : (string Asttypes.loc) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (string Location.loc) = let _1 = + let _v : (string Asttypes.loc) = let _1 = let _1 = -# 5278 "src/ocaml/preprocess/parser_raw.mly" +# 5293 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "." ^ _3.txt ) -# 3340 "src/ocaml/preprocess/parser_raw.ml" +# 3373 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1270 "src/ocaml/preprocess/parser_raw.mly" +# 1314 "src/ocaml/preprocess/parser_raw.mly" ( mkloc _1 (make_loc _sloc) ) -# 3349 "src/ocaml/preprocess/parser_raw.ml" +# 3382 "src/ocaml/preprocess/parser_raw.ml" in -# 5279 "src/ocaml/preprocess/parser_raw.mly" +# 5294 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3355 "src/ocaml/preprocess/parser_raw.ml" +# 3388 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3374,11 +3407,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.payload) = -# 5334 "src/ocaml/preprocess/parser_raw.mly" +# 5349 "src/ocaml/preprocess/parser_raw.mly" ( Builtin_attributes.mark_payload_attrs_used _1; _1 ) -# 3382 "src/ocaml/preprocess/parser_raw.ml" +# 3415 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3416,7 +3449,7 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Location.loc) = Obj.magic _2 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -3425,9 +3458,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5283 "src/ocaml/preprocess/parser_raw.mly" +# 5298 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 3431 "src/ocaml/preprocess/parser_raw.ml" +# 3464 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3450,9 +3483,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.class_expr) = -# 2316 "src/ocaml/preprocess/parser_raw.mly" +# 2355 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3456 "src/ocaml/preprocess/parser_raw.ml" +# 3489 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3491,18 +3524,18 @@ module Tables = struct let _v : (Parsetree.class_expr) = let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3497 "src/ocaml/preprocess/parser_raw.ml" +# 3530 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2318 "src/ocaml/preprocess/parser_raw.mly" +# 2357 "src/ocaml/preprocess/parser_raw.mly" ( wrap_class_attrs ~loc:_sloc _3 _2 ) -# 3506 "src/ocaml/preprocess/parser_raw.ml" +# 3539 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3542,9 +3575,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2320 "src/ocaml/preprocess/parser_raw.mly" +# 2359 "src/ocaml/preprocess/parser_raw.mly" ( class_of_let_bindings ~loc:_sloc _1 _3 ) -# 3548 "src/ocaml/preprocess/parser_raw.ml" +# 3581 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3607,34 +3640,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3613 "src/ocaml/preprocess/parser_raw.ml" +# 3646 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in let _4 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3622 "src/ocaml/preprocess/parser_raw.ml" +# 3655 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 3628 "src/ocaml/preprocess/parser_raw.ml" +# 3661 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2322 "src/ocaml/preprocess/parser_raw.mly" +# 2361 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3638 "src/ocaml/preprocess/parser_raw.ml" +# 3671 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3704,34 +3737,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3710 "src/ocaml/preprocess/parser_raw.ml" +# 3743 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3719 "src/ocaml/preprocess/parser_raw.ml" +# 3752 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 3725 "src/ocaml/preprocess/parser_raw.ml" +# 3758 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2322 "src/ocaml/preprocess/parser_raw.mly" +# 2361 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3735 "src/ocaml/preprocess/parser_raw.ml" +# 3768 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3761,9 +3794,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.class_expr) = -# 2326 "src/ocaml/preprocess/parser_raw.mly" +# 2365 "src/ocaml/preprocess/parser_raw.mly" ( Cl.attr _1 _2 ) -# 3767 "src/ocaml/preprocess/parser_raw.ml" +# 3800 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3798,18 +3831,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 3802 "src/ocaml/preprocess/parser_raw.ml" +# 3835 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 3807 "src/ocaml/preprocess/parser_raw.ml" +# 3840 "src/ocaml/preprocess/parser_raw.ml" in -# 2329 "src/ocaml/preprocess/parser_raw.mly" +# 2368 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_apply(_1, _2) ) -# 3813 "src/ocaml/preprocess/parser_raw.ml" +# 3846 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -3817,15 +3850,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 3823 "src/ocaml/preprocess/parser_raw.ml" +# 3856 "src/ocaml/preprocess/parser_raw.ml" in -# 2332 "src/ocaml/preprocess/parser_raw.mly" +# 2371 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3829 "src/ocaml/preprocess/parser_raw.ml" +# 3862 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3849,23 +3882,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 2331 "src/ocaml/preprocess/parser_raw.mly" +# 2370 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_extension _1 ) -# 3855 "src/ocaml/preprocess/parser_raw.ml" +# 3888 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 3863 "src/ocaml/preprocess/parser_raw.ml" +# 3896 "src/ocaml/preprocess/parser_raw.ml" in -# 2332 "src/ocaml/preprocess/parser_raw.mly" +# 2371 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3869 "src/ocaml/preprocess/parser_raw.ml" +# 3902 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3908,7 +3941,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let self : (string Location.loc option) = Obj.magic self in + let self : (string Asttypes.loc option) = Obj.magic self in let _4 : (Parsetree.class_expr) = Obj.magic _4 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -3918,33 +3951,33 @@ module Tables = struct let _v : (Parsetree.class_field) = let _6 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3924 "src/ocaml/preprocess/parser_raw.ml" +# 3957 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3933 "src/ocaml/preprocess/parser_raw.ml" +# 3966 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 3939 "src/ocaml/preprocess/parser_raw.ml" +# 3972 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2386 "src/ocaml/preprocess/parser_raw.mly" +# 2425 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 3948 "src/ocaml/preprocess/parser_raw.ml" +# 3981 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3993,7 +4026,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let self : (string Location.loc option) = Obj.magic self in + let self : (string Asttypes.loc option) = Obj.magic self in let _4 : (Parsetree.class_expr) = Obj.magic _4 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -4004,33 +4037,33 @@ module Tables = struct let _v : (Parsetree.class_field) = let _6 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4010 "src/ocaml/preprocess/parser_raw.ml" +# 4043 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined3_ in let _3 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4019 "src/ocaml/preprocess/parser_raw.ml" +# 4052 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 4025 "src/ocaml/preprocess/parser_raw.ml" +# 4058 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2386 "src/ocaml/preprocess/parser_raw.mly" +# 2425 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 4034 "src/ocaml/preprocess/parser_raw.ml" +# 4067 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4061,7 +4094,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _2 : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -4070,9 +4103,9 @@ module Tables = struct let _v : (Parsetree.class_field) = let _3 = let _1 = _1_inlined1 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4076 "src/ocaml/preprocess/parser_raw.ml" +# 4109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -4080,11 +4113,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "src/ocaml/preprocess/parser_raw.mly" +# 2428 "src/ocaml/preprocess/parser_raw.mly" ( let v, attrs = _2 in let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) -# 4088 "src/ocaml/preprocess/parser_raw.ml" +# 4121 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4115,7 +4148,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _2 : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -4124,9 +4157,9 @@ module Tables = struct let _v : (Parsetree.class_field) = let _3 = let _1 = _1_inlined1 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4130 "src/ocaml/preprocess/parser_raw.ml" +# 4163 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -4134,11 +4167,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2393 "src/ocaml/preprocess/parser_raw.mly" +# 2432 "src/ocaml/preprocess/parser_raw.mly" ( let meth, attrs = _2 in let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs ) -# 4142 "src/ocaml/preprocess/parser_raw.ml" +# 4175 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4184,28 +4217,28 @@ module Tables = struct let _v : (Parsetree.class_field) = let _4 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4190 "src/ocaml/preprocess/parser_raw.ml" +# 4223 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4199 "src/ocaml/preprocess/parser_raw.ml" +# 4232 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2397 "src/ocaml/preprocess/parser_raw.mly" +# 2436 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 4209 "src/ocaml/preprocess/parser_raw.ml" +# 4242 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4251,28 +4284,28 @@ module Tables = struct let _v : (Parsetree.class_field) = let _4 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4257 "src/ocaml/preprocess/parser_raw.ml" +# 4290 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4266 "src/ocaml/preprocess/parser_raw.ml" +# 4299 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2400 "src/ocaml/preprocess/parser_raw.mly" +# 2439 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs ) -# 4276 "src/ocaml/preprocess/parser_raw.ml" +# 4309 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4304,9 +4337,9 @@ module Tables = struct let _v : (Parsetree.class_field) = let _2 = let _1 = _1_inlined1 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4310 "src/ocaml/preprocess/parser_raw.ml" +# 4343 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -4314,10 +4347,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2403 "src/ocaml/preprocess/parser_raw.mly" +# 2442 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs ) -# 4321 "src/ocaml/preprocess/parser_raw.ml" +# 4354 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4341,23 +4374,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.class_field) = let _1 = let _1 = -# 2406 "src/ocaml/preprocess/parser_raw.mly" +# 2445 "src/ocaml/preprocess/parser_raw.mly" ( Pcf_attribute _1 ) -# 4347 "src/ocaml/preprocess/parser_raw.ml" +# 4380 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1291 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkcf ~loc:_sloc _1 ) -# 4355 "src/ocaml/preprocess/parser_raw.ml" +# 4388 "src/ocaml/preprocess/parser_raw.ml" in -# 2407 "src/ocaml/preprocess/parser_raw.mly" +# 2446 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4361 "src/ocaml/preprocess/parser_raw.ml" +# 4394 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4387,9 +4420,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.class_expr) = -# 2296 "src/ocaml/preprocess/parser_raw.mly" +# 2335 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 4393 "src/ocaml/preprocess/parser_raw.ml" +# 4426 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4434,24 +4467,24 @@ module Tables = struct let _endpos = _endpos__4_ in let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 2299 "src/ocaml/preprocess/parser_raw.mly" +# 2338 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constraint(_4, _2) ) -# 4440 "src/ocaml/preprocess/parser_raw.ml" +# 4473 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4449 "src/ocaml/preprocess/parser_raw.ml" +# 4482 "src/ocaml/preprocess/parser_raw.ml" in -# 2302 "src/ocaml/preprocess/parser_raw.mly" +# 2341 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4455 "src/ocaml/preprocess/parser_raw.ml" +# 4488 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4482,24 +4515,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 2301 "src/ocaml/preprocess/parser_raw.mly" +# 2340 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) ) -# 4488 "src/ocaml/preprocess/parser_raw.ml" +# 4521 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4497 "src/ocaml/preprocess/parser_raw.ml" +# 4530 "src/ocaml/preprocess/parser_raw.ml" in -# 2302 "src/ocaml/preprocess/parser_raw.mly" +# 2341 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4503 "src/ocaml/preprocess/parser_raw.ml" +# 4536 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4537,24 +4570,24 @@ module Tables = struct let _endpos = _endpos_e_ in let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 2363 "src/ocaml/preprocess/parser_raw.mly" +# 2402 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4543 "src/ocaml/preprocess/parser_raw.ml" +# 4576 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_e_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4552 "src/ocaml/preprocess/parser_raw.ml" +# 4585 "src/ocaml/preprocess/parser_raw.ml" in -# 2364 "src/ocaml/preprocess/parser_raw.mly" +# 2403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4558 "src/ocaml/preprocess/parser_raw.ml" +# 4591 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4585,24 +4618,24 @@ module Tables = struct let _endpos = _endpos_e_ in let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 2363 "src/ocaml/preprocess/parser_raw.mly" +# 2402 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4591 "src/ocaml/preprocess/parser_raw.ml" +# 4624 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_e_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4600 "src/ocaml/preprocess/parser_raw.ml" +# 4633 "src/ocaml/preprocess/parser_raw.ml" in -# 2364 "src/ocaml/preprocess/parser_raw.mly" +# 2403 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4606 "src/ocaml/preprocess/parser_raw.ml" +# 4639 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4625,9 +4658,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5071 "src/ocaml/preprocess/parser_raw.mly" +# 5086 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4631 "src/ocaml/preprocess/parser_raw.ml" +# 4664 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4667,9 +4700,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2372 "src/ocaml/preprocess/parser_raw.mly" +# 2411 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 4673 "src/ocaml/preprocess/parser_raw.ml" +# 4706 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4723,9 +4756,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2374 "src/ocaml/preprocess/parser_raw.mly" +# 2413 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 4729 "src/ocaml/preprocess/parser_raw.ml" +# 4762 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4744,9 +4777,9 @@ module Tables = struct let _symbolstartpos = _endpos in let _sloc = (_symbolstartpos, _endpos) in -# 2376 "src/ocaml/preprocess/parser_raw.mly" +# 2415 "src/ocaml/preprocess/parser_raw.mly" ( ghpat ~loc:_sloc Ppat_any ) -# 4750 "src/ocaml/preprocess/parser_raw.ml" +# 4783 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4783,9 +4816,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.core_type) = -# 2503 "src/ocaml/preprocess/parser_raw.mly" +# 2542 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 4789 "src/ocaml/preprocess/parser_raw.ml" +# 4822 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4802,24 +4835,24 @@ module Tables = struct let _endpos = _startpos in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 2504 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_any ) -# 4808 "src/ocaml/preprocess/parser_raw.ml" +# 2543 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_any None ) +# 4841 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__0_ in let _endpos = _endpos__1_ in let _symbolstartpos = _endpos in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 4817 "src/ocaml/preprocess/parser_raw.ml" +# 4850 "src/ocaml/preprocess/parser_raw.ml" in -# 2505 "src/ocaml/preprocess/parser_raw.mly" +# 2544 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4823 "src/ocaml/preprocess/parser_raw.ml" +# 4856 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4865,28 +4898,28 @@ module Tables = struct let _v : (Parsetree.class_type_field) = let _4 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4871 "src/ocaml/preprocess/parser_raw.ml" +# 4904 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4880 "src/ocaml/preprocess/parser_raw.ml" +# 4913 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2513 "src/ocaml/preprocess/parser_raw.mly" +# 2552 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs ) -# 4890 "src/ocaml/preprocess/parser_raw.ml" +# 4923 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4944,9 +4977,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 4950 "src/ocaml/preprocess/parser_raw.ml" +# 4983 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -4957,9 +4990,9 @@ module Tables = struct let _v : (Parsetree.class_type_field) = let _4 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4963 "src/ocaml/preprocess/parser_raw.ml" +# 4996 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined3_ in @@ -4967,44 +5000,44 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let label = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4973 "src/ocaml/preprocess/parser_raw.ml" +# 5006 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 4981 "src/ocaml/preprocess/parser_raw.ml" +# 5014 "src/ocaml/preprocess/parser_raw.ml" in -# 2538 "src/ocaml/preprocess/parser_raw.mly" +# 2577 "src/ocaml/preprocess/parser_raw.mly" ( let mut, virt = flags in label, mut, virt, ty ) -# 4990 "src/ocaml/preprocess/parser_raw.ml" +# 5023 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4998 "src/ocaml/preprocess/parser_raw.ml" +# 5031 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2516 "src/ocaml/preprocess/parser_raw.mly" +# 2555 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs ) -# 5008 "src/ocaml/preprocess/parser_raw.ml" +# 5041 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5062,9 +5095,9 @@ module Tables = struct let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 5068 "src/ocaml/preprocess/parser_raw.ml" +# 5101 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -5075,53 +5108,53 @@ module Tables = struct let _v : (Parsetree.class_type_field) = let _7 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5081 "src/ocaml/preprocess/parser_raw.ml" +# 5114 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__7_ = _endpos__1_inlined4_ in let _6 = let _1 = _1_inlined3 in -# 4399 "src/ocaml/preprocess/parser_raw.mly" +# 4419 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5090 "src/ocaml/preprocess/parser_raw.ml" +# 5123 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5098 "src/ocaml/preprocess/parser_raw.ml" +# 5131 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5106 "src/ocaml/preprocess/parser_raw.ml" +# 5139 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5114 "src/ocaml/preprocess/parser_raw.ml" +# 5147 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2520 "src/ocaml/preprocess/parser_raw.mly" +# 2559 "src/ocaml/preprocess/parser_raw.mly" ( let (p, v) = _3 in let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs ) -# 5125 "src/ocaml/preprocess/parser_raw.ml" +# 5158 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5167,28 +5200,28 @@ module Tables = struct let _v : (Parsetree.class_type_field) = let _4 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5173 "src/ocaml/preprocess/parser_raw.ml" +# 5206 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5182 "src/ocaml/preprocess/parser_raw.ml" +# 5215 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2524 "src/ocaml/preprocess/parser_raw.mly" +# 2563 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 5192 "src/ocaml/preprocess/parser_raw.ml" +# 5225 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5220,9 +5253,9 @@ module Tables = struct let _v : (Parsetree.class_type_field) = let _2 = let _1 = _1_inlined1 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5226 "src/ocaml/preprocess/parser_raw.ml" +# 5259 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -5230,10 +5263,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2527 "src/ocaml/preprocess/parser_raw.mly" +# 2566 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs ) -# 5237 "src/ocaml/preprocess/parser_raw.ml" +# 5270 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5257,23 +5290,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.class_type_field) = let _1 = let _1 = -# 2530 "src/ocaml/preprocess/parser_raw.mly" +# 2569 "src/ocaml/preprocess/parser_raw.mly" ( Pctf_attribute _1 ) -# 5263 "src/ocaml/preprocess/parser_raw.ml" +# 5296 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1289 "src/ocaml/preprocess/parser_raw.mly" +# 1333 "src/ocaml/preprocess/parser_raw.mly" ( mkctf ~loc:_sloc _1 ) -# 5271 "src/ocaml/preprocess/parser_raw.ml" +# 5304 "src/ocaml/preprocess/parser_raw.ml" in -# 2531 "src/ocaml/preprocess/parser_raw.mly" +# 2570 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5277 "src/ocaml/preprocess/parser_raw.ml" +# 5310 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5302,42 +5335,42 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5308 "src/ocaml/preprocess/parser_raw.ml" +# 5341 "src/ocaml/preprocess/parser_raw.ml" in let tys = let tys = -# 2489 "src/ocaml/preprocess/parser_raw.mly" +# 2528 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 5315 "src/ocaml/preprocess/parser_raw.ml" +# 5348 "src/ocaml/preprocess/parser_raw.ml" in -# 2495 "src/ocaml/preprocess/parser_raw.mly" +# 2534 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5320 "src/ocaml/preprocess/parser_raw.ml" +# 5353 "src/ocaml/preprocess/parser_raw.ml" in -# 2470 "src/ocaml/preprocess/parser_raw.mly" +# 2509 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_constr (cid, tys) ) -# 5326 "src/ocaml/preprocess/parser_raw.ml" +# 5359 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1287 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5335 "src/ocaml/preprocess/parser_raw.ml" +# 5368 "src/ocaml/preprocess/parser_raw.ml" in -# 2473 "src/ocaml/preprocess/parser_raw.mly" +# 2512 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5341 "src/ocaml/preprocess/parser_raw.ml" +# 5374 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5388,9 +5421,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5394 "src/ocaml/preprocess/parser_raw.ml" +# 5427 "src/ocaml/preprocess/parser_raw.ml" in let tys = @@ -5399,30 +5432,30 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 5403 "src/ocaml/preprocess/parser_raw.ml" +# 5436 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 5408 "src/ocaml/preprocess/parser_raw.ml" +# 5441 "src/ocaml/preprocess/parser_raw.ml" in -# 2491 "src/ocaml/preprocess/parser_raw.mly" +# 2530 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 5414 "src/ocaml/preprocess/parser_raw.ml" +# 5447 "src/ocaml/preprocess/parser_raw.ml" in -# 2495 "src/ocaml/preprocess/parser_raw.mly" +# 2534 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5420 "src/ocaml/preprocess/parser_raw.ml" +# 5453 "src/ocaml/preprocess/parser_raw.ml" in -# 2470 "src/ocaml/preprocess/parser_raw.mly" +# 2509 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_constr (cid, tys) ) -# 5426 "src/ocaml/preprocess/parser_raw.ml" +# 5459 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -5430,15 +5463,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1287 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5436 "src/ocaml/preprocess/parser_raw.ml" +# 5469 "src/ocaml/preprocess/parser_raw.ml" in -# 2473 "src/ocaml/preprocess/parser_raw.mly" +# 2512 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5442 "src/ocaml/preprocess/parser_raw.ml" +# 5475 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5462,23 +5495,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.class_type) = let _1 = let _1 = -# 2472 "src/ocaml/preprocess/parser_raw.mly" +# 2511 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_extension _1 ) -# 5468 "src/ocaml/preprocess/parser_raw.ml" +# 5501 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1287 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5476 "src/ocaml/preprocess/parser_raw.ml" +# 5509 "src/ocaml/preprocess/parser_raw.ml" in -# 2473 "src/ocaml/preprocess/parser_raw.mly" +# 2512 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5482 "src/ocaml/preprocess/parser_raw.ml" +# 5515 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5535,44 +5568,44 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 5539 "src/ocaml/preprocess/parser_raw.ml" +# 5572 "src/ocaml/preprocess/parser_raw.ml" in -# 2509 "src/ocaml/preprocess/parser_raw.mly" +# 2548 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5544 "src/ocaml/preprocess/parser_raw.ml" +# 5577 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1235 "src/ocaml/preprocess/parser_raw.mly" +# 1279 "src/ocaml/preprocess/parser_raw.mly" ( extra_csig _startpos _endpos _1 ) -# 5553 "src/ocaml/preprocess/parser_raw.ml" +# 5586 "src/ocaml/preprocess/parser_raw.ml" in -# 2499 "src/ocaml/preprocess/parser_raw.mly" +# 2538 "src/ocaml/preprocess/parser_raw.mly" ( Csig.mk _1 _2 ) -# 5559 "src/ocaml/preprocess/parser_raw.ml" +# 5592 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5567 "src/ocaml/preprocess/parser_raw.ml" +# 5600 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2475 "src/ocaml/preprocess/parser_raw.mly" +# 2514 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) ) -# 5576 "src/ocaml/preprocess/parser_raw.ml" +# 5609 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5602,9 +5635,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.class_type) = -# 2481 "src/ocaml/preprocess/parser_raw.mly" +# 2520 "src/ocaml/preprocess/parser_raw.mly" ( Cty.attr _1 _2 ) -# 5608 "src/ocaml/preprocess/parser_raw.ml" +# 5641 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5667,34 +5700,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5673 "src/ocaml/preprocess/parser_raw.ml" +# 5706 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in let _4 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5682 "src/ocaml/preprocess/parser_raw.ml" +# 5715 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 5688 "src/ocaml/preprocess/parser_raw.ml" +# 5721 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2483 "src/ocaml/preprocess/parser_raw.mly" +# 2522 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5698 "src/ocaml/preprocess/parser_raw.ml" +# 5731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5764,34 +5797,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5770 "src/ocaml/preprocess/parser_raw.ml" +# 5803 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5779 "src/ocaml/preprocess/parser_raw.ml" +# 5812 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 5785 "src/ocaml/preprocess/parser_raw.ml" +# 5818 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2483 "src/ocaml/preprocess/parser_raw.mly" +# 2522 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos__2_, _endpos__5_) in let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5795 "src/ocaml/preprocess/parser_raw.ml" +# 5828 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5828,9 +5861,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.class_expr) = -# 2336 "src/ocaml/preprocess/parser_raw.mly" +# 2375 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 5834 "src/ocaml/preprocess/parser_raw.ml" +# 5867 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5859,42 +5892,42 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5865 "src/ocaml/preprocess/parser_raw.ml" +# 5898 "src/ocaml/preprocess/parser_raw.ml" in let tys = let tys = -# 2489 "src/ocaml/preprocess/parser_raw.mly" +# 2528 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 5872 "src/ocaml/preprocess/parser_raw.ml" +# 5905 "src/ocaml/preprocess/parser_raw.ml" in -# 2495 "src/ocaml/preprocess/parser_raw.mly" +# 2534 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5877 "src/ocaml/preprocess/parser_raw.ml" +# 5910 "src/ocaml/preprocess/parser_raw.ml" in -# 2343 "src/ocaml/preprocess/parser_raw.mly" +# 2382 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constr(cid, tys) ) -# 5883 "src/ocaml/preprocess/parser_raw.ml" +# 5916 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 5892 "src/ocaml/preprocess/parser_raw.ml" +# 5925 "src/ocaml/preprocess/parser_raw.ml" in -# 2354 "src/ocaml/preprocess/parser_raw.mly" +# 2393 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5898 "src/ocaml/preprocess/parser_raw.ml" +# 5931 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5945,9 +5978,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5951 "src/ocaml/preprocess/parser_raw.ml" +# 5984 "src/ocaml/preprocess/parser_raw.ml" in let tys = @@ -5956,30 +5989,30 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 5960 "src/ocaml/preprocess/parser_raw.ml" +# 5993 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 5965 "src/ocaml/preprocess/parser_raw.ml" +# 5998 "src/ocaml/preprocess/parser_raw.ml" in -# 2491 "src/ocaml/preprocess/parser_raw.mly" +# 2530 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 5971 "src/ocaml/preprocess/parser_raw.ml" +# 6004 "src/ocaml/preprocess/parser_raw.ml" in -# 2495 "src/ocaml/preprocess/parser_raw.mly" +# 2534 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5977 "src/ocaml/preprocess/parser_raw.ml" +# 6010 "src/ocaml/preprocess/parser_raw.ml" in -# 2343 "src/ocaml/preprocess/parser_raw.mly" +# 2382 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constr(cid, tys) ) -# 5983 "src/ocaml/preprocess/parser_raw.ml" +# 6016 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -5987,15 +6020,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 5993 "src/ocaml/preprocess/parser_raw.ml" +# 6026 "src/ocaml/preprocess/parser_raw.ml" in -# 2354 "src/ocaml/preprocess/parser_raw.mly" +# 2393 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5999 "src/ocaml/preprocess/parser_raw.ml" +# 6032 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6047,24 +6080,24 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 2349 "src/ocaml/preprocess/parser_raw.mly" +# 2388 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constraint(_2, _4) ) -# 6053 "src/ocaml/preprocess/parser_raw.ml" +# 6086 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1293 "src/ocaml/preprocess/parser_raw.mly" +# 1337 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6062 "src/ocaml/preprocess/parser_raw.ml" +# 6095 "src/ocaml/preprocess/parser_raw.ml" in -# 2354 "src/ocaml/preprocess/parser_raw.mly" +# 2393 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6068 "src/ocaml/preprocess/parser_raw.ml" +# 6101 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6121,44 +6154,44 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 6125 "src/ocaml/preprocess/parser_raw.ml" +# 6158 "src/ocaml/preprocess/parser_raw.ml" in -# 2380 "src/ocaml/preprocess/parser_raw.mly" +# 2419 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6130 "src/ocaml/preprocess/parser_raw.ml" +# 6163 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1234 "src/ocaml/preprocess/parser_raw.mly" +# 1278 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 6139 "src/ocaml/preprocess/parser_raw.ml" +# 6172 "src/ocaml/preprocess/parser_raw.ml" in -# 2368 "src/ocaml/preprocess/parser_raw.mly" +# 2407 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 6145 "src/ocaml/preprocess/parser_raw.ml" +# 6178 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6153 "src/ocaml/preprocess/parser_raw.ml" +# 6186 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2356 "src/ocaml/preprocess/parser_raw.mly" +# 2395 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) ) -# 6162 "src/ocaml/preprocess/parser_raw.ml" +# 6195 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6181,9 +6214,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.class_type) = -# 2458 "src/ocaml/preprocess/parser_raw.mly" +# 2497 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6187 "src/ocaml/preprocess/parser_raw.ml" +# 6220 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6230,20 +6263,20 @@ module Tables = struct let _1 = let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 6236 "src/ocaml/preprocess/parser_raw.ml" +# 6269 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6241 "src/ocaml/preprocess/parser_raw.ml" +# 6274 "src/ocaml/preprocess/parser_raw.ml" in -# 2464 "src/ocaml/preprocess/parser_raw.mly" +# 2503 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6247 "src/ocaml/preprocess/parser_raw.ml" +# 6280 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -6251,15 +6284,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1287 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6257 "src/ocaml/preprocess/parser_raw.ml" +# 6290 "src/ocaml/preprocess/parser_raw.ml" in -# 2465 "src/ocaml/preprocess/parser_raw.mly" +# 2504 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6263 "src/ocaml/preprocess/parser_raw.ml" +# 6296 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6306,9 +6339,9 @@ module Tables = struct let domain : (Parsetree.core_type) = Obj.magic domain in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 6312 "src/ocaml/preprocess/parser_raw.ml" +# 6345 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -6317,20 +6350,20 @@ module Tables = struct let _1 = let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 6323 "src/ocaml/preprocess/parser_raw.ml" +# 6356 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6328 "src/ocaml/preprocess/parser_raw.ml" +# 6361 "src/ocaml/preprocess/parser_raw.ml" in -# 2464 "src/ocaml/preprocess/parser_raw.mly" +# 2503 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6334 "src/ocaml/preprocess/parser_raw.ml" +# 6367 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -6338,15 +6371,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1287 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6344 "src/ocaml/preprocess/parser_raw.ml" +# 6377 "src/ocaml/preprocess/parser_raw.ml" in -# 2465 "src/ocaml/preprocess/parser_raw.mly" +# 2504 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6350 "src/ocaml/preprocess/parser_raw.ml" +# 6383 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6385,14 +6418,14 @@ module Tables = struct let _v : (Parsetree.class_type) = let _1 = let _1 = let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 6391 "src/ocaml/preprocess/parser_raw.ml" +# 6424 "src/ocaml/preprocess/parser_raw.ml" in -# 2464 "src/ocaml/preprocess/parser_raw.mly" +# 2503 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6396 "src/ocaml/preprocess/parser_raw.ml" +# 6429 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in @@ -6400,15 +6433,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1287 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6406 "src/ocaml/preprocess/parser_raw.ml" +# 6439 "src/ocaml/preprocess/parser_raw.ml" in -# 2465 "src/ocaml/preprocess/parser_raw.mly" +# 2504 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6412 "src/ocaml/preprocess/parser_raw.ml" +# 6445 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6491,27 +6524,27 @@ module Tables = struct let csig : (Parsetree.class_type) = Obj.magic csig in let _8 : unit = Obj.magic _8 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 6497 "src/ocaml/preprocess/parser_raw.ml" +# 6530 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v : (string Location.loc option * Parsetree.class_type_declaration list) = let _1 = + let _v : (string Asttypes.loc option * Parsetree.class_type_declaration list) = let _1 = let a = let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6515 "src/ocaml/preprocess/parser_raw.ml" +# 6548 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -6521,24 +6554,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6527 "src/ocaml/preprocess/parser_raw.ml" +# 6560 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6535 "src/ocaml/preprocess/parser_raw.ml" +# 6568 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2605 "src/ocaml/preprocess/parser_raw.mly" +# 2644 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -6546,19 +6579,19 @@ module Tables = struct ext, Ci.mk id csig ~virt ~params ~attrs ~loc ~docs ) -# 6550 "src/ocaml/preprocess/parser_raw.ml" +# 6583 "src/ocaml/preprocess/parser_raw.ml" in -# 1494 "src/ocaml/preprocess/parser_raw.mly" +# 1535 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 6556 "src/ocaml/preprocess/parser_raw.ml" +# 6589 "src/ocaml/preprocess/parser_raw.ml" in -# 2593 "src/ocaml/preprocess/parser_raw.mly" +# 2632 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6562 "src/ocaml/preprocess/parser_raw.ml" +# 6595 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6581,9 +6614,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5068 "src/ocaml/preprocess/parser_raw.mly" +# 5083 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6587 "src/ocaml/preprocess/parser_raw.ml" +# 6620 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6607,27 +6640,27 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : (Jane_syntax.Comprehensions.clause_binding list) = Obj.magic xs in + let xs : (Parsetree.comprehension_clause_binding list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Jane_syntax.Comprehensions.clause) = let _2 = + let _v : (Parsetree.comprehension_clause) = let _2 = let xs = # 253 "" ( List.rev xs ) -# 6620 "src/ocaml/preprocess/parser_raw.ml" +# 6653 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6625 "src/ocaml/preprocess/parser_raw.ml" +# 6658 "src/ocaml/preprocess/parser_raw.ml" in -# 3049 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.For _2 ) -# 6631 "src/ocaml/preprocess/parser_raw.ml" +# 3084 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_for _2 ) +# 6664 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6656,23 +6689,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Jane_syntax.Comprehensions.clause) = let _2 = + let _v : (Parsetree.comprehension_clause) = let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6665 "src/ocaml/preprocess/parser_raw.ml" +# 6698 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6670 "src/ocaml/preprocess/parser_raw.ml" +# 6703 "src/ocaml/preprocess/parser_raw.ml" in -# 3051 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.When _2 ) -# 6676 "src/ocaml/preprocess/parser_raw.ml" +# 3086 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_when _2 ) +# 6709 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6716,13 +6749,13 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Jane_syntax.Comprehensions.clause) = let _2 = + let _v : (Parsetree.comprehension_clause) = let _2 = let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in let _1 = let _3 = @@ -6730,18 +6763,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 6734 "src/ocaml/preprocess/parser_raw.ml" +# 6767 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6739 "src/ocaml/preprocess/parser_raw.ml" +# 6772 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6745 "src/ocaml/preprocess/parser_raw.ml" +# 6778 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -6750,22 +6783,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6756 "src/ocaml/preprocess/parser_raw.ml" +# 6789 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 6762 "src/ocaml/preprocess/parser_raw.ml" +# 6795 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -6778,19 +6811,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 6782 "src/ocaml/preprocess/parser_raw.ml" +# 6815 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6788 "src/ocaml/preprocess/parser_raw.ml" +# 6821 "src/ocaml/preprocess/parser_raw.ml" in -# 3051 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.When _2 ) -# 6794 "src/ocaml/preprocess/parser_raw.ml" +# 3086 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_when _2 ) +# 6827 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6820,21 +6853,21 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (Jane_syntax.Comprehensions.iterator) = Obj.magic _3 in + let _3 : (Parsetree.comprehension_iterator) = Obj.magic _3 in let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.comprehension_clause_binding) = let _1 = +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6833 "src/ocaml/preprocess/parser_raw.ml" +# 6866 "src/ocaml/preprocess/parser_raw.ml" in -# 3029 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ pattern = _2 ; iterator = _3 ; attributes = _1 } ) -# 6838 "src/ocaml/preprocess/parser_raw.ml" +# 3065 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_cb_pattern = _2 ; pcomp_cb_iterator = _3 ; pcomp_cb_attributes = _1 } ) +# 6871 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6884,17 +6917,17 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _5 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = let _1 = _1_inlined2 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6893 "src/ocaml/preprocess/parser_raw.ml" +# 6926 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6898 "src/ocaml/preprocess/parser_raw.ml" +# 6931 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -6904,16 +6937,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4574 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 6910 "src/ocaml/preprocess/parser_raw.ml" +# 6943 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6917 "src/ocaml/preprocess/parser_raw.ml" +# 6950 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -6922,17 +6955,16 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in -# 3036 "src/ocaml/preprocess/parser_raw.mly" +# 3072 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_with_modes ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in - Jane_syntax.Comprehensions. - { pattern = _3 - ; iterator = In expr - ; attributes = _1 - } + { pcomp_cb_pattern = _3 + ; pcomp_cb_iterator = Pcomp_in expr + ; pcomp_cb_attributes = _1 + } ) -# 6936 "src/ocaml/preprocess/parser_raw.ml" +# 6968 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6994,7 +7026,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.pattern) = Obj.magic _3 in @@ -7003,7 +7035,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _5 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in let _1 = let _3 = @@ -7011,18 +7043,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 7015 "src/ocaml/preprocess/parser_raw.ml" +# 7047 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7020 "src/ocaml/preprocess/parser_raw.ml" +# 7052 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7026 "src/ocaml/preprocess/parser_raw.ml" +# 7058 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7031,22 +7063,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7037 "src/ocaml/preprocess/parser_raw.ml" +# 7069 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7043 "src/ocaml/preprocess/parser_raw.ml" +# 7075 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7059,13 +7091,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7063 "src/ocaml/preprocess/parser_raw.ml" +# 7095 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7069 "src/ocaml/preprocess/parser_raw.ml" +# 7101 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -7075,16 +7107,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4574 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 7081 "src/ocaml/preprocess/parser_raw.ml" +# 7113 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7088 "src/ocaml/preprocess/parser_raw.ml" +# 7120 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7093,17 +7125,16 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in -# 3036 "src/ocaml/preprocess/parser_raw.mly" +# 3072 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_with_modes ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in - Jane_syntax.Comprehensions. - { pattern = _3 - ; iterator = In expr - ; attributes = _1 - } + { pcomp_cb_pattern = _3 + ; pcomp_cb_iterator = Pcomp_in expr + ; pcomp_cb_attributes = _1 + } ) -# 7107 "src/ocaml/preprocess/parser_raw.ml" +# 7138 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7153,17 +7184,17 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _5 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = let _1 = _1_inlined2 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7162 "src/ocaml/preprocess/parser_raw.ml" +# 7193 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7167 "src/ocaml/preprocess/parser_raw.ml" +# 7198 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -7173,16 +7204,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4557 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 7179 "src/ocaml/preprocess/parser_raw.ml" +# 7210 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7186 "src/ocaml/preprocess/parser_raw.ml" +# 7217 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7191,17 +7222,16 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in -# 3036 "src/ocaml/preprocess/parser_raw.mly" +# 3072 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_with_modes ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in - Jane_syntax.Comprehensions. - { pattern = _3 - ; iterator = In expr - ; attributes = _1 - } + { pcomp_cb_pattern = _3 + ; pcomp_cb_iterator = Pcomp_in expr + ; pcomp_cb_attributes = _1 + } ) -# 7205 "src/ocaml/preprocess/parser_raw.ml" +# 7235 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7263,7 +7293,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.pattern) = Obj.magic _3 in @@ -7272,7 +7302,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _5 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in let _1 = let _3 = @@ -7280,18 +7310,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 7284 "src/ocaml/preprocess/parser_raw.ml" +# 7314 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7289 "src/ocaml/preprocess/parser_raw.ml" +# 7319 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7295 "src/ocaml/preprocess/parser_raw.ml" +# 7325 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7300,22 +7330,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7306 "src/ocaml/preprocess/parser_raw.ml" +# 7336 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7312 "src/ocaml/preprocess/parser_raw.ml" +# 7342 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7328,13 +7358,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7332 "src/ocaml/preprocess/parser_raw.ml" +# 7362 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7338 "src/ocaml/preprocess/parser_raw.ml" +# 7368 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -7344,16 +7374,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4557 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 7350 "src/ocaml/preprocess/parser_raw.ml" +# 7380 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7357 "src/ocaml/preprocess/parser_raw.ml" +# 7387 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7362,17 +7392,16 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in -# 3036 "src/ocaml/preprocess/parser_raw.mly" +# 3072 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_with_modes ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in - Jane_syntax.Comprehensions. - { pattern = _3 - ; iterator = In expr - ; attributes = _1 - } + { pcomp_cb_pattern = _3 + ; pcomp_cb_iterator = Pcomp_in expr + ; pcomp_cb_attributes = _1 + } ) -# 7376 "src/ocaml/preprocess/parser_raw.ml" +# 7405 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7422,17 +7451,17 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _5 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = let _1 = _1_inlined2 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7431 "src/ocaml/preprocess/parser_raw.ml" +# 7460 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7436 "src/ocaml/preprocess/parser_raw.ml" +# 7465 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -7442,16 +7471,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4559 "src/ocaml/preprocess/parser_raw.mly" +# 4578 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 7448 "src/ocaml/preprocess/parser_raw.ml" +# 7477 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7455 "src/ocaml/preprocess/parser_raw.ml" +# 7484 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7460,17 +7489,16 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in -# 3036 "src/ocaml/preprocess/parser_raw.mly" +# 3072 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_with_modes ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in - Jane_syntax.Comprehensions. - { pattern = _3 - ; iterator = In expr - ; attributes = _1 - } + { pcomp_cb_pattern = _3 + ; pcomp_cb_iterator = Pcomp_in expr + ; pcomp_cb_attributes = _1 + } ) -# 7474 "src/ocaml/preprocess/parser_raw.ml" +# 7502 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7532,7 +7560,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.pattern) = Obj.magic _3 in @@ -7541,7 +7569,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _5 = + let _v : (Parsetree.comprehension_clause_binding) = let _5 = let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in let _1 = let _3 = @@ -7549,18 +7577,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 7553 "src/ocaml/preprocess/parser_raw.ml" +# 7581 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7558 "src/ocaml/preprocess/parser_raw.ml" +# 7586 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7564 "src/ocaml/preprocess/parser_raw.ml" +# 7592 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7569,22 +7597,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7575 "src/ocaml/preprocess/parser_raw.ml" +# 7603 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7581 "src/ocaml/preprocess/parser_raw.ml" +# 7609 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7597,13 +7625,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7601 "src/ocaml/preprocess/parser_raw.ml" +# 7629 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7607 "src/ocaml/preprocess/parser_raw.ml" +# 7635 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -7613,16 +7641,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4559 "src/ocaml/preprocess/parser_raw.mly" +# 4578 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 7619 "src/ocaml/preprocess/parser_raw.ml" +# 7647 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7626 "src/ocaml/preprocess/parser_raw.ml" +# 7654 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7631,17 +7659,16 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in -# 3036 "src/ocaml/preprocess/parser_raw.mly" +# 3072 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_with_modes ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in - Jane_syntax.Comprehensions. - { pattern = _3 - ; iterator = In expr - ; attributes = _1 - } + { pcomp_cb_pattern = _3 + ; pcomp_cb_iterator = Pcomp_in expr + ; pcomp_cb_attributes = _1 + } ) -# 7645 "src/ocaml/preprocess/parser_raw.ml" +# 7672 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7684,36 +7711,36 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Jane_syntax.Comprehensions.iterator) = let _4 = + let _v : (Parsetree.comprehension_iterator) = let _4 = let _1 = _1_inlined2 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7693 "src/ocaml/preprocess/parser_raw.ml" +# 7720 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7698 "src/ocaml/preprocess/parser_raw.ml" +# 7725 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7706 "src/ocaml/preprocess/parser_raw.ml" +# 7733 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7711 "src/ocaml/preprocess/parser_raw.ml" +# 7738 "src/ocaml/preprocess/parser_raw.ml" in -# 3022 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Range { start = _2 ; stop = _4 ; direction = _3 } ) -# 7717 "src/ocaml/preprocess/parser_raw.ml" +# 3058 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) +# 7744 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7769,7 +7796,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _3 : (Asttypes.direction_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in @@ -7777,7 +7804,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Jane_syntax.Comprehensions.iterator) = let _4 = + let _v : (Parsetree.comprehension_iterator) = let _4 = let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in let _1 = let _3 = @@ -7785,18 +7812,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 7789 "src/ocaml/preprocess/parser_raw.ml" +# 7816 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7794 "src/ocaml/preprocess/parser_raw.ml" +# 7821 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7800 "src/ocaml/preprocess/parser_raw.ml" +# 7827 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7805,22 +7832,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7811 "src/ocaml/preprocess/parser_raw.ml" +# 7838 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7817 "src/ocaml/preprocess/parser_raw.ml" +# 7844 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7833,32 +7860,32 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7837 "src/ocaml/preprocess/parser_raw.ml" +# 7864 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7843 "src/ocaml/preprocess/parser_raw.ml" +# 7870 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7851 "src/ocaml/preprocess/parser_raw.ml" +# 7878 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7856 "src/ocaml/preprocess/parser_raw.ml" +# 7883 "src/ocaml/preprocess/parser_raw.ml" in -# 3022 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Range { start = _2 ; stop = _4 ; direction = _3 } ) -# 7862 "src/ocaml/preprocess/parser_raw.ml" +# 3058 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) +# 7889 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7916,23 +7943,23 @@ module Tables = struct let _3 : (Asttypes.direction_flag) = Obj.magic _3 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Jane_syntax.Comprehensions.iterator) = let _4 = + let _v : (Parsetree.comprehension_iterator) = let _4 = let _1 = _1_inlined4 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7931 "src/ocaml/preprocess/parser_raw.ml" +# 7958 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7936 "src/ocaml/preprocess/parser_raw.ml" +# 7963 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -7943,18 +7970,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 7947 "src/ocaml/preprocess/parser_raw.ml" +# 7974 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7952 "src/ocaml/preprocess/parser_raw.ml" +# 7979 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7958 "src/ocaml/preprocess/parser_raw.ml" +# 7985 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7963,22 +7990,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7969 "src/ocaml/preprocess/parser_raw.ml" +# 7996 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7975 "src/ocaml/preprocess/parser_raw.ml" +# 8002 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7991,19 +8018,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7995 "src/ocaml/preprocess/parser_raw.ml" +# 8022 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8001 "src/ocaml/preprocess/parser_raw.ml" +# 8028 "src/ocaml/preprocess/parser_raw.ml" in -# 3022 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8007 "src/ocaml/preprocess/parser_raw.ml" +# 3058 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) +# 8034 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8077,18 +8104,18 @@ module Tables = struct } = _menhir_stack in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined6 : (Parsetree.attributes) = Obj.magic _1_inlined6 in - let _1_inlined5 : (string Location.loc option) = Obj.magic _1_inlined5 in + let _1_inlined5 : (string Asttypes.loc option) = Obj.magic _1_inlined5 in let _1_inlined4 : unit = Obj.magic _1_inlined4 in let _3 : (Asttypes.direction_flag) = Obj.magic _3 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_inlined1_ in - let _v : (Jane_syntax.Comprehensions.iterator) = let _4 = + let _v : (Parsetree.comprehension_iterator) = let _4 = let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined4_, xs_inlined1, _1_inlined6, _1_inlined5) in let _1 = let _3 = @@ -8096,18 +8123,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 8100 "src/ocaml/preprocess/parser_raw.ml" +# 8127 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8105 "src/ocaml/preprocess/parser_raw.ml" +# 8132 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8111 "src/ocaml/preprocess/parser_raw.ml" +# 8138 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -8116,22 +8143,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8122 "src/ocaml/preprocess/parser_raw.ml" +# 8149 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8128 "src/ocaml/preprocess/parser_raw.ml" +# 8155 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -8144,13 +8171,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8148 "src/ocaml/preprocess/parser_raw.ml" +# 8175 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8154 "src/ocaml/preprocess/parser_raw.ml" +# 8181 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -8161,18 +8188,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 8165 "src/ocaml/preprocess/parser_raw.ml" +# 8192 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8170 "src/ocaml/preprocess/parser_raw.ml" +# 8197 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8176 "src/ocaml/preprocess/parser_raw.ml" +# 8203 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -8181,22 +8208,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8187 "src/ocaml/preprocess/parser_raw.ml" +# 8214 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8193 "src/ocaml/preprocess/parser_raw.ml" +# 8220 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -8209,19 +8236,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8213 "src/ocaml/preprocess/parser_raw.ml" +# 8240 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8219 "src/ocaml/preprocess/parser_raw.ml" +# 8246 "src/ocaml/preprocess/parser_raw.ml" in -# 3022 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8225 "src/ocaml/preprocess/parser_raw.ml" +# 3058 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) +# 8252 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8250,23 +8277,23 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Jane_syntax.Comprehensions.iterator) = let _2 = + let _v : (Parsetree.comprehension_iterator) = let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8259 "src/ocaml/preprocess/parser_raw.ml" +# 8286 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8264 "src/ocaml/preprocess/parser_raw.ml" +# 8291 "src/ocaml/preprocess/parser_raw.ml" in -# 3024 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.In _2 ) -# 8270 "src/ocaml/preprocess/parser_raw.ml" +# 3060 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_in _2 ) +# 8297 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8310,13 +8337,13 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Jane_syntax.Comprehensions.iterator) = let _2 = + let _v : (Parsetree.comprehension_iterator) = let _2 = let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in let _1 = let _3 = @@ -8324,18 +8351,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 8328 "src/ocaml/preprocess/parser_raw.ml" +# 8355 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8333 "src/ocaml/preprocess/parser_raw.ml" +# 8360 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8339 "src/ocaml/preprocess/parser_raw.ml" +# 8366 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -8344,22 +8371,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8350 "src/ocaml/preprocess/parser_raw.ml" +# 8377 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8356 "src/ocaml/preprocess/parser_raw.ml" +# 8383 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -8372,19 +8399,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8376 "src/ocaml/preprocess/parser_raw.ml" +# 8403 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8382 "src/ocaml/preprocess/parser_raw.ml" +# 8409 "src/ocaml/preprocess/parser_raw.ml" in -# 3024 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.In _2 ) -# 8388 "src/ocaml/preprocess/parser_raw.ml" +# 3060 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_in _2 ) +# 8415 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8406,10 +8433,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parser_types.Constant.t) = -# 4924 "src/ocaml/preprocess/parser_raw.mly" - ( Constant.value _1 ) -# 8413 "src/ocaml/preprocess/parser_raw.ml" + let _v : (Parsetree.constant) = +# 4939 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 8440 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8427,14 +8454,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parser_types.Constant.t) = Obj.magic _1 in + let _1 : (Parsetree.constant) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parser_types.Constant.t) = -# 4925 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.constant) = +# 4940 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8438 "src/ocaml/preprocess/parser_raw.ml" +# 8465 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8464,9 +8491,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5013 "src/ocaml/preprocess/parser_raw.mly" +# 5028 "src/ocaml/preprocess/parser_raw.mly" ( "[]" ) -# 8470 "src/ocaml/preprocess/parser_raw.ml" +# 8497 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8496,9 +8523,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5014 "src/ocaml/preprocess/parser_raw.mly" +# 5029 "src/ocaml/preprocess/parser_raw.mly" ( "()" ) -# 8502 "src/ocaml/preprocess/parser_raw.ml" +# 8529 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8521,9 +8548,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5015 "src/ocaml/preprocess/parser_raw.mly" +# 5030 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 8527 "src/ocaml/preprocess/parser_raw.ml" +# 8554 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8546,9 +8573,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5031 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 8552 "src/ocaml/preprocess/parser_raw.ml" +# 8579 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8567,17 +8594,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 8573 "src/ocaml/preprocess/parser_raw.ml" +# 8600 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5019 "src/ocaml/preprocess/parser_raw.mly" +# 5034 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8581 "src/ocaml/preprocess/parser_raw.ml" +# 8608 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8614,14 +8641,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (string) = let _1 = -# 5010 "src/ocaml/preprocess/parser_raw.mly" +# 5025 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 8620 "src/ocaml/preprocess/parser_raw.ml" +# 8647 "src/ocaml/preprocess/parser_raw.ml" in -# 5020 "src/ocaml/preprocess/parser_raw.mly" +# 5035 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8625 "src/ocaml/preprocess/parser_raw.ml" +# 8652 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8644,9 +8671,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5021 "src/ocaml/preprocess/parser_raw.mly" +# 5036 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8650 "src/ocaml/preprocess/parser_raw.ml" +# 8677 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8669,9 +8696,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5024 "src/ocaml/preprocess/parser_raw.mly" +# 5039 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8675 "src/ocaml/preprocess/parser_raw.ml" +# 8702 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8722,14 +8749,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = let _3 = -# 5010 "src/ocaml/preprocess/parser_raw.mly" +# 5025 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 8728 "src/ocaml/preprocess/parser_raw.ml" +# 8755 "src/ocaml/preprocess/parser_raw.ml" in -# 5025 "src/ocaml/preprocess/parser_raw.mly" +# 5040 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 8733 "src/ocaml/preprocess/parser_raw.ml" +# 8760 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8766,14 +8793,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = let _1 = -# 5010 "src/ocaml/preprocess/parser_raw.mly" +# 5025 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 8772 "src/ocaml/preprocess/parser_raw.ml" +# 8799 "src/ocaml/preprocess/parser_raw.ml" in -# 5026 "src/ocaml/preprocess/parser_raw.mly" +# 5041 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 8777 "src/ocaml/preprocess/parser_raw.ml" +# 8804 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8796,9 +8823,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5027 "src/ocaml/preprocess/parser_raw.mly" +# 5042 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 8802 "src/ocaml/preprocess/parser_raw.ml" +# 8829 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8835,9 +8862,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.core_type * Parsetree.core_type) = -# 2549 "src/ocaml/preprocess/parser_raw.mly" +# 2588 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3 ) -# 8841 "src/ocaml/preprocess/parser_raw.ml" +# 8868 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8871,9 +8898,9 @@ module Tables = struct let xs = let x = let gbl = -# 5158 "src/ocaml/preprocess/parser_raw.mly" +# 5173 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 8877 "src/ocaml/preprocess/parser_raw.ml" +# 8904 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -8883,36 +8910,36 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4268 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 8892 "src/ocaml/preprocess/parser_raw.ml" +# 8919 "src/ocaml/preprocess/parser_raw.ml" in -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 8898 "src/ocaml/preprocess/parser_raw.ml" +# 8925 "src/ocaml/preprocess/parser_raw.ml" in # 253 "" ( List.rev xs ) -# 8904 "src/ocaml/preprocess/parser_raw.ml" +# 8931 "src/ocaml/preprocess/parser_raw.ml" in -# 1401 "src/ocaml/preprocess/parser_raw.mly" +# 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8910 "src/ocaml/preprocess/parser_raw.ml" +# 8937 "src/ocaml/preprocess/parser_raw.ml" in -# 4253 "src/ocaml/preprocess/parser_raw.mly" +# 4276 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 8916 "src/ocaml/preprocess/parser_raw.ml" +# 8943 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8957,9 +8984,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5159 "src/ocaml/preprocess/parser_raw.mly" +# 5174 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 8963 "src/ocaml/preprocess/parser_raw.ml" +# 8990 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -8970,36 +8997,36 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4268 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 8979 "src/ocaml/preprocess/parser_raw.ml" +# 9006 "src/ocaml/preprocess/parser_raw.ml" in -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 8985 "src/ocaml/preprocess/parser_raw.ml" +# 9012 "src/ocaml/preprocess/parser_raw.ml" in # 253 "" ( List.rev xs ) -# 8991 "src/ocaml/preprocess/parser_raw.ml" +# 9018 "src/ocaml/preprocess/parser_raw.ml" in -# 1401 "src/ocaml/preprocess/parser_raw.mly" +# 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8997 "src/ocaml/preprocess/parser_raw.ml" +# 9024 "src/ocaml/preprocess/parser_raw.ml" in -# 4253 "src/ocaml/preprocess/parser_raw.mly" +# 4276 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9003 "src/ocaml/preprocess/parser_raw.ml" +# 9030 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9048,9 +9075,9 @@ module Tables = struct let x = let _endpos__0_ = _endpos__2_ in let gbl = -# 5158 "src/ocaml/preprocess/parser_raw.mly" +# 5173 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 9054 "src/ocaml/preprocess/parser_raw.ml" +# 9081 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -9060,36 +9087,36 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4268 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9069 "src/ocaml/preprocess/parser_raw.ml" +# 9096 "src/ocaml/preprocess/parser_raw.ml" in -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 9075 "src/ocaml/preprocess/parser_raw.ml" +# 9102 "src/ocaml/preprocess/parser_raw.ml" in # 253 "" ( List.rev xs ) -# 9081 "src/ocaml/preprocess/parser_raw.ml" +# 9108 "src/ocaml/preprocess/parser_raw.ml" in -# 1401 "src/ocaml/preprocess/parser_raw.mly" +# 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9087 "src/ocaml/preprocess/parser_raw.ml" +# 9114 "src/ocaml/preprocess/parser_raw.ml" in -# 4253 "src/ocaml/preprocess/parser_raw.mly" +# 4276 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9093 "src/ocaml/preprocess/parser_raw.ml" +# 9120 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9148,9 +9175,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5159 "src/ocaml/preprocess/parser_raw.mly" +# 5174 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 9154 "src/ocaml/preprocess/parser_raw.ml" +# 9181 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -9161,36 +9188,36 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4268 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 9170 "src/ocaml/preprocess/parser_raw.ml" +# 9197 "src/ocaml/preprocess/parser_raw.ml" in -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 9176 "src/ocaml/preprocess/parser_raw.ml" +# 9203 "src/ocaml/preprocess/parser_raw.ml" in # 253 "" ( List.rev xs ) -# 9182 "src/ocaml/preprocess/parser_raw.ml" +# 9209 "src/ocaml/preprocess/parser_raw.ml" in -# 1401 "src/ocaml/preprocess/parser_raw.mly" +# 1442 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9188 "src/ocaml/preprocess/parser_raw.ml" +# 9215 "src/ocaml/preprocess/parser_raw.ml" in -# 4253 "src/ocaml/preprocess/parser_raw.mly" +# 4276 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 9194 "src/ocaml/preprocess/parser_raw.ml" +# 9221 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9227,9 +9254,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.constructor_arguments) = -# 4255 "src/ocaml/preprocess/parser_raw.mly" +# 4278 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_record _2 ) -# 9233 "src/ocaml/preprocess/parser_raw.ml" +# 9260 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9252,9 +9279,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constructor_declaration list) = -# 4154 "src/ocaml/preprocess/parser_raw.mly" +# 4185 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 9258 "src/ocaml/preprocess/parser_raw.ml" +# 9285 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9277,14 +9304,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.constructor_declaration list) = let cs = -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1527 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 9283 "src/ocaml/preprocess/parser_raw.ml" +# 9310 "src/ocaml/preprocess/parser_raw.ml" in -# 4156 "src/ocaml/preprocess/parser_raw.mly" +# 4187 "src/ocaml/preprocess/parser_raw.mly" ( cs ) -# 9288 "src/ocaml/preprocess/parser_raw.ml" +# 9315 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9307,14 +9334,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = -# 4424 "src/ocaml/preprocess/parser_raw.mly" +# 4444 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9313 "src/ocaml/preprocess/parser_raw.ml" +# 9340 "src/ocaml/preprocess/parser_raw.ml" in -# 4414 "src/ocaml/preprocess/parser_raw.mly" +# 4434 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9318 "src/ocaml/preprocess/parser_raw.ml" +# 9345 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9344,9 +9371,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = -# 4416 "src/ocaml/preprocess/parser_raw.mly" +# 4436 "src/ocaml/preprocess/parser_raw.mly" ( Typ.attr _1 _2 ) -# 9350 "src/ocaml/preprocess/parser_raw.ml" +# 9377 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9369,9 +9396,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4764 "src/ocaml/preprocess/parser_raw.mly" +# 4783 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9375 "src/ocaml/preprocess/parser_raw.ml" +# 9402 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9394,9 +9421,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4764 "src/ocaml/preprocess/parser_raw.mly" +# 4783 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9400 "src/ocaml/preprocess/parser_raw.ml" +# 9427 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9419,9 +9446,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4764 "src/ocaml/preprocess/parser_raw.mly" +# 4783 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9425 "src/ocaml/preprocess/parser_raw.ml" +# 9452 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9458,9 +9485,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.core_type) = -# 4715 "src/ocaml/preprocess/parser_raw.mly" +# 4734 "src/ocaml/preprocess/parser_raw.mly" ( type_ ) -# 9464 "src/ocaml/preprocess/parser_raw.ml" +# 9491 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9511,7 +9538,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -9523,11 +9550,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 9531 "src/ocaml/preprocess/parser_raw.ml" +# 9558 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -9535,24 +9562,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9541 "src/ocaml/preprocess/parser_raw.ml" +# 9568 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9547 "src/ocaml/preprocess/parser_raw.ml" +# 9574 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4717 "src/ocaml/preprocess/parser_raw.mly" +# 4736 "src/ocaml/preprocess/parser_raw.mly" ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc package_type) attrs ) -# 9556 "src/ocaml/preprocess/parser_raw.ml" +# 9583 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9590,24 +9617,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 4720 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant([ field ], Closed, None) ) -# 9596 "src/ocaml/preprocess/parser_raw.ml" +# 9623 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9605 "src/ocaml/preprocess/parser_raw.ml" +# 9632 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9611 "src/ocaml/preprocess/parser_raw.ml" +# 9638 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9657,24 +9684,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 9661 "src/ocaml/preprocess/parser_raw.ml" +# 9688 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9666 "src/ocaml/preprocess/parser_raw.ml" +# 9693 "src/ocaml/preprocess/parser_raw.ml" in -# 4839 "src/ocaml/preprocess/parser_raw.mly" +# 4854 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9672 "src/ocaml/preprocess/parser_raw.ml" +# 9699 "src/ocaml/preprocess/parser_raw.ml" in -# 4722 "src/ocaml/preprocess/parser_raw.mly" +# 4741 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Closed, None) ) -# 9678 "src/ocaml/preprocess/parser_raw.ml" +# 9705 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -9682,15 +9709,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9688 "src/ocaml/preprocess/parser_raw.ml" +# 9715 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9694 "src/ocaml/preprocess/parser_raw.ml" +# 9721 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9747,24 +9774,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 9751 "src/ocaml/preprocess/parser_raw.ml" +# 9778 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9756 "src/ocaml/preprocess/parser_raw.ml" +# 9783 "src/ocaml/preprocess/parser_raw.ml" in -# 4839 "src/ocaml/preprocess/parser_raw.mly" +# 4854 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9762 "src/ocaml/preprocess/parser_raw.ml" +# 9789 "src/ocaml/preprocess/parser_raw.ml" in -# 4724 "src/ocaml/preprocess/parser_raw.mly" +# 4743 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(field :: fields, Closed, None) ) -# 9768 "src/ocaml/preprocess/parser_raw.ml" +# 9795 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -9772,15 +9799,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9778 "src/ocaml/preprocess/parser_raw.ml" +# 9805 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9784 "src/ocaml/preprocess/parser_raw.ml" +# 9811 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9830,24 +9857,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 9834 "src/ocaml/preprocess/parser_raw.ml" +# 9861 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9839 "src/ocaml/preprocess/parser_raw.ml" +# 9866 "src/ocaml/preprocess/parser_raw.ml" in -# 4839 "src/ocaml/preprocess/parser_raw.mly" +# 4854 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9845 "src/ocaml/preprocess/parser_raw.ml" +# 9872 "src/ocaml/preprocess/parser_raw.ml" in -# 4726 "src/ocaml/preprocess/parser_raw.mly" +# 4745 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Open, None) ) -# 9851 "src/ocaml/preprocess/parser_raw.ml" +# 9878 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -9855,15 +9882,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9861 "src/ocaml/preprocess/parser_raw.ml" +# 9888 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9867 "src/ocaml/preprocess/parser_raw.ml" +# 9894 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9894,24 +9921,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 4728 "src/ocaml/preprocess/parser_raw.mly" +# 4747 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant([], Open, None) ) -# 9900 "src/ocaml/preprocess/parser_raw.ml" +# 9927 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9909 "src/ocaml/preprocess/parser_raw.ml" +# 9936 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9915 "src/ocaml/preprocess/parser_raw.ml" +# 9942 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9961,24 +9988,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 9965 "src/ocaml/preprocess/parser_raw.ml" +# 9992 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9970 "src/ocaml/preprocess/parser_raw.ml" +# 9997 "src/ocaml/preprocess/parser_raw.ml" in -# 4839 "src/ocaml/preprocess/parser_raw.mly" +# 4854 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9976 "src/ocaml/preprocess/parser_raw.ml" +# 10003 "src/ocaml/preprocess/parser_raw.ml" in -# 4730 "src/ocaml/preprocess/parser_raw.mly" +# 4749 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Closed, Some []) ) -# 9982 "src/ocaml/preprocess/parser_raw.ml" +# 10009 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -9986,15 +10013,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 9992 "src/ocaml/preprocess/parser_raw.ml" +# 10019 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9998 "src/ocaml/preprocess/parser_raw.ml" +# 10025 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10059,18 +10086,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 10063 "src/ocaml/preprocess/parser_raw.ml" +# 10090 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10068 "src/ocaml/preprocess/parser_raw.ml" +# 10095 "src/ocaml/preprocess/parser_raw.ml" in -# 4867 "src/ocaml/preprocess/parser_raw.mly" +# 4882 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10074 "src/ocaml/preprocess/parser_raw.ml" +# 10101 "src/ocaml/preprocess/parser_raw.ml" in let fields = @@ -10078,24 +10105,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 10082 "src/ocaml/preprocess/parser_raw.ml" +# 10109 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10087 "src/ocaml/preprocess/parser_raw.ml" +# 10114 "src/ocaml/preprocess/parser_raw.ml" in -# 4839 "src/ocaml/preprocess/parser_raw.mly" +# 4854 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10093 "src/ocaml/preprocess/parser_raw.ml" +# 10120 "src/ocaml/preprocess/parser_raw.ml" in -# 4735 "src/ocaml/preprocess/parser_raw.mly" +# 4754 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Closed, Some tags) ) -# 10099 "src/ocaml/preprocess/parser_raw.ml" +# 10126 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__6_ in @@ -10103,15 +10130,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10109 "src/ocaml/preprocess/parser_raw.ml" +# 10136 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10115 "src/ocaml/preprocess/parser_raw.ml" +# 10142 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10168,24 +10195,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 10172 "src/ocaml/preprocess/parser_raw.ml" +# 10199 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10177 "src/ocaml/preprocess/parser_raw.ml" +# 10204 "src/ocaml/preprocess/parser_raw.ml" in -# 4668 "src/ocaml/preprocess/parser_raw.mly" +# 4687 "src/ocaml/preprocess/parser_raw.mly" ( (None, ty1) :: ltys ) -# 10183 "src/ocaml/preprocess/parser_raw.ml" +# 10210 "src/ocaml/preprocess/parser_raw.ml" in -# 4737 "src/ocaml/preprocess/parser_raw.mly" +# 4756 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_unboxed_tuple _2 ) -# 10189 "src/ocaml/preprocess/parser_raw.ml" +# 10216 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -10193,15 +10220,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10199 "src/ocaml/preprocess/parser_raw.ml" +# 10226 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10205 "src/ocaml/preprocess/parser_raw.ml" +# 10232 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10261,9 +10288,9 @@ module Tables = struct let ty1 : (Parsetree.core_type) = Obj.magic ty1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 10267 "src/ocaml/preprocess/parser_raw.ml" +# 10294 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -10276,24 +10303,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 10280 "src/ocaml/preprocess/parser_raw.ml" +# 10307 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10285 "src/ocaml/preprocess/parser_raw.ml" +# 10312 "src/ocaml/preprocess/parser_raw.ml" in -# 4674 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( (Some label, ty1) :: ltys ) -# 10291 "src/ocaml/preprocess/parser_raw.ml" +# 10318 "src/ocaml/preprocess/parser_raw.ml" in -# 4737 "src/ocaml/preprocess/parser_raw.mly" +# 4756 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_unboxed_tuple _2 ) -# 10297 "src/ocaml/preprocess/parser_raw.ml" +# 10324 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -10301,15 +10328,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10307 "src/ocaml/preprocess/parser_raw.ml" +# 10334 "src/ocaml/preprocess/parser_raw.ml" in -# 4739 "src/ocaml/preprocess/parser_raw.mly" +# 4758 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10313 "src/ocaml/preprocess/parser_raw.ml" +# 10340 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10332,9 +10359,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.direction_flag) = -# 5134 "src/ocaml/preprocess/parser_raw.mly" +# 5149 "src/ocaml/preprocess/parser_raw.mly" ( Upto ) -# 10338 "src/ocaml/preprocess/parser_raw.ml" +# 10365 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10357,9 +10384,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.direction_flag) = -# 5135 "src/ocaml/preprocess/parser_raw.mly" +# 5150 "src/ocaml/preprocess/parser_raw.mly" ( Downto ) -# 10363 "src/ocaml/preprocess/parser_raw.ml" +# 10390 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10374,10 +10401,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (string Location.loc option) = -# 5303 "src/ocaml/preprocess/parser_raw.mly" + let _v : (string Asttypes.loc option) = +# 5318 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 10381 "src/ocaml/preprocess/parser_raw.ml" +# 10408 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10401,15 +10428,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (string Location.loc) = Obj.magic _2 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (string Location.loc option) = -# 5304 "src/ocaml/preprocess/parser_raw.mly" + let _v : (string Asttypes.loc option) = +# 5319 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 10413 "src/ocaml/preprocess/parser_raw.ml" +# 10440 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10447,15 +10474,15 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Location.loc) = Obj.magic _2 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.extension) = -# 5316 "src/ocaml/preprocess/parser_raw.mly" +# 5331 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3) ) -# 10459 "src/ocaml/preprocess/parser_raw.ml" +# 10486 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10474,9 +10501,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1087 "src/ocaml/preprocess/parser_raw.mly" +# 1131 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 10480 "src/ocaml/preprocess/parser_raw.ml" +# 10507 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -10485,9 +10512,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5318 "src/ocaml/preprocess/parser_raw.mly" +# 5333 "src/ocaml/preprocess/parser_raw.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 10491 "src/ocaml/preprocess/parser_raw.ml" +# 10518 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10540,9 +10567,9 @@ module Tables = struct let _v : (Parsetree.extension_constructor) = let attrs = let _1 = _1_inlined3 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10546 "src/ocaml/preprocess/parser_raw.ml" +# 10573 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined3_ in @@ -10552,9 +10579,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10558 "src/ocaml/preprocess/parser_raw.ml" +# 10585 "src/ocaml/preprocess/parser_raw.ml" in let cid = @@ -10563,19 +10590,19 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10569 "src/ocaml/preprocess/parser_raw.ml" +# 10596 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4329 "src/ocaml/preprocess/parser_raw.mly" +# 4350 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 10579 "src/ocaml/preprocess/parser_raw.ml" +# 10606 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10621,9 +10648,9 @@ module Tables = struct let _v : (Parsetree.extension_constructor) = let attrs = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10627 "src/ocaml/preprocess/parser_raw.ml" +# 10654 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined2_ in @@ -10633,9 +10660,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10639 "src/ocaml/preprocess/parser_raw.ml" +# 10666 "src/ocaml/preprocess/parser_raw.ml" in let cid = @@ -10643,25 +10670,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 10649 "src/ocaml/preprocess/parser_raw.ml" +# 10676 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_cid_ = _startpos__1_ in let _1 = -# 5108 "src/ocaml/preprocess/parser_raw.mly" +# 5123 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 10656 "src/ocaml/preprocess/parser_raw.ml" +# 10683 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos_cid_ in let _sloc = (_symbolstartpos, _endpos) in -# 4329 "src/ocaml/preprocess/parser_raw.mly" +# 4350 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 10665 "src/ocaml/preprocess/parser_raw.ml" +# 10692 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10685,24 +10712,24 @@ module Tables = struct let _endpos = _endpos_ext_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 4755 "src/ocaml/preprocess/parser_raw.mly" +# 4774 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_extension ext ) -# 10691 "src/ocaml/preprocess/parser_raw.ml" +# 10718 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ext_, _startpos_ext_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 10700 "src/ocaml/preprocess/parser_raw.ml" +# 10727 "src/ocaml/preprocess/parser_raw.ml" in -# 4757 "src/ocaml/preprocess/parser_raw.mly" +# 4776 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10706 "src/ocaml/preprocess/parser_raw.ml" +# 10733 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10740,7 +10767,7 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Location.loc) = Obj.magic _2 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -10749,10 +10776,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5291 "src/ocaml/preprocess/parser_raw.mly" +# 5306 "src/ocaml/preprocess/parser_raw.mly" ( mark_symbol_docs _sloc; mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 10756 "src/ocaml/preprocess/parser_raw.ml" +# 10783 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10768,14 +10795,14 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = -# 2489 "src/ocaml/preprocess/parser_raw.mly" +# 2528 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 10774 "src/ocaml/preprocess/parser_raw.ml" +# 10801 "src/ocaml/preprocess/parser_raw.ml" in -# 2307 "src/ocaml/preprocess/parser_raw.mly" +# 2346 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 10779 "src/ocaml/preprocess/parser_raw.ml" +# 10806 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10816,24 +10843,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 10820 "src/ocaml/preprocess/parser_raw.ml" +# 10847 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10825 "src/ocaml/preprocess/parser_raw.ml" +# 10852 "src/ocaml/preprocess/parser_raw.ml" in -# 2491 "src/ocaml/preprocess/parser_raw.mly" +# 2530 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 10831 "src/ocaml/preprocess/parser_raw.ml" +# 10858 "src/ocaml/preprocess/parser_raw.ml" in -# 2307 "src/ocaml/preprocess/parser_raw.mly" +# 2346 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 10837 "src/ocaml/preprocess/parser_raw.ml" +# 10864 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10871,7 +10898,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -10881,18 +10908,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 10885 "src/ocaml/preprocess/parser_raw.ml" +# 10912 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10890 "src/ocaml/preprocess/parser_raw.ml" +# 10917 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10896 "src/ocaml/preprocess/parser_raw.ml" +# 10923 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -10901,22 +10928,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10907 "src/ocaml/preprocess/parser_raw.ml" +# 10934 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 10913 "src/ocaml/preprocess/parser_raw.ml" +# 10940 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3395 "src/ocaml/preprocess/parser_raw.mly" +# 3426 "src/ocaml/preprocess/parser_raw.mly" ( let ext, attrs = _2 in match ext with | None -> Pfunction_cases (_3, make_loc _sloc, attrs) @@ -10926,7 +10953,7 @@ module Tables = struct let function_ = mkfunction [] None cases ~loc:_sloc ~attrs:_2 in Pfunction_body function_ ) -# 10930 "src/ocaml/preprocess/parser_raw.ml" +# 10957 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10949,9 +10976,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.function_body) = -# 3405 "src/ocaml/preprocess/parser_raw.mly" +# 3436 "src/ocaml/preprocess/parser_raw.mly" ( Pfunction_body _1 ) -# 10955 "src/ocaml/preprocess/parser_raw.ml" +# 10982 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10974,9 +11001,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2842 "src/ocaml/preprocess/parser_raw.mly" +# 2881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10980 "src/ocaml/preprocess/parser_raw.ml" +# 11007 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11041,7 +11068,7 @@ module Tables = struct let _5 : (Parsetree.module_expr) = Obj.magic _5 in let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -11054,9 +11081,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 11060 "src/ocaml/preprocess/parser_raw.ml" +# 11087 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -11064,21 +11091,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11070 "src/ocaml/preprocess/parser_raw.ml" +# 11097 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11076 "src/ocaml/preprocess/parser_raw.ml" +# 11103 "src/ocaml/preprocess/parser_raw.ml" in -# 2898 "src/ocaml/preprocess/parser_raw.mly" +# 2937 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_letmodule(_4, _5, (merloc _endpos__6_ _7)), _3 ) -# 11082 "src/ocaml/preprocess/parser_raw.ml" +# 11109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -11086,10 +11113,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11093 "src/ocaml/preprocess/parser_raw.ml" +# 11120 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11158,11 +11185,11 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _2_inlined1 : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic _2_inlined1 in + let _2_inlined1 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic _2_inlined1 in let _1_inlined3 : (string) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -11174,9 +11201,9 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11180 "src/ocaml/preprocess/parser_raw.ml" +# 11207 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -11185,23 +11212,19 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 11191 "src/ocaml/preprocess/parser_raw.ml" +# 11218 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4222 "src/ocaml/preprocess/parser_raw.mly" - ( let vars_jkinds, args, res = _2 in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc:(make_loc _sloc) - ~name:_1 - ~attrs:_3 - (Jext_layout (Lext_decl (vars_jkinds, args, res))) ) -# 11205 "src/ocaml/preprocess/parser_raw.ml" +# 4249 "src/ocaml/preprocess/parser_raw.mly" + ( let vars, args, res = _2 in + Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) ) +# 11228 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -11209,21 +11232,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11215 "src/ocaml/preprocess/parser_raw.ml" +# 11238 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11221 "src/ocaml/preprocess/parser_raw.ml" +# 11244 "src/ocaml/preprocess/parser_raw.ml" in -# 2900 "src/ocaml/preprocess/parser_raw.mly" +# 2939 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_letexception(_4, _6), _3 ) -# 11227 "src/ocaml/preprocess/parser_raw.ml" +# 11250 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__6_ in @@ -11231,10 +11254,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11238 "src/ocaml/preprocess/parser_raw.ml" +# 11261 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11292,7 +11315,7 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.module_expr) = Obj.magic _5 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -11304,28 +11327,28 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11310 "src/ocaml/preprocess/parser_raw.ml" +# 11333 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11316 "src/ocaml/preprocess/parser_raw.ml" +# 11339 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 11322 "src/ocaml/preprocess/parser_raw.ml" +# 11345 "src/ocaml/preprocess/parser_raw.ml" in -# 2902 "src/ocaml/preprocess/parser_raw.mly" +# 2941 "src/ocaml/preprocess/parser_raw.mly" ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in let od = Opn.mk _5 ~override:_3 ~loc:open_loc in Pexp_open(od, (merloc _endpos__6_ _7)), _4 ) -# 11329 "src/ocaml/preprocess/parser_raw.ml" +# 11352 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -11333,10 +11356,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11340 "src/ocaml/preprocess/parser_raw.ml" +# 11363 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11400,7 +11423,7 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.module_expr) = Obj.magic _5 in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -11413,28 +11436,28 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11419 "src/ocaml/preprocess/parser_raw.ml" +# 11442 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11425 "src/ocaml/preprocess/parser_raw.ml" +# 11448 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 11431 "src/ocaml/preprocess/parser_raw.ml" +# 11454 "src/ocaml/preprocess/parser_raw.ml" in -# 2902 "src/ocaml/preprocess/parser_raw.mly" +# 2941 "src/ocaml/preprocess/parser_raw.mly" ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in let od = Opn.mk _5 ~override:_3 ~loc:open_loc in Pexp_open(od, (merloc _endpos__6_ _7)), _4 ) -# 11438 "src/ocaml/preprocess/parser_raw.ml" +# 11461 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -11442,10 +11465,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11449 "src/ocaml/preprocess/parser_raw.ml" +# 11472 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11497,7 +11520,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -11508,18 +11531,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 11512 "src/ocaml/preprocess/parser_raw.ml" +# 11535 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11517 "src/ocaml/preprocess/parser_raw.ml" +# 11540 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11523 "src/ocaml/preprocess/parser_raw.ml" +# 11546 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -11527,21 +11550,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11533 "src/ocaml/preprocess/parser_raw.ml" +# 11556 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11539 "src/ocaml/preprocess/parser_raw.ml" +# 11562 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2945 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_match(_3, _5), _2 ) -# 11545 "src/ocaml/preprocess/parser_raw.ml" +# 11568 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -11549,10 +11572,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11556 "src/ocaml/preprocess/parser_raw.ml" +# 11579 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11604,7 +11627,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -11615,18 +11638,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 11619 "src/ocaml/preprocess/parser_raw.ml" +# 11642 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11624 "src/ocaml/preprocess/parser_raw.ml" +# 11647 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11630 "src/ocaml/preprocess/parser_raw.ml" +# 11653 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -11634,21 +11657,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11640 "src/ocaml/preprocess/parser_raw.ml" +# 11663 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11646 "src/ocaml/preprocess/parser_raw.ml" +# 11669 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2947 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_try(_3, _5), _2 ) -# 11652 "src/ocaml/preprocess/parser_raw.ml" +# 11675 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -11656,10 +11679,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11663 "src/ocaml/preprocess/parser_raw.ml" +# 11686 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11725,7 +11748,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -11734,27 +11757,27 @@ module Tables = struct let _7 = let _1 = _1_inlined4 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11740 "src/ocaml/preprocess/parser_raw.ml" +# 11763 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11745 "src/ocaml/preprocess/parser_raw.ml" +# 11768 "src/ocaml/preprocess/parser_raw.ml" in let _5 = let _1 = _1_inlined3 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11753 "src/ocaml/preprocess/parser_raw.ml" +# 11776 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11758 "src/ocaml/preprocess/parser_raw.ml" +# 11781 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -11762,21 +11785,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11768 "src/ocaml/preprocess/parser_raw.ml" +# 11791 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11774 "src/ocaml/preprocess/parser_raw.ml" +# 11797 "src/ocaml/preprocess/parser_raw.ml" in -# 2914 "src/ocaml/preprocess/parser_raw.mly" +# 2953 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 11780 "src/ocaml/preprocess/parser_raw.ml" +# 11803 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -11784,10 +11807,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11791 "src/ocaml/preprocess/parser_raw.ml" +# 11814 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11867,14 +11890,14 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined6 : (Parsetree.attributes) = Obj.magic _1_inlined6 in - let _1_inlined5 : (string Location.loc option) = Obj.magic _1_inlined5 in + let _1_inlined5 : (string Asttypes.loc option) = Obj.magic _1_inlined5 in let _1_inlined4 : unit = Obj.magic _1_inlined4 in let _6 : unit = Obj.magic _6 in let _1_inlined3 : (Parsetree.expression) = Obj.magic _1_inlined3 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -11888,18 +11911,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 11892 "src/ocaml/preprocess/parser_raw.ml" +# 11915 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11897 "src/ocaml/preprocess/parser_raw.ml" +# 11920 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11903 "src/ocaml/preprocess/parser_raw.ml" +# 11926 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -11908,22 +11931,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11914 "src/ocaml/preprocess/parser_raw.ml" +# 11937 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11920 "src/ocaml/preprocess/parser_raw.ml" +# 11943 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -11936,26 +11959,26 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 11940 "src/ocaml/preprocess/parser_raw.ml" +# 11963 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11946 "src/ocaml/preprocess/parser_raw.ml" +# 11969 "src/ocaml/preprocess/parser_raw.ml" in let _5 = let _1 = _1_inlined3 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11954 "src/ocaml/preprocess/parser_raw.ml" +# 11977 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11959 "src/ocaml/preprocess/parser_raw.ml" +# 11982 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -11963,21 +11986,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11969 "src/ocaml/preprocess/parser_raw.ml" +# 11992 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 11975 "src/ocaml/preprocess/parser_raw.ml" +# 11998 "src/ocaml/preprocess/parser_raw.ml" in -# 2914 "src/ocaml/preprocess/parser_raw.mly" +# 2953 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 11981 "src/ocaml/preprocess/parser_raw.ml" +# 12004 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -11985,10 +12008,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 11992 "src/ocaml/preprocess/parser_raw.ml" +# 12015 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12070,12 +12093,12 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let _1_inlined4 : (string Location.loc option) = Obj.magic _1_inlined4 in + let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12084,14 +12107,14 @@ module Tables = struct let _7 = let _1 = _1_inlined6 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12090 "src/ocaml/preprocess/parser_raw.ml" +# 12113 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12095 "src/ocaml/preprocess/parser_raw.ml" +# 12118 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -12102,18 +12125,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 12106 "src/ocaml/preprocess/parser_raw.ml" +# 12129 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12111 "src/ocaml/preprocess/parser_raw.ml" +# 12134 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12117 "src/ocaml/preprocess/parser_raw.ml" +# 12140 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -12122,22 +12145,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12128 "src/ocaml/preprocess/parser_raw.ml" +# 12151 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12134 "src/ocaml/preprocess/parser_raw.ml" +# 12157 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -12150,13 +12173,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12154 "src/ocaml/preprocess/parser_raw.ml" +# 12177 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12160 "src/ocaml/preprocess/parser_raw.ml" +# 12183 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -12164,21 +12187,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12170 "src/ocaml/preprocess/parser_raw.ml" +# 12193 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12176 "src/ocaml/preprocess/parser_raw.ml" +# 12199 "src/ocaml/preprocess/parser_raw.ml" in -# 2914 "src/ocaml/preprocess/parser_raw.mly" +# 2953 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12182 "src/ocaml/preprocess/parser_raw.ml" +# 12205 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined6_ in @@ -12186,10 +12209,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12193 "src/ocaml/preprocess/parser_raw.ml" +# 12216 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12287,17 +12310,17 @@ module Tables = struct } = _menhir_stack in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined8 : (Parsetree.attributes) = Obj.magic _1_inlined8 in - let _1_inlined7 : (string Location.loc option) = Obj.magic _1_inlined7 in + let _1_inlined7 : (string Asttypes.loc option) = Obj.magic _1_inlined7 in let _1_inlined6 : unit = Obj.magic _1_inlined6 in let _6 : unit = Obj.magic _6 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let _1_inlined4 : (string Location.loc option) = Obj.magic _1_inlined4 in + let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12311,18 +12334,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 12315 "src/ocaml/preprocess/parser_raw.ml" +# 12338 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12320 "src/ocaml/preprocess/parser_raw.ml" +# 12343 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12326 "src/ocaml/preprocess/parser_raw.ml" +# 12349 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -12331,22 +12354,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12337 "src/ocaml/preprocess/parser_raw.ml" +# 12360 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12343 "src/ocaml/preprocess/parser_raw.ml" +# 12366 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -12359,13 +12382,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12363 "src/ocaml/preprocess/parser_raw.ml" +# 12386 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12369 "src/ocaml/preprocess/parser_raw.ml" +# 12392 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -12376,18 +12399,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 12380 "src/ocaml/preprocess/parser_raw.ml" +# 12403 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12385 "src/ocaml/preprocess/parser_raw.ml" +# 12408 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12391 "src/ocaml/preprocess/parser_raw.ml" +# 12414 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -12396,22 +12419,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12402 "src/ocaml/preprocess/parser_raw.ml" +# 12425 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12408 "src/ocaml/preprocess/parser_raw.ml" +# 12431 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -12424,13 +12447,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12428 "src/ocaml/preprocess/parser_raw.ml" +# 12451 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12434 "src/ocaml/preprocess/parser_raw.ml" +# 12457 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -12438,21 +12461,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12444 "src/ocaml/preprocess/parser_raw.ml" +# 12467 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12450 "src/ocaml/preprocess/parser_raw.ml" +# 12473 "src/ocaml/preprocess/parser_raw.ml" in -# 2914 "src/ocaml/preprocess/parser_raw.mly" +# 2953 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 12456 "src/ocaml/preprocess/parser_raw.ml" +# 12479 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_inlined1_ in @@ -12460,10 +12483,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12467 "src/ocaml/preprocess/parser_raw.ml" +# 12490 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12515,7 +12538,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12524,14 +12547,14 @@ module Tables = struct let _5 = let _1 = _1_inlined3 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12530 "src/ocaml/preprocess/parser_raw.ml" +# 12553 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12535 "src/ocaml/preprocess/parser_raw.ml" +# 12558 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -12539,21 +12562,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12545 "src/ocaml/preprocess/parser_raw.ml" +# 12568 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12551 "src/ocaml/preprocess/parser_raw.ml" +# 12574 "src/ocaml/preprocess/parser_raw.ml" in -# 2916 "src/ocaml/preprocess/parser_raw.mly" +# 2955 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 12557 "src/ocaml/preprocess/parser_raw.ml" +# 12580 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -12561,10 +12584,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12568 "src/ocaml/preprocess/parser_raw.ml" +# 12591 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12632,12 +12655,12 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let _1_inlined4 : (string Location.loc option) = Obj.magic _1_inlined4 in + let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12651,18 +12674,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 12655 "src/ocaml/preprocess/parser_raw.ml" +# 12678 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12660 "src/ocaml/preprocess/parser_raw.ml" +# 12683 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12666 "src/ocaml/preprocess/parser_raw.ml" +# 12689 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -12671,22 +12694,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12677 "src/ocaml/preprocess/parser_raw.ml" +# 12700 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12683 "src/ocaml/preprocess/parser_raw.ml" +# 12706 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -12699,13 +12722,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 12703 "src/ocaml/preprocess/parser_raw.ml" +# 12726 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12709 "src/ocaml/preprocess/parser_raw.ml" +# 12732 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -12713,21 +12736,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12719 "src/ocaml/preprocess/parser_raw.ml" +# 12742 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12725 "src/ocaml/preprocess/parser_raw.ml" +# 12748 "src/ocaml/preprocess/parser_raw.ml" in -# 2916 "src/ocaml/preprocess/parser_raw.mly" +# 2955 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 12731 "src/ocaml/preprocess/parser_raw.ml" +# 12754 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -12735,10 +12758,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12742 "src/ocaml/preprocess/parser_raw.ml" +# 12765 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12797,7 +12820,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12808,21 +12831,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12814 "src/ocaml/preprocess/parser_raw.ml" +# 12837 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12820 "src/ocaml/preprocess/parser_raw.ml" +# 12843 "src/ocaml/preprocess/parser_raw.ml" in -# 2918 "src/ocaml/preprocess/parser_raw.mly" +# 2957 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_while(_3, (merloc _endpos__4_ _5)), _2 ) -# 12826 "src/ocaml/preprocess/parser_raw.ml" +# 12849 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__6_ in @@ -12830,10 +12853,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12837 "src/ocaml/preprocess/parser_raw.ml" +# 12860 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12920,7 +12943,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.pattern) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12931,21 +12954,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12937 "src/ocaml/preprocess/parser_raw.ml" +# 12960 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12943 "src/ocaml/preprocess/parser_raw.ml" +# 12966 "src/ocaml/preprocess/parser_raw.ml" in -# 2925 "src/ocaml/preprocess/parser_raw.mly" +# 2964 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_for(_3, (merloc _endpos__4_ _5), (merloc _endpos__6_ _7), _6, (merloc _endpos__8_ _9)), _2 ) -# 12949 "src/ocaml/preprocess/parser_raw.ml" +# 12972 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__10_ in @@ -12953,10 +12976,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 12960 "src/ocaml/preprocess/parser_raw.ml" +# 12983 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12994,7 +13017,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13005,21 +13028,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13011 "src/ocaml/preprocess/parser_raw.ml" +# 13034 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13017 "src/ocaml/preprocess/parser_raw.ml" +# 13040 "src/ocaml/preprocess/parser_raw.ml" in -# 2927 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_assert _3, _2 ) -# 13023 "src/ocaml/preprocess/parser_raw.ml" +# 13046 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -13027,10 +13050,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13034 "src/ocaml/preprocess/parser_raw.ml" +# 13057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13068,7 +13091,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13079,21 +13102,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13085 "src/ocaml/preprocess/parser_raw.ml" +# 13108 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13091 "src/ocaml/preprocess/parser_raw.ml" +# 13114 "src/ocaml/preprocess/parser_raw.ml" in -# 2929 "src/ocaml/preprocess/parser_raw.mly" +# 2968 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_lazy _3, _2 ) -# 13097 "src/ocaml/preprocess/parser_raw.ml" +# 13120 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -13101,10 +13124,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13108 "src/ocaml/preprocess/parser_raw.ml" +# 13131 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13137,22 +13160,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13143 "src/ocaml/preprocess/parser_raw.ml" +# 13166 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13148 "src/ocaml/preprocess/parser_raw.ml" +# 13171 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2931 "src/ocaml/preprocess/parser_raw.mly" +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13156 "src/ocaml/preprocess/parser_raw.ml" +# 13179 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -13160,10 +13183,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13167 "src/ocaml/preprocess/parser_raw.ml" +# 13190 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13207,7 +13230,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -13222,18 +13245,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 13226 "src/ocaml/preprocess/parser_raw.ml" +# 13249 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13231 "src/ocaml/preprocess/parser_raw.ml" +# 13254 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13237 "src/ocaml/preprocess/parser_raw.ml" +# 13260 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -13242,22 +13265,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13248 "src/ocaml/preprocess/parser_raw.ml" +# 13271 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13254 "src/ocaml/preprocess/parser_raw.ml" +# 13277 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -13270,21 +13293,21 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13274 "src/ocaml/preprocess/parser_raw.ml" +# 13297 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13280 "src/ocaml/preprocess/parser_raw.ml" +# 13303 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2931 "src/ocaml/preprocess/parser_raw.mly" +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13288 "src/ocaml/preprocess/parser_raw.ml" +# 13311 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -13292,10 +13315,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13299 "src/ocaml/preprocess/parser_raw.ml" +# 13322 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13328,22 +13351,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13334 "src/ocaml/preprocess/parser_raw.ml" +# 13357 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13339 "src/ocaml/preprocess/parser_raw.ml" +# 13362 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2934 "src/ocaml/preprocess/parser_raw.mly" +# 2973 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13347 "src/ocaml/preprocess/parser_raw.ml" +# 13370 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -13351,10 +13374,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13358 "src/ocaml/preprocess/parser_raw.ml" +# 13381 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13398,7 +13421,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -13413,18 +13436,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 13417 "src/ocaml/preprocess/parser_raw.ml" +# 13440 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13422 "src/ocaml/preprocess/parser_raw.ml" +# 13445 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13428 "src/ocaml/preprocess/parser_raw.ml" +# 13451 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -13433,22 +13456,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13439 "src/ocaml/preprocess/parser_raw.ml" +# 13462 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13445 "src/ocaml/preprocess/parser_raw.ml" +# 13468 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -13461,21 +13484,21 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 13465 "src/ocaml/preprocess/parser_raw.ml" +# 13488 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13471 "src/ocaml/preprocess/parser_raw.ml" +# 13494 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2934 "src/ocaml/preprocess/parser_raw.mly" +# 2973 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 13479 "src/ocaml/preprocess/parser_raw.ml" +# 13502 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -13483,10 +13506,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2844 "src/ocaml/preprocess/parser_raw.mly" +# 2883 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13490 "src/ocaml/preprocess/parser_raw.ml" +# 13513 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13545,7 +13568,7 @@ module Tables = struct let _4 : (Parsetree.core_type option) = Obj.magic _4 in let _3 : (Parsetree.function_param list) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13555,22 +13578,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13561 "src/ocaml/preprocess/parser_raw.ml" +# 13584 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13567 "src/ocaml/preprocess/parser_raw.ml" +# 13590 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2849 "src/ocaml/preprocess/parser_raw.mly" +# 2888 "src/ocaml/preprocess/parser_raw.mly" ( let body_constraint = Option.map (fun x -> @@ -13581,7 +13604,7 @@ module Tables = struct in mkfunction _3 body_constraint _6 ~loc:_sloc ~attrs:_2 ) -# 13585 "src/ocaml/preprocess/parser_raw.ml" +# 13608 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13615,12 +13638,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 13619 "src/ocaml/preprocess/parser_raw.ml" +# 13642 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13624 "src/ocaml/preprocess/parser_raw.ml" +# 13647 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -13628,15 +13651,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2939 "src/ocaml/preprocess/parser_raw.mly" +# 2978 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_apply(_1, _2)) ) -# 13634 "src/ocaml/preprocess/parser_raw.ml" +# 13657 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13640 "src/ocaml/preprocess/parser_raw.ml" +# 13663 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13670,15 +13693,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2941 "src/ocaml/preprocess/parser_raw.mly" +# 2980 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 13676 "src/ocaml/preprocess/parser_raw.ml" +# 13699 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13682 "src/ocaml/preprocess/parser_raw.ml" +# 13705 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13705,12 +13728,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 13709 "src/ocaml/preprocess/parser_raw.ml" +# 13732 "src/ocaml/preprocess/parser_raw.ml" in -# 3532 "src/ocaml/preprocess/parser_raw.mly" +# 3563 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13714 "src/ocaml/preprocess/parser_raw.ml" +# 13737 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in @@ -13718,15 +13741,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2943 "src/ocaml/preprocess/parser_raw.mly" +# 2982 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_tuple _1) ) -# 13724 "src/ocaml/preprocess/parser_raw.ml" +# 13747 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13730 "src/ocaml/preprocess/parser_raw.ml" +# 13753 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13761,24 +13784,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 13767 "src/ocaml/preprocess/parser_raw.ml" +# 13790 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2945 "src/ocaml/preprocess/parser_raw.mly" +# 2984 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) -# 13776 "src/ocaml/preprocess/parser_raw.ml" +# 13799 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13782 "src/ocaml/preprocess/parser_raw.ml" +# 13805 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13812,15 +13835,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2947 "src/ocaml/preprocess/parser_raw.mly" +# 2986 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_variant(_1, Some _2)) ) -# 13818 "src/ocaml/preprocess/parser_raw.ml" +# 13841 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13824 "src/ocaml/preprocess/parser_raw.ml" +# 13847 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13852,9 +13875,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1011 "src/ocaml/preprocess/parser_raw.mly" +# 1055 "src/ocaml/preprocess/parser_raw.mly" (string) -# 13858 "src/ocaml/preprocess/parser_raw.ml" +# 13881 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -13863,46 +13886,46 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let e2 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13869 "src/ocaml/preprocess/parser_raw.ml" +# 13892 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13874 "src/ocaml/preprocess/parser_raw.ml" +# 13897 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = -# 4980 "src/ocaml/preprocess/parser_raw.mly" +# 4995 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 13882 "src/ocaml/preprocess/parser_raw.ml" +# 13905 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 13891 "src/ocaml/preprocess/parser_raw.ml" +# 13914 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 13900 "src/ocaml/preprocess/parser_raw.ml" +# 13923 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13906 "src/ocaml/preprocess/parser_raw.ml" +# 13929 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13952,12 +13975,12 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1011 "src/ocaml/preprocess/parser_raw.mly" +# 1055 "src/ocaml/preprocess/parser_raw.mly" (string) -# 13961 "src/ocaml/preprocess/parser_raw.ml" +# 13984 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -13971,18 +13994,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 13975 "src/ocaml/preprocess/parser_raw.ml" +# 13998 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13980 "src/ocaml/preprocess/parser_raw.ml" +# 14003 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13986 "src/ocaml/preprocess/parser_raw.ml" +# 14009 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -13991,22 +14014,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13997 "src/ocaml/preprocess/parser_raw.ml" +# 14020 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14003 "src/ocaml/preprocess/parser_raw.ml" +# 14026 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -14019,45 +14042,45 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14023 "src/ocaml/preprocess/parser_raw.ml" +# 14046 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14029 "src/ocaml/preprocess/parser_raw.ml" +# 14052 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4980 "src/ocaml/preprocess/parser_raw.mly" +# 4995 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14037 "src/ocaml/preprocess/parser_raw.ml" +# 14060 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14046 "src/ocaml/preprocess/parser_raw.ml" +# 14069 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14055 "src/ocaml/preprocess/parser_raw.ml" +# 14078 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14061 "src/ocaml/preprocess/parser_raw.ml" +# 14084 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14097,45 +14120,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14103 "src/ocaml/preprocess/parser_raw.ml" +# 14126 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14108 "src/ocaml/preprocess/parser_raw.ml" +# 14131 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4982 "src/ocaml/preprocess/parser_raw.mly" +# 4997 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 14116 "src/ocaml/preprocess/parser_raw.ml" +# 14139 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14124 "src/ocaml/preprocess/parser_raw.ml" +# 14147 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14133 "src/ocaml/preprocess/parser_raw.ml" +# 14156 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14139 "src/ocaml/preprocess/parser_raw.ml" +# 14162 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14185,7 +14208,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -14201,18 +14224,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 14205 "src/ocaml/preprocess/parser_raw.ml" +# 14228 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14210 "src/ocaml/preprocess/parser_raw.ml" +# 14233 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14216 "src/ocaml/preprocess/parser_raw.ml" +# 14239 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -14221,22 +14244,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14227 "src/ocaml/preprocess/parser_raw.ml" +# 14250 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14233 "src/ocaml/preprocess/parser_raw.ml" +# 14256 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -14249,44 +14272,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14253 "src/ocaml/preprocess/parser_raw.ml" +# 14276 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14259 "src/ocaml/preprocess/parser_raw.ml" +# 14282 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4982 "src/ocaml/preprocess/parser_raw.mly" +# 4997 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 14267 "src/ocaml/preprocess/parser_raw.ml" +# 14290 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14275 "src/ocaml/preprocess/parser_raw.ml" +# 14298 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14284 "src/ocaml/preprocess/parser_raw.ml" +# 14307 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14290 "src/ocaml/preprocess/parser_raw.ml" +# 14313 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14326,45 +14349,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14332 "src/ocaml/preprocess/parser_raw.ml" +# 14355 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14337 "src/ocaml/preprocess/parser_raw.ml" +# 14360 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4983 "src/ocaml/preprocess/parser_raw.mly" +# 4998 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 14345 "src/ocaml/preprocess/parser_raw.ml" +# 14368 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14353 "src/ocaml/preprocess/parser_raw.ml" +# 14376 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14362 "src/ocaml/preprocess/parser_raw.ml" +# 14385 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14368 "src/ocaml/preprocess/parser_raw.ml" +# 14391 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14414,7 +14437,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -14430,18 +14453,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 14434 "src/ocaml/preprocess/parser_raw.ml" +# 14457 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14439 "src/ocaml/preprocess/parser_raw.ml" +# 14462 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14445 "src/ocaml/preprocess/parser_raw.ml" +# 14468 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -14450,22 +14473,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14456 "src/ocaml/preprocess/parser_raw.ml" +# 14479 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14462 "src/ocaml/preprocess/parser_raw.ml" +# 14485 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -14478,44 +14501,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14482 "src/ocaml/preprocess/parser_raw.ml" +# 14505 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14488 "src/ocaml/preprocess/parser_raw.ml" +# 14511 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4983 "src/ocaml/preprocess/parser_raw.mly" +# 4998 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 14496 "src/ocaml/preprocess/parser_raw.ml" +# 14519 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14504 "src/ocaml/preprocess/parser_raw.ml" +# 14527 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14513 "src/ocaml/preprocess/parser_raw.ml" +# 14536 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14519 "src/ocaml/preprocess/parser_raw.ml" +# 14542 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14547,9 +14570,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1014 "src/ocaml/preprocess/parser_raw.mly" +# 1058 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14553 "src/ocaml/preprocess/parser_raw.ml" +# 14576 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -14558,46 +14581,46 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let e2 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14564 "src/ocaml/preprocess/parser_raw.ml" +# 14587 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14569 "src/ocaml/preprocess/parser_raw.ml" +# 14592 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = -# 4984 "src/ocaml/preprocess/parser_raw.mly" +# 4999 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14577 "src/ocaml/preprocess/parser_raw.ml" +# 14600 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14586 "src/ocaml/preprocess/parser_raw.ml" +# 14609 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14595 "src/ocaml/preprocess/parser_raw.ml" +# 14618 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14601 "src/ocaml/preprocess/parser_raw.ml" +# 14624 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14647,12 +14670,12 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1014 "src/ocaml/preprocess/parser_raw.mly" +# 1058 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14656 "src/ocaml/preprocess/parser_raw.ml" +# 14679 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -14666,18 +14689,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 14670 "src/ocaml/preprocess/parser_raw.ml" +# 14693 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14675 "src/ocaml/preprocess/parser_raw.ml" +# 14698 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14681 "src/ocaml/preprocess/parser_raw.ml" +# 14704 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -14686,22 +14709,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14692 "src/ocaml/preprocess/parser_raw.ml" +# 14715 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14698 "src/ocaml/preprocess/parser_raw.ml" +# 14721 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -14714,45 +14737,45 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14718 "src/ocaml/preprocess/parser_raw.ml" +# 14741 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14724 "src/ocaml/preprocess/parser_raw.ml" +# 14747 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4984 "src/ocaml/preprocess/parser_raw.mly" +# 4999 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14732 "src/ocaml/preprocess/parser_raw.ml" +# 14755 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14741 "src/ocaml/preprocess/parser_raw.ml" +# 14764 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14750 "src/ocaml/preprocess/parser_raw.ml" +# 14773 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14756 "src/ocaml/preprocess/parser_raw.ml" +# 14779 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14784,9 +14807,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1015 "src/ocaml/preprocess/parser_raw.mly" +# 1059 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14790 "src/ocaml/preprocess/parser_raw.ml" +# 14813 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -14795,46 +14818,46 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let e2 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14801 "src/ocaml/preprocess/parser_raw.ml" +# 14824 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14806 "src/ocaml/preprocess/parser_raw.ml" +# 14829 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = -# 4985 "src/ocaml/preprocess/parser_raw.mly" +# 5000 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14814 "src/ocaml/preprocess/parser_raw.ml" +# 14837 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14823 "src/ocaml/preprocess/parser_raw.ml" +# 14846 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14832 "src/ocaml/preprocess/parser_raw.ml" +# 14855 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14838 "src/ocaml/preprocess/parser_raw.ml" +# 14861 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14884,12 +14907,12 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1015 "src/ocaml/preprocess/parser_raw.mly" +# 1059 "src/ocaml/preprocess/parser_raw.mly" (string) -# 14893 "src/ocaml/preprocess/parser_raw.ml" +# 14916 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -14903,18 +14926,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 14907 "src/ocaml/preprocess/parser_raw.ml" +# 14930 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14912 "src/ocaml/preprocess/parser_raw.ml" +# 14935 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14918 "src/ocaml/preprocess/parser_raw.ml" +# 14941 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -14923,22 +14946,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14929 "src/ocaml/preprocess/parser_raw.ml" +# 14952 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14935 "src/ocaml/preprocess/parser_raw.ml" +# 14958 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -14951,45 +14974,45 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14955 "src/ocaml/preprocess/parser_raw.ml" +# 14978 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14961 "src/ocaml/preprocess/parser_raw.ml" +# 14984 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4985 "src/ocaml/preprocess/parser_raw.mly" +# 5000 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 14969 "src/ocaml/preprocess/parser_raw.ml" +# 14992 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 14978 "src/ocaml/preprocess/parser_raw.ml" +# 15001 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 14987 "src/ocaml/preprocess/parser_raw.ml" +# 15010 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14993 "src/ocaml/preprocess/parser_raw.ml" +# 15016 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15021,9 +15044,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1016 "src/ocaml/preprocess/parser_raw.mly" +# 1060 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15027 "src/ocaml/preprocess/parser_raw.ml" +# 15050 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -15032,28 +15055,28 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let e2 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15038 "src/ocaml/preprocess/parser_raw.ml" +# 15061 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15043 "src/ocaml/preprocess/parser_raw.ml" +# 15066 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = let op = -# 4976 "src/ocaml/preprocess/parser_raw.mly" +# 4991 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15052 "src/ocaml/preprocess/parser_raw.ml" +# 15075 "src/ocaml/preprocess/parser_raw.ml" in -# 4986 "src/ocaml/preprocess/parser_raw.mly" +# 5001 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15057 "src/ocaml/preprocess/parser_raw.ml" +# 15080 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in @@ -15061,24 +15084,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15067 "src/ocaml/preprocess/parser_raw.ml" +# 15090 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15076 "src/ocaml/preprocess/parser_raw.ml" +# 15099 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15082 "src/ocaml/preprocess/parser_raw.ml" +# 15105 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15128,12 +15151,12 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1016 "src/ocaml/preprocess/parser_raw.mly" +# 1060 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15137 "src/ocaml/preprocess/parser_raw.ml" +# 15160 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -15147,18 +15170,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 15151 "src/ocaml/preprocess/parser_raw.ml" +# 15174 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15156 "src/ocaml/preprocess/parser_raw.ml" +# 15179 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15162 "src/ocaml/preprocess/parser_raw.ml" +# 15185 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15167,22 +15190,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15173 "src/ocaml/preprocess/parser_raw.ml" +# 15196 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15179 "src/ocaml/preprocess/parser_raw.ml" +# 15202 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15195,27 +15218,27 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15199 "src/ocaml/preprocess/parser_raw.ml" +# 15222 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15205 "src/ocaml/preprocess/parser_raw.ml" +# 15228 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = let op = -# 4976 "src/ocaml/preprocess/parser_raw.mly" +# 4991 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15214 "src/ocaml/preprocess/parser_raw.ml" +# 15237 "src/ocaml/preprocess/parser_raw.ml" in -# 4986 "src/ocaml/preprocess/parser_raw.mly" +# 5001 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15219 "src/ocaml/preprocess/parser_raw.ml" +# 15242 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in @@ -15223,24 +15246,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15229 "src/ocaml/preprocess/parser_raw.ml" +# 15252 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15238 "src/ocaml/preprocess/parser_raw.ml" +# 15261 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15244 "src/ocaml/preprocess/parser_raw.ml" +# 15267 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15280,52 +15303,52 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15286 "src/ocaml/preprocess/parser_raw.ml" +# 15309 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15291 "src/ocaml/preprocess/parser_raw.ml" +# 15314 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = let op = -# 4977 "src/ocaml/preprocess/parser_raw.mly" +# 4992 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 15300 "src/ocaml/preprocess/parser_raw.ml" +# 15323 "src/ocaml/preprocess/parser_raw.ml" in -# 4986 "src/ocaml/preprocess/parser_raw.mly" +# 5001 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15305 "src/ocaml/preprocess/parser_raw.ml" +# 15328 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15314 "src/ocaml/preprocess/parser_raw.ml" +# 15337 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15323 "src/ocaml/preprocess/parser_raw.ml" +# 15346 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15329 "src/ocaml/preprocess/parser_raw.ml" +# 15352 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15375,7 +15398,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -15391,18 +15414,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 15395 "src/ocaml/preprocess/parser_raw.ml" +# 15418 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15400 "src/ocaml/preprocess/parser_raw.ml" +# 15423 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15406 "src/ocaml/preprocess/parser_raw.ml" +# 15429 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15411,22 +15434,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15417 "src/ocaml/preprocess/parser_raw.ml" +# 15440 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15423 "src/ocaml/preprocess/parser_raw.ml" +# 15446 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15439,51 +15462,51 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15443 "src/ocaml/preprocess/parser_raw.ml" +# 15466 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15449 "src/ocaml/preprocess/parser_raw.ml" +# 15472 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = let op = -# 4977 "src/ocaml/preprocess/parser_raw.mly" +# 4992 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 15458 "src/ocaml/preprocess/parser_raw.ml" +# 15481 "src/ocaml/preprocess/parser_raw.ml" in -# 4986 "src/ocaml/preprocess/parser_raw.mly" +# 5001 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15463 "src/ocaml/preprocess/parser_raw.ml" +# 15486 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15472 "src/ocaml/preprocess/parser_raw.ml" +# 15495 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15481 "src/ocaml/preprocess/parser_raw.ml" +# 15504 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15487 "src/ocaml/preprocess/parser_raw.ml" +# 15510 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15515,9 +15538,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1017 "src/ocaml/preprocess/parser_raw.mly" +# 1061 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15521 "src/ocaml/preprocess/parser_raw.ml" +# 15544 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -15526,46 +15549,46 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let e2 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15532 "src/ocaml/preprocess/parser_raw.ml" +# 15555 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15537 "src/ocaml/preprocess/parser_raw.ml" +# 15560 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = -# 4987 "src/ocaml/preprocess/parser_raw.mly" +# 5002 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15545 "src/ocaml/preprocess/parser_raw.ml" +# 15568 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15554 "src/ocaml/preprocess/parser_raw.ml" +# 15577 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15563 "src/ocaml/preprocess/parser_raw.ml" +# 15586 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15569 "src/ocaml/preprocess/parser_raw.ml" +# 15592 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15615,12 +15638,12 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1017 "src/ocaml/preprocess/parser_raw.mly" +# 1061 "src/ocaml/preprocess/parser_raw.mly" (string) -# 15624 "src/ocaml/preprocess/parser_raw.ml" +# 15647 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -15634,18 +15657,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 15638 "src/ocaml/preprocess/parser_raw.ml" +# 15661 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15643 "src/ocaml/preprocess/parser_raw.ml" +# 15666 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15649 "src/ocaml/preprocess/parser_raw.ml" +# 15672 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15654,22 +15677,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15660 "src/ocaml/preprocess/parser_raw.ml" +# 15683 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15666 "src/ocaml/preprocess/parser_raw.ml" +# 15689 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15682,45 +15705,45 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15686 "src/ocaml/preprocess/parser_raw.ml" +# 15709 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15692 "src/ocaml/preprocess/parser_raw.ml" +# 15715 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4987 "src/ocaml/preprocess/parser_raw.mly" +# 5002 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 15700 "src/ocaml/preprocess/parser_raw.ml" +# 15723 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15709 "src/ocaml/preprocess/parser_raw.ml" +# 15732 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15718 "src/ocaml/preprocess/parser_raw.ml" +# 15741 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15724 "src/ocaml/preprocess/parser_raw.ml" +# 15747 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15760,45 +15783,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15766 "src/ocaml/preprocess/parser_raw.ml" +# 15789 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15771 "src/ocaml/preprocess/parser_raw.ml" +# 15794 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4988 "src/ocaml/preprocess/parser_raw.mly" +# 5003 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 15779 "src/ocaml/preprocess/parser_raw.ml" +# 15802 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15787 "src/ocaml/preprocess/parser_raw.ml" +# 15810 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15796 "src/ocaml/preprocess/parser_raw.ml" +# 15819 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15802 "src/ocaml/preprocess/parser_raw.ml" +# 15825 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15848,7 +15871,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -15864,18 +15887,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 15868 "src/ocaml/preprocess/parser_raw.ml" +# 15891 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15873 "src/ocaml/preprocess/parser_raw.ml" +# 15896 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15879 "src/ocaml/preprocess/parser_raw.ml" +# 15902 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15884,22 +15907,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15890 "src/ocaml/preprocess/parser_raw.ml" +# 15913 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15896 "src/ocaml/preprocess/parser_raw.ml" +# 15919 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15912,44 +15935,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15916 "src/ocaml/preprocess/parser_raw.ml" +# 15939 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15922 "src/ocaml/preprocess/parser_raw.ml" +# 15945 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4988 "src/ocaml/preprocess/parser_raw.mly" +# 5003 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 15930 "src/ocaml/preprocess/parser_raw.ml" +# 15953 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 15938 "src/ocaml/preprocess/parser_raw.ml" +# 15961 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 15947 "src/ocaml/preprocess/parser_raw.ml" +# 15970 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15953 "src/ocaml/preprocess/parser_raw.ml" +# 15976 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15989,45 +16012,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15995 "src/ocaml/preprocess/parser_raw.ml" +# 16018 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16000 "src/ocaml/preprocess/parser_raw.ml" +# 16023 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4989 "src/ocaml/preprocess/parser_raw.mly" +# 5004 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 16008 "src/ocaml/preprocess/parser_raw.ml" +# 16031 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16016 "src/ocaml/preprocess/parser_raw.ml" +# 16039 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16025 "src/ocaml/preprocess/parser_raw.ml" +# 16048 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16031 "src/ocaml/preprocess/parser_raw.ml" +# 16054 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16077,7 +16100,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -16093,18 +16116,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 16097 "src/ocaml/preprocess/parser_raw.ml" +# 16120 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16102 "src/ocaml/preprocess/parser_raw.ml" +# 16125 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16108 "src/ocaml/preprocess/parser_raw.ml" +# 16131 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -16113,22 +16136,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16119 "src/ocaml/preprocess/parser_raw.ml" +# 16142 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16125 "src/ocaml/preprocess/parser_raw.ml" +# 16148 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -16141,44 +16164,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16145 "src/ocaml/preprocess/parser_raw.ml" +# 16168 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16151 "src/ocaml/preprocess/parser_raw.ml" +# 16174 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4989 "src/ocaml/preprocess/parser_raw.mly" +# 5004 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 16159 "src/ocaml/preprocess/parser_raw.ml" +# 16182 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16167 "src/ocaml/preprocess/parser_raw.ml" +# 16190 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16176 "src/ocaml/preprocess/parser_raw.ml" +# 16199 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16182 "src/ocaml/preprocess/parser_raw.ml" +# 16205 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16218,274 +16241,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16224 "src/ocaml/preprocess/parser_raw.ml" +# 16247 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16229 "src/ocaml/preprocess/parser_raw.ml" +# 16252 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4990 "src/ocaml/preprocess/parser_raw.mly" +# 5005 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 16237 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1267 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 16245 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2949 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16254 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2860 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) # 16260 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let xs : (Parsetree.case list) = Obj.magic xs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" - ( List.rev xs ) -# 16326 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1458 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 16331 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3409 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 16337 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 5300 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 16348 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5313 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 16354 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2637 "src/ocaml/preprocess/parser_raw.mly" - ( let loc = make_loc _sloc in - let cases = _3 in - (* There are two choices of where to put attributes: on the - Pexp_function node; on the Pfunction_cases body. We put them on the - Pexp_function node here because the compiler only uses - Pfunction_cases attributes for enabling/disabling warnings in - typechecking. For standalone function cases, we want the compiler to - respect, e.g., [@inline] attributes. - *) - mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 - ~loc:_sloc - ) -# 16374 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2894 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 16380 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 4990 "src/ocaml/preprocess/parser_raw.mly" - ("+=") -# 16388 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16396 "src/ocaml/preprocess/parser_raw.ml" +# 16268 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16405 "src/ocaml/preprocess/parser_raw.ml" +# 16277 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16411 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 16453 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2894 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 16458 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 4991 "src/ocaml/preprocess/parser_raw.mly" - ("-") -# 16466 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1267 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 16474 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2949 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16483 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2860 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 16489 "src/ocaml/preprocess/parser_raw.ml" +# 16283 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16535,7 +16329,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -16551,18 +16345,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 16555 "src/ocaml/preprocess/parser_raw.ml" +# 16349 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16560 "src/ocaml/preprocess/parser_raw.ml" +# 16354 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16566 "src/ocaml/preprocess/parser_raw.ml" +# 16360 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -16571,22 +16365,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16577 "src/ocaml/preprocess/parser_raw.ml" +# 16371 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16583 "src/ocaml/preprocess/parser_raw.ml" +# 16377 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -16599,44 +16393,273 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16603 "src/ocaml/preprocess/parser_raw.ml" +# 16397 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16609 "src/ocaml/preprocess/parser_raw.ml" +# 16403 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4991 "src/ocaml/preprocess/parser_raw.mly" +# 5005 "src/ocaml/preprocess/parser_raw.mly" + ("+=") +# 16411 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1311 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 16419 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2988 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 16428 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 16434 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_e1_ in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = +# 2674 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 16476 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2933 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 16481 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5006 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 16617 "src/ocaml/preprocess/parser_raw.ml" +# 16489 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16625 "src/ocaml/preprocess/parser_raw.ml" +# 16497 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16634 "src/ocaml/preprocess/parser_raw.ml" +# 16506 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) +# 16512 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let xs : (Parsetree.case list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" + ( List.rev xs ) +# 16578 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1499 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 16583 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3440 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 16589 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5315 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 16600 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5328 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 16606 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2676 "src/ocaml/preprocess/parser_raw.mly" + ( let loc = make_loc _sloc in + let cases = _3 in + (* There are two choices of where to put attributes: on the + Pexp_function node; on the Pfunction_cases body. We put them on the + Pexp_function node here because the compiler only uses + Pfunction_cases attributes for enabling/disabling warnings in + typechecking. For standalone function cases, we want the compiler to + respect, e.g., [@inline] attributes. + *) + mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 + ~loc:_sloc + ) +# 16626 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2933 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 16632 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5006 "src/ocaml/preprocess/parser_raw.mly" + ("-") # 16640 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1311 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 16648 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2988 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 16657 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 16663 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16676,45 +16699,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16682 "src/ocaml/preprocess/parser_raw.ml" +# 16705 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16687 "src/ocaml/preprocess/parser_raw.ml" +# 16710 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4992 "src/ocaml/preprocess/parser_raw.mly" +# 5007 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 16695 "src/ocaml/preprocess/parser_raw.ml" +# 16718 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16703 "src/ocaml/preprocess/parser_raw.ml" +# 16726 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16712 "src/ocaml/preprocess/parser_raw.ml" +# 16735 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16718 "src/ocaml/preprocess/parser_raw.ml" +# 16741 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16764,7 +16787,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -16780,18 +16803,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 16784 "src/ocaml/preprocess/parser_raw.ml" +# 16807 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16789 "src/ocaml/preprocess/parser_raw.ml" +# 16812 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16795 "src/ocaml/preprocess/parser_raw.ml" +# 16818 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -16800,22 +16823,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16806 "src/ocaml/preprocess/parser_raw.ml" +# 16829 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16812 "src/ocaml/preprocess/parser_raw.ml" +# 16835 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -16828,44 +16851,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16832 "src/ocaml/preprocess/parser_raw.ml" +# 16855 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16838 "src/ocaml/preprocess/parser_raw.ml" +# 16861 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4992 "src/ocaml/preprocess/parser_raw.mly" +# 5007 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 16846 "src/ocaml/preprocess/parser_raw.ml" +# 16869 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16854 "src/ocaml/preprocess/parser_raw.ml" +# 16877 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16863 "src/ocaml/preprocess/parser_raw.ml" +# 16886 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16869 "src/ocaml/preprocess/parser_raw.ml" +# 16892 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16905,45 +16928,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16911 "src/ocaml/preprocess/parser_raw.ml" +# 16934 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16916 "src/ocaml/preprocess/parser_raw.ml" +# 16939 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4993 "src/ocaml/preprocess/parser_raw.mly" +# 5008 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 16924 "src/ocaml/preprocess/parser_raw.ml" +# 16947 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 16932 "src/ocaml/preprocess/parser_raw.ml" +# 16955 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 16941 "src/ocaml/preprocess/parser_raw.ml" +# 16964 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16947 "src/ocaml/preprocess/parser_raw.ml" +# 16970 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16993,7 +17016,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17009,18 +17032,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17013 "src/ocaml/preprocess/parser_raw.ml" +# 17036 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17018 "src/ocaml/preprocess/parser_raw.ml" +# 17041 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17024 "src/ocaml/preprocess/parser_raw.ml" +# 17047 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17029,22 +17052,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17035 "src/ocaml/preprocess/parser_raw.ml" +# 17058 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17041 "src/ocaml/preprocess/parser_raw.ml" +# 17064 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17057,44 +17080,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17061 "src/ocaml/preprocess/parser_raw.ml" +# 17084 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17067 "src/ocaml/preprocess/parser_raw.ml" +# 17090 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4993 "src/ocaml/preprocess/parser_raw.mly" +# 5008 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 17075 "src/ocaml/preprocess/parser_raw.ml" +# 17098 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17083 "src/ocaml/preprocess/parser_raw.ml" +# 17106 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17092 "src/ocaml/preprocess/parser_raw.ml" +# 17115 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17098 "src/ocaml/preprocess/parser_raw.ml" +# 17121 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17134,45 +17157,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17140 "src/ocaml/preprocess/parser_raw.ml" +# 17163 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17145 "src/ocaml/preprocess/parser_raw.ml" +# 17168 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4994 "src/ocaml/preprocess/parser_raw.mly" +# 5009 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 17153 "src/ocaml/preprocess/parser_raw.ml" +# 17176 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17161 "src/ocaml/preprocess/parser_raw.ml" +# 17184 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17170 "src/ocaml/preprocess/parser_raw.ml" +# 17193 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17176 "src/ocaml/preprocess/parser_raw.ml" +# 17199 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17222,7 +17245,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17238,18 +17261,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17242 "src/ocaml/preprocess/parser_raw.ml" +# 17265 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17247 "src/ocaml/preprocess/parser_raw.ml" +# 17270 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17253 "src/ocaml/preprocess/parser_raw.ml" +# 17276 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17258,22 +17281,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17264 "src/ocaml/preprocess/parser_raw.ml" +# 17287 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17270 "src/ocaml/preprocess/parser_raw.ml" +# 17293 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17286,44 +17309,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17290 "src/ocaml/preprocess/parser_raw.ml" +# 17313 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17296 "src/ocaml/preprocess/parser_raw.ml" +# 17319 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4994 "src/ocaml/preprocess/parser_raw.mly" +# 5009 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 17304 "src/ocaml/preprocess/parser_raw.ml" +# 17327 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17312 "src/ocaml/preprocess/parser_raw.ml" +# 17335 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17321 "src/ocaml/preprocess/parser_raw.ml" +# 17344 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17327 "src/ocaml/preprocess/parser_raw.ml" +# 17350 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17363,45 +17386,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17369 "src/ocaml/preprocess/parser_raw.ml" +# 17392 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17374 "src/ocaml/preprocess/parser_raw.ml" +# 17397 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4995 "src/ocaml/preprocess/parser_raw.mly" +# 5010 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 17382 "src/ocaml/preprocess/parser_raw.ml" +# 17405 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17390 "src/ocaml/preprocess/parser_raw.ml" +# 17413 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17399 "src/ocaml/preprocess/parser_raw.ml" +# 17422 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17405 "src/ocaml/preprocess/parser_raw.ml" +# 17428 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17451,7 +17474,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17467,18 +17490,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17471 "src/ocaml/preprocess/parser_raw.ml" +# 17494 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17476 "src/ocaml/preprocess/parser_raw.ml" +# 17499 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17482 "src/ocaml/preprocess/parser_raw.ml" +# 17505 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17487,22 +17510,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17493 "src/ocaml/preprocess/parser_raw.ml" +# 17516 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17499 "src/ocaml/preprocess/parser_raw.ml" +# 17522 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17515,44 +17538,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17519 "src/ocaml/preprocess/parser_raw.ml" +# 17542 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17525 "src/ocaml/preprocess/parser_raw.ml" +# 17548 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4995 "src/ocaml/preprocess/parser_raw.mly" +# 5010 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 17533 "src/ocaml/preprocess/parser_raw.ml" +# 17556 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17541 "src/ocaml/preprocess/parser_raw.ml" +# 17564 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17550 "src/ocaml/preprocess/parser_raw.ml" +# 17573 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17556 "src/ocaml/preprocess/parser_raw.ml" +# 17579 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17592,45 +17615,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17598 "src/ocaml/preprocess/parser_raw.ml" +# 17621 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17603 "src/ocaml/preprocess/parser_raw.ml" +# 17626 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4996 "src/ocaml/preprocess/parser_raw.mly" +# 5011 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 17611 "src/ocaml/preprocess/parser_raw.ml" +# 17634 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17619 "src/ocaml/preprocess/parser_raw.ml" +# 17642 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17628 "src/ocaml/preprocess/parser_raw.ml" +# 17651 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17634 "src/ocaml/preprocess/parser_raw.ml" +# 17657 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17680,7 +17703,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17696,18 +17719,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17700 "src/ocaml/preprocess/parser_raw.ml" +# 17723 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17705 "src/ocaml/preprocess/parser_raw.ml" +# 17728 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17711 "src/ocaml/preprocess/parser_raw.ml" +# 17734 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17716,22 +17739,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17722 "src/ocaml/preprocess/parser_raw.ml" +# 17745 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17728 "src/ocaml/preprocess/parser_raw.ml" +# 17751 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17744,44 +17767,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17748 "src/ocaml/preprocess/parser_raw.ml" +# 17771 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17754 "src/ocaml/preprocess/parser_raw.ml" +# 17777 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4996 "src/ocaml/preprocess/parser_raw.mly" +# 5011 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 17762 "src/ocaml/preprocess/parser_raw.ml" +# 17785 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17770 "src/ocaml/preprocess/parser_raw.ml" +# 17793 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17779 "src/ocaml/preprocess/parser_raw.ml" +# 17802 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17785 "src/ocaml/preprocess/parser_raw.ml" +# 17808 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17821,45 +17844,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17827 "src/ocaml/preprocess/parser_raw.ml" +# 17850 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17832 "src/ocaml/preprocess/parser_raw.ml" +# 17855 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4997 "src/ocaml/preprocess/parser_raw.mly" +# 5012 "src/ocaml/preprocess/parser_raw.mly" (">") -# 17840 "src/ocaml/preprocess/parser_raw.ml" +# 17863 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17848 "src/ocaml/preprocess/parser_raw.ml" +# 17871 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 17857 "src/ocaml/preprocess/parser_raw.ml" +# 17880 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17863 "src/ocaml/preprocess/parser_raw.ml" +# 17886 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17909,7 +17932,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17925,18 +17948,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17929 "src/ocaml/preprocess/parser_raw.ml" +# 17952 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17934 "src/ocaml/preprocess/parser_raw.ml" +# 17957 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17940 "src/ocaml/preprocess/parser_raw.ml" +# 17963 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17945,22 +17968,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17951 "src/ocaml/preprocess/parser_raw.ml" +# 17974 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17957 "src/ocaml/preprocess/parser_raw.ml" +# 17980 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17973,44 +17996,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17977 "src/ocaml/preprocess/parser_raw.ml" +# 18000 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17983 "src/ocaml/preprocess/parser_raw.ml" +# 18006 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4997 "src/ocaml/preprocess/parser_raw.mly" +# 5012 "src/ocaml/preprocess/parser_raw.mly" (">") -# 17991 "src/ocaml/preprocess/parser_raw.ml" +# 18014 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 17999 "src/ocaml/preprocess/parser_raw.ml" +# 18022 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18008 "src/ocaml/preprocess/parser_raw.ml" +# 18031 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18014 "src/ocaml/preprocess/parser_raw.ml" +# 18037 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18050,45 +18073,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18056 "src/ocaml/preprocess/parser_raw.ml" +# 18079 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18061 "src/ocaml/preprocess/parser_raw.ml" +# 18084 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4998 "src/ocaml/preprocess/parser_raw.mly" +# 5013 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 18069 "src/ocaml/preprocess/parser_raw.ml" +# 18092 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18077 "src/ocaml/preprocess/parser_raw.ml" +# 18100 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18086 "src/ocaml/preprocess/parser_raw.ml" +# 18109 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18092 "src/ocaml/preprocess/parser_raw.ml" +# 18115 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18138,7 +18161,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -18154,18 +18177,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 18158 "src/ocaml/preprocess/parser_raw.ml" +# 18181 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18163 "src/ocaml/preprocess/parser_raw.ml" +# 18186 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18169 "src/ocaml/preprocess/parser_raw.ml" +# 18192 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -18174,22 +18197,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18180 "src/ocaml/preprocess/parser_raw.ml" +# 18203 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18186 "src/ocaml/preprocess/parser_raw.ml" +# 18209 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -18202,44 +18225,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18206 "src/ocaml/preprocess/parser_raw.ml" +# 18229 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18212 "src/ocaml/preprocess/parser_raw.ml" +# 18235 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4998 "src/ocaml/preprocess/parser_raw.mly" +# 5013 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 18220 "src/ocaml/preprocess/parser_raw.ml" +# 18243 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18228 "src/ocaml/preprocess/parser_raw.ml" +# 18251 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18237 "src/ocaml/preprocess/parser_raw.ml" +# 18260 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18243 "src/ocaml/preprocess/parser_raw.ml" +# 18266 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18279,45 +18302,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18285 "src/ocaml/preprocess/parser_raw.ml" +# 18308 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18290 "src/ocaml/preprocess/parser_raw.ml" +# 18313 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 5014 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 18298 "src/ocaml/preprocess/parser_raw.ml" +# 18321 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18306 "src/ocaml/preprocess/parser_raw.ml" +# 18329 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18315 "src/ocaml/preprocess/parser_raw.ml" +# 18338 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18321 "src/ocaml/preprocess/parser_raw.ml" +# 18344 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18367,7 +18390,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -18383,18 +18406,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 18387 "src/ocaml/preprocess/parser_raw.ml" +# 18410 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18392 "src/ocaml/preprocess/parser_raw.ml" +# 18415 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18398 "src/ocaml/preprocess/parser_raw.ml" +# 18421 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -18403,22 +18426,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18409 "src/ocaml/preprocess/parser_raw.ml" +# 18432 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18415 "src/ocaml/preprocess/parser_raw.ml" +# 18438 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -18431,44 +18454,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18435 "src/ocaml/preprocess/parser_raw.ml" +# 18458 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18441 "src/ocaml/preprocess/parser_raw.ml" +# 18464 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 5014 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 18449 "src/ocaml/preprocess/parser_raw.ml" +# 18472 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18457 "src/ocaml/preprocess/parser_raw.ml" +# 18480 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18466 "src/ocaml/preprocess/parser_raw.ml" +# 18489 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18472 "src/ocaml/preprocess/parser_raw.ml" +# 18495 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18508,45 +18531,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18514 "src/ocaml/preprocess/parser_raw.ml" +# 18537 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18519 "src/ocaml/preprocess/parser_raw.ml" +# 18542 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5000 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 18527 "src/ocaml/preprocess/parser_raw.ml" +# 18550 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18535 "src/ocaml/preprocess/parser_raw.ml" +# 18558 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18544 "src/ocaml/preprocess/parser_raw.ml" +# 18567 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18550 "src/ocaml/preprocess/parser_raw.ml" +# 18573 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18596,7 +18619,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -18612,18 +18635,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 18616 "src/ocaml/preprocess/parser_raw.ml" +# 18639 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18621 "src/ocaml/preprocess/parser_raw.ml" +# 18644 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18627 "src/ocaml/preprocess/parser_raw.ml" +# 18650 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -18632,22 +18655,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18638 "src/ocaml/preprocess/parser_raw.ml" +# 18661 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18644 "src/ocaml/preprocess/parser_raw.ml" +# 18667 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -18660,44 +18683,44 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18664 "src/ocaml/preprocess/parser_raw.ml" +# 18687 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18670 "src/ocaml/preprocess/parser_raw.ml" +# 18693 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5000 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 18678 "src/ocaml/preprocess/parser_raw.ml" +# 18701 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18686 "src/ocaml/preprocess/parser_raw.ml" +# 18709 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18695 "src/ocaml/preprocess/parser_raw.ml" +# 18718 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18701 "src/ocaml/preprocess/parser_raw.ml" +# 18724 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18737,274 +18760,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18743 "src/ocaml/preprocess/parser_raw.ml" +# 18766 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18748 "src/ocaml/preprocess/parser_raw.ml" +# 18771 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5001 "src/ocaml/preprocess/parser_raw.mly" +# 5016 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 18756 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1267 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 18764 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2949 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18773 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2860 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) # 18779 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let xs : (Parsetree.case list) = Obj.magic xs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in - let _1 = - let _3 = - let xs = - let xs = -# 253 "" - ( List.rev xs ) -# 18845 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1458 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 18850 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3409 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 18856 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__3_ = _endpos_xs_ in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 5300 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 18867 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 5313 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 18873 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2637 "src/ocaml/preprocess/parser_raw.mly" - ( let loc = make_loc _sloc in - let cases = _3 in - (* There are two choices of where to put attributes: on the - Pexp_function node; on the Pfunction_cases body. We put them on the - Pexp_function node here because the compiler only uses - Pfunction_cases attributes for enabling/disabling warnings in - typechecking. For standalone function cases, we want the compiler to - respect, e.g., [@inline] attributes. - *) - mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 - ~loc:_sloc - ) -# 18893 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2894 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 18899 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos_xs_ in - let op = - let _1 = -# 5001 "src/ocaml/preprocess/parser_raw.mly" - ("&&") -# 18907 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1267 "src/ocaml/preprocess/parser_raw.mly" - ( mkoperator ~loc:_sloc _1 ) -# 18915 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_e2_ in - let _symbolstartpos = _startpos_e1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2949 "src/ocaml/preprocess/parser_raw.mly" - ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 18924 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2860 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 18930 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.expression) = let _1 = - let e2 = - let _1 = _1_inlined1 in - let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 18972 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2894 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 18977 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_e2_ = _endpos__1_inlined1_ in - let op = - let _1 = -# 5002 "src/ocaml/preprocess/parser_raw.mly" - (":=") -# 18985 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 18993 "src/ocaml/preprocess/parser_raw.ml" +# 18787 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19002 "src/ocaml/preprocess/parser_raw.ml" +# 18796 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19008 "src/ocaml/preprocess/parser_raw.ml" +# 18802 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19054,7 +18848,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -19070,18 +18864,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 19074 "src/ocaml/preprocess/parser_raw.ml" +# 18868 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19079 "src/ocaml/preprocess/parser_raw.ml" +# 18873 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19085 "src/ocaml/preprocess/parser_raw.ml" +# 18879 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -19090,22 +18884,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19096 "src/ocaml/preprocess/parser_raw.ml" +# 18890 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19102 "src/ocaml/preprocess/parser_raw.ml" +# 18896 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -19118,44 +18912,273 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19122 "src/ocaml/preprocess/parser_raw.ml" +# 18916 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19128 "src/ocaml/preprocess/parser_raw.ml" +# 18922 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5002 "src/ocaml/preprocess/parser_raw.mly" +# 5016 "src/ocaml/preprocess/parser_raw.mly" + ("&&") +# 18930 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1311 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 18938 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2988 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 18947 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 18953 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_e1_ in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.expression) = let _1 = + let e2 = + let _1 = _1_inlined1 in + let _1 = +# 2674 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 18995 "src/ocaml/preprocess/parser_raw.ml" + in + +# 2933 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 19000 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos__1_inlined1_ in + let op = + let _1 = +# 5017 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 19136 "src/ocaml/preprocess/parser_raw.ml" +# 19008 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19144 "src/ocaml/preprocess/parser_raw.ml" +# 19016 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2988 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19153 "src/ocaml/preprocess/parser_raw.ml" +# 19025 "src/ocaml/preprocess/parser_raw.ml" in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) +# 19031 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let xs : (Parsetree.case list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.expression) = let _1 = + let e2 = + let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in + let _1 = + let _3 = + let xs = + let xs = +# 253 "" + ( List.rev xs ) +# 19097 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1499 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 19102 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3440 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 19108 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__3_ = _endpos_xs_ in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 5315 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 19119 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 5328 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 19125 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2676 "src/ocaml/preprocess/parser_raw.mly" + ( let loc = make_loc _sloc in + let cases = _3 in + (* There are two choices of where to put attributes: on the + Pexp_function node; on the Pfunction_cases body. We put them on the + Pexp_function node here because the compiler only uses + Pfunction_cases attributes for enabling/disabling warnings in + typechecking. For standalone function cases, we want the compiler to + respect, e.g., [@inline] attributes. + *) + mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 + ~loc:_sloc + ) +# 19145 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2933 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 19151 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_e2_ = _endpos_xs_ in + let op = + let _1 = +# 5017 "src/ocaml/preprocess/parser_raw.mly" + (":=") # 19159 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1311 "src/ocaml/preprocess/parser_raw.mly" + ( mkoperator ~loc:_sloc _1 ) +# 19167 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e2_ in + let _symbolstartpos = _startpos_e1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2988 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) +# 19176 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2899 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 19182 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19195,9 +19218,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2862 "src/ocaml/preprocess/parser_raw.mly" +# 2901 "src/ocaml/preprocess/parser_raw.mly" ( expr_of_let_bindings ~loc:_sloc _1 (merloc _endpos__2_ _3) ) -# 19201 "src/ocaml/preprocess/parser_raw.ml" +# 19224 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19237,9 +19260,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in let _1 : ( -# 1019 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19243 "src/ocaml/preprocess/parser_raw.ml" +# 19266 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -19249,9 +19272,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19255 "src/ocaml/preprocess/parser_raw.ml" +# 19278 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_pbop_op_ = _startpos__1_ in @@ -19259,13 +19282,13 @@ module Tables = struct let _symbolstartpos = _startpos_pbop_op_ in let _sloc = (_symbolstartpos, _endpos) in -# 2864 "src/ocaml/preprocess/parser_raw.mly" +# 2903 "src/ocaml/preprocess/parser_raw.mly" ( let (pbop_pat, pbop_exp, rev_ands) = bindings in let ands = List.rev rev_ands in let pbop_loc = make_loc _sloc in let let_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in mkexp ~loc:_sloc (Pexp_letop{ let_; ands; body}) ) -# 19269 "src/ocaml/preprocess/parser_raw.ml" +# 19292 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19304,14 +19327,14 @@ module Tables = struct let _v : (Parsetree.expression) = let _3 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19310 "src/ocaml/preprocess/parser_raw.ml" +# 19333 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19315 "src/ocaml/preprocess/parser_raw.ml" +# 19338 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -19320,10 +19343,10 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 2870 "src/ocaml/preprocess/parser_raw.mly" +# 2909 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 19327 "src/ocaml/preprocess/parser_raw.ml" +# 19350 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19373,7 +19396,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -19388,18 +19411,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 19392 "src/ocaml/preprocess/parser_raw.ml" +# 19415 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19397 "src/ocaml/preprocess/parser_raw.ml" +# 19420 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19403 "src/ocaml/preprocess/parser_raw.ml" +# 19426 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -19408,22 +19431,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19414 "src/ocaml/preprocess/parser_raw.ml" +# 19437 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19420 "src/ocaml/preprocess/parser_raw.ml" +# 19443 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -19436,13 +19459,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19440 "src/ocaml/preprocess/parser_raw.ml" +# 19463 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19446 "src/ocaml/preprocess/parser_raw.ml" +# 19469 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -19451,10 +19474,10 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 2870 "src/ocaml/preprocess/parser_raw.mly" +# 2909 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 19458 "src/ocaml/preprocess/parser_raw.ml" +# 19481 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19487,9 +19510,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19493 "src/ocaml/preprocess/parser_raw.ml" +# 19516 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -19497,39 +19520,39 @@ module Tables = struct let _v : (Parsetree.expression) = let _3 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19503 "src/ocaml/preprocess/parser_raw.ml" +# 19526 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19508 "src/ocaml/preprocess/parser_raw.ml" +# 19531 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in let _1 = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19516 "src/ocaml/preprocess/parser_raw.ml" +# 19539 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19524 "src/ocaml/preprocess/parser_raw.ml" +# 19547 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2873 "src/ocaml/preprocess/parser_raw.mly" +# 2912 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 19533 "src/ocaml/preprocess/parser_raw.ml" +# 19556 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19579,13 +19602,13 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19589 "src/ocaml/preprocess/parser_raw.ml" +# 19612 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -19598,18 +19621,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 19602 "src/ocaml/preprocess/parser_raw.ml" +# 19625 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19607 "src/ocaml/preprocess/parser_raw.ml" +# 19630 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19613 "src/ocaml/preprocess/parser_raw.ml" +# 19636 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -19618,22 +19641,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19624 "src/ocaml/preprocess/parser_raw.ml" +# 19647 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19630 "src/ocaml/preprocess/parser_raw.ml" +# 19653 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -19646,38 +19669,38 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19650 "src/ocaml/preprocess/parser_raw.ml" +# 19673 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19656 "src/ocaml/preprocess/parser_raw.ml" +# 19679 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in let _1 = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19664 "src/ocaml/preprocess/parser_raw.ml" +# 19687 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19672 "src/ocaml/preprocess/parser_raw.ml" +# 19695 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2873 "src/ocaml/preprocess/parser_raw.mly" +# 2912 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 19681 "src/ocaml/preprocess/parser_raw.ml" +# 19704 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19730,14 +19753,14 @@ module Tables = struct let _v : (Parsetree.expression) = let _5 = let _1 = _1_inlined2 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19736 "src/ocaml/preprocess/parser_raw.ml" +# 19759 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19741 "src/ocaml/preprocess/parser_raw.ml" +# 19764 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -19747,18 +19770,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19753 "src/ocaml/preprocess/parser_raw.ml" +# 19776 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2875 "src/ocaml/preprocess/parser_raw.mly" +# 2914 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 19762 "src/ocaml/preprocess/parser_raw.ml" +# 19785 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19820,7 +19843,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in @@ -19837,18 +19860,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 19841 "src/ocaml/preprocess/parser_raw.ml" +# 19864 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19846 "src/ocaml/preprocess/parser_raw.ml" +# 19869 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19852 "src/ocaml/preprocess/parser_raw.ml" +# 19875 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -19857,22 +19880,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19863 "src/ocaml/preprocess/parser_raw.ml" +# 19886 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19869 "src/ocaml/preprocess/parser_raw.ml" +# 19892 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -19885,13 +19908,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19889 "src/ocaml/preprocess/parser_raw.ml" +# 19912 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19895 "src/ocaml/preprocess/parser_raw.ml" +# 19918 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -19901,18 +19924,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19907 "src/ocaml/preprocess/parser_raw.ml" +# 19930 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2875 "src/ocaml/preprocess/parser_raw.mly" +# 2914 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 19916 "src/ocaml/preprocess/parser_raw.ml" +# 19939 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19981,26 +20004,26 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19987 "src/ocaml/preprocess/parser_raw.ml" +# 20010 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19992 "src/ocaml/preprocess/parser_raw.ml" +# 20015 "src/ocaml/preprocess/parser_raw.ml" in -# 2876 "src/ocaml/preprocess/parser_raw.mly" +# 2915 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 19998 "src/ocaml/preprocess/parser_raw.ml" +# 20021 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 20004 "src/ocaml/preprocess/parser_raw.ml" +# 20027 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -20008,9 +20031,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2877 "src/ocaml/preprocess/parser_raw.mly" +# 2916 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20014 "src/ocaml/preprocess/parser_raw.ml" +# 20037 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20084,7 +20107,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -20105,18 +20128,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 20109 "src/ocaml/preprocess/parser_raw.ml" +# 20132 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20114 "src/ocaml/preprocess/parser_raw.ml" +# 20137 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20120 "src/ocaml/preprocess/parser_raw.ml" +# 20143 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20125,22 +20148,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20131 "src/ocaml/preprocess/parser_raw.ml" +# 20154 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20137 "src/ocaml/preprocess/parser_raw.ml" +# 20160 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20153,25 +20176,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20157 "src/ocaml/preprocess/parser_raw.ml" +# 20180 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20163 "src/ocaml/preprocess/parser_raw.ml" +# 20186 "src/ocaml/preprocess/parser_raw.ml" in -# 2876 "src/ocaml/preprocess/parser_raw.mly" +# 2915 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20169 "src/ocaml/preprocess/parser_raw.ml" +# 20192 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 20175 "src/ocaml/preprocess/parser_raw.ml" +# 20198 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -20179,9 +20202,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2877 "src/ocaml/preprocess/parser_raw.mly" +# 2916 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20185 "src/ocaml/preprocess/parser_raw.ml" +# 20208 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20250,26 +20273,26 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20256 "src/ocaml/preprocess/parser_raw.ml" +# 20279 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20261 "src/ocaml/preprocess/parser_raw.ml" +# 20284 "src/ocaml/preprocess/parser_raw.ml" in -# 2876 "src/ocaml/preprocess/parser_raw.mly" +# 2915 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20267 "src/ocaml/preprocess/parser_raw.ml" +# 20290 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 20273 "src/ocaml/preprocess/parser_raw.ml" +# 20296 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -20277,9 +20300,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2877 "src/ocaml/preprocess/parser_raw.mly" +# 2916 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20283 "src/ocaml/preprocess/parser_raw.ml" +# 20306 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20353,7 +20376,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -20374,18 +20397,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 20378 "src/ocaml/preprocess/parser_raw.ml" +# 20401 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20383 "src/ocaml/preprocess/parser_raw.ml" +# 20406 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20389 "src/ocaml/preprocess/parser_raw.ml" +# 20412 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20394,22 +20417,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20400 "src/ocaml/preprocess/parser_raw.ml" +# 20423 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20406 "src/ocaml/preprocess/parser_raw.ml" +# 20429 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20422,25 +20445,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20426 "src/ocaml/preprocess/parser_raw.ml" +# 20449 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20432 "src/ocaml/preprocess/parser_raw.ml" +# 20455 "src/ocaml/preprocess/parser_raw.ml" in -# 2876 "src/ocaml/preprocess/parser_raw.mly" +# 2915 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20438 "src/ocaml/preprocess/parser_raw.ml" +# 20461 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 20444 "src/ocaml/preprocess/parser_raw.ml" +# 20467 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -20448,9 +20471,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2877 "src/ocaml/preprocess/parser_raw.mly" +# 2916 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20454 "src/ocaml/preprocess/parser_raw.ml" +# 20477 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20519,26 +20542,26 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20525 "src/ocaml/preprocess/parser_raw.ml" +# 20548 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20530 "src/ocaml/preprocess/parser_raw.ml" +# 20553 "src/ocaml/preprocess/parser_raw.ml" in -# 2876 "src/ocaml/preprocess/parser_raw.mly" +# 2915 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20536 "src/ocaml/preprocess/parser_raw.ml" +# 20559 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 20542 "src/ocaml/preprocess/parser_raw.ml" +# 20565 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -20546,9 +20569,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2877 "src/ocaml/preprocess/parser_raw.mly" +# 2916 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20552 "src/ocaml/preprocess/parser_raw.ml" +# 20575 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20622,7 +20645,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -20643,18 +20666,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 20647 "src/ocaml/preprocess/parser_raw.ml" +# 20670 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20652 "src/ocaml/preprocess/parser_raw.ml" +# 20675 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20658 "src/ocaml/preprocess/parser_raw.ml" +# 20681 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20663,22 +20686,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20669 "src/ocaml/preprocess/parser_raw.ml" +# 20692 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20675 "src/ocaml/preprocess/parser_raw.ml" +# 20698 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20691,25 +20714,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20695 "src/ocaml/preprocess/parser_raw.ml" +# 20718 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20701 "src/ocaml/preprocess/parser_raw.ml" +# 20724 "src/ocaml/preprocess/parser_raw.ml" in -# 2876 "src/ocaml/preprocess/parser_raw.mly" +# 2915 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20707 "src/ocaml/preprocess/parser_raw.ml" +# 20730 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 20713 "src/ocaml/preprocess/parser_raw.ml" +# 20736 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -20717,9 +20740,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2877 "src/ocaml/preprocess/parser_raw.mly" +# 2916 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 20723 "src/ocaml/preprocess/parser_raw.ml" +# 20746 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20779,9 +20802,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 20785 "src/ocaml/preprocess/parser_raw.ml" +# 20808 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -20792,43 +20815,43 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20798 "src/ocaml/preprocess/parser_raw.ml" +# 20821 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20803 "src/ocaml/preprocess/parser_raw.ml" +# 20826 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 20809 "src/ocaml/preprocess/parser_raw.ml" +# 20832 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 20815 "src/ocaml/preprocess/parser_raw.ml" +# 20838 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 20821 "src/ocaml/preprocess/parser_raw.ml" +# 20844 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20826 "src/ocaml/preprocess/parser_raw.ml" +# 20849 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 20832 "src/ocaml/preprocess/parser_raw.ml" +# 20855 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -20836,9 +20859,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 20842 "src/ocaml/preprocess/parser_raw.ml" +# 20865 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20912,16 +20935,16 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 20925 "src/ocaml/preprocess/parser_raw.ml" +# 20948 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -20937,18 +20960,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 20941 "src/ocaml/preprocess/parser_raw.ml" +# 20964 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20946 "src/ocaml/preprocess/parser_raw.ml" +# 20969 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20952 "src/ocaml/preprocess/parser_raw.ml" +# 20975 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20957,22 +20980,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20963 "src/ocaml/preprocess/parser_raw.ml" +# 20986 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20969 "src/ocaml/preprocess/parser_raw.ml" +# 20992 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20985,42 +21008,42 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20989 "src/ocaml/preprocess/parser_raw.ml" +# 21012 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20995 "src/ocaml/preprocess/parser_raw.ml" +# 21018 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21001 "src/ocaml/preprocess/parser_raw.ml" +# 21024 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21007 "src/ocaml/preprocess/parser_raw.ml" +# 21030 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 21013 "src/ocaml/preprocess/parser_raw.ml" +# 21036 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21018 "src/ocaml/preprocess/parser_raw.ml" +# 21041 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21024 "src/ocaml/preprocess/parser_raw.ml" +# 21047 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -21028,9 +21051,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21034 "src/ocaml/preprocess/parser_raw.ml" +# 21057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21102,9 +21125,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21108 "src/ocaml/preprocess/parser_raw.ml" +# 21131 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -21118,51 +21141,51 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21124 "src/ocaml/preprocess/parser_raw.ml" +# 21147 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21129 "src/ocaml/preprocess/parser_raw.ml" +# 21152 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21135 "src/ocaml/preprocess/parser_raw.ml" +# 21158 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21141 "src/ocaml/preprocess/parser_raw.ml" +# 21164 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 21149 "src/ocaml/preprocess/parser_raw.ml" +# 21172 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 21154 "src/ocaml/preprocess/parser_raw.ml" +# 21177 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21160 "src/ocaml/preprocess/parser_raw.ml" +# 21183 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21166 "src/ocaml/preprocess/parser_raw.ml" +# 21189 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in @@ -21170,9 +21193,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21176 "src/ocaml/preprocess/parser_raw.ml" +# 21199 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21258,16 +21281,16 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _5 : unit = Obj.magic _5 in let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21271 "src/ocaml/preprocess/parser_raw.ml" +# 21294 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -21286,18 +21309,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 21290 "src/ocaml/preprocess/parser_raw.ml" +# 21313 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21295 "src/ocaml/preprocess/parser_raw.ml" +# 21318 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21301 "src/ocaml/preprocess/parser_raw.ml" +# 21324 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -21306,22 +21329,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21312 "src/ocaml/preprocess/parser_raw.ml" +# 21335 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21318 "src/ocaml/preprocess/parser_raw.ml" +# 21341 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -21334,50 +21357,50 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21338 "src/ocaml/preprocess/parser_raw.ml" +# 21361 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21344 "src/ocaml/preprocess/parser_raw.ml" +# 21367 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21350 "src/ocaml/preprocess/parser_raw.ml" +# 21373 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21356 "src/ocaml/preprocess/parser_raw.ml" +# 21379 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 21364 "src/ocaml/preprocess/parser_raw.ml" +# 21387 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 21369 "src/ocaml/preprocess/parser_raw.ml" +# 21392 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21375 "src/ocaml/preprocess/parser_raw.ml" +# 21398 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 21381 "src/ocaml/preprocess/parser_raw.ml" +# 21404 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -21385,9 +21408,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21391 "src/ocaml/preprocess/parser_raw.ml" +# 21414 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21447,9 +21470,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21453 "src/ocaml/preprocess/parser_raw.ml" +# 21476 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -21460,43 +21483,43 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21466 "src/ocaml/preprocess/parser_raw.ml" +# 21489 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21471 "src/ocaml/preprocess/parser_raw.ml" +# 21494 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21477 "src/ocaml/preprocess/parser_raw.ml" +# 21500 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21483 "src/ocaml/preprocess/parser_raw.ml" +# 21506 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 21489 "src/ocaml/preprocess/parser_raw.ml" +# 21512 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21494 "src/ocaml/preprocess/parser_raw.ml" +# 21517 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 21500 "src/ocaml/preprocess/parser_raw.ml" +# 21523 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -21504,9 +21527,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21510 "src/ocaml/preprocess/parser_raw.ml" +# 21533 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21580,16 +21603,16 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21593 "src/ocaml/preprocess/parser_raw.ml" +# 21616 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -21605,18 +21628,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 21609 "src/ocaml/preprocess/parser_raw.ml" +# 21632 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21614 "src/ocaml/preprocess/parser_raw.ml" +# 21637 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21620 "src/ocaml/preprocess/parser_raw.ml" +# 21643 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -21625,22 +21648,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21631 "src/ocaml/preprocess/parser_raw.ml" +# 21654 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21637 "src/ocaml/preprocess/parser_raw.ml" +# 21660 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -21653,42 +21676,42 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21657 "src/ocaml/preprocess/parser_raw.ml" +# 21680 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21663 "src/ocaml/preprocess/parser_raw.ml" +# 21686 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21669 "src/ocaml/preprocess/parser_raw.ml" +# 21692 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21675 "src/ocaml/preprocess/parser_raw.ml" +# 21698 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 21681 "src/ocaml/preprocess/parser_raw.ml" +# 21704 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21686 "src/ocaml/preprocess/parser_raw.ml" +# 21709 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 21692 "src/ocaml/preprocess/parser_raw.ml" +# 21715 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -21696,9 +21719,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21702 "src/ocaml/preprocess/parser_raw.ml" +# 21725 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21770,9 +21793,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21776 "src/ocaml/preprocess/parser_raw.ml" +# 21799 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -21786,51 +21809,51 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21792 "src/ocaml/preprocess/parser_raw.ml" +# 21815 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21797 "src/ocaml/preprocess/parser_raw.ml" +# 21820 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 21803 "src/ocaml/preprocess/parser_raw.ml" +# 21826 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 21809 "src/ocaml/preprocess/parser_raw.ml" +# 21832 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 21817 "src/ocaml/preprocess/parser_raw.ml" +# 21840 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 21822 "src/ocaml/preprocess/parser_raw.ml" +# 21845 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21828 "src/ocaml/preprocess/parser_raw.ml" +# 21851 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 21834 "src/ocaml/preprocess/parser_raw.ml" +# 21857 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in @@ -21838,9 +21861,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 21844 "src/ocaml/preprocess/parser_raw.ml" +# 21867 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21926,16 +21949,16 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _5 : unit = Obj.magic _5 in let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21939 "src/ocaml/preprocess/parser_raw.ml" +# 21962 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -21954,18 +21977,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 21958 "src/ocaml/preprocess/parser_raw.ml" +# 21981 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21963 "src/ocaml/preprocess/parser_raw.ml" +# 21986 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21969 "src/ocaml/preprocess/parser_raw.ml" +# 21992 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -21974,22 +21997,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21980 "src/ocaml/preprocess/parser_raw.ml" +# 22003 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21986 "src/ocaml/preprocess/parser_raw.ml" +# 22009 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -22002,50 +22025,50 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22006 "src/ocaml/preprocess/parser_raw.ml" +# 22029 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22012 "src/ocaml/preprocess/parser_raw.ml" +# 22035 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22018 "src/ocaml/preprocess/parser_raw.ml" +# 22041 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22024 "src/ocaml/preprocess/parser_raw.ml" +# 22047 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22032 "src/ocaml/preprocess/parser_raw.ml" +# 22055 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 22037 "src/ocaml/preprocess/parser_raw.ml" +# 22060 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22043 "src/ocaml/preprocess/parser_raw.ml" +# 22066 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 22049 "src/ocaml/preprocess/parser_raw.ml" +# 22072 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -22053,9 +22076,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22059 "src/ocaml/preprocess/parser_raw.ml" +# 22082 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22115,9 +22138,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22121 "src/ocaml/preprocess/parser_raw.ml" +# 22144 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -22128,43 +22151,43 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22134 "src/ocaml/preprocess/parser_raw.ml" +# 22157 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22139 "src/ocaml/preprocess/parser_raw.ml" +# 22162 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22145 "src/ocaml/preprocess/parser_raw.ml" +# 22168 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22151 "src/ocaml/preprocess/parser_raw.ml" +# 22174 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 22157 "src/ocaml/preprocess/parser_raw.ml" +# 22180 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22162 "src/ocaml/preprocess/parser_raw.ml" +# 22185 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 22168 "src/ocaml/preprocess/parser_raw.ml" +# 22191 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -22172,9 +22195,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22178 "src/ocaml/preprocess/parser_raw.ml" +# 22201 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22248,16 +22271,16 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22261 "src/ocaml/preprocess/parser_raw.ml" +# 22284 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -22273,18 +22296,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 22277 "src/ocaml/preprocess/parser_raw.ml" +# 22300 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22282 "src/ocaml/preprocess/parser_raw.ml" +# 22305 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22288 "src/ocaml/preprocess/parser_raw.ml" +# 22311 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -22293,22 +22316,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22299 "src/ocaml/preprocess/parser_raw.ml" +# 22322 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22305 "src/ocaml/preprocess/parser_raw.ml" +# 22328 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -22321,42 +22344,42 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22325 "src/ocaml/preprocess/parser_raw.ml" +# 22348 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22331 "src/ocaml/preprocess/parser_raw.ml" +# 22354 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22337 "src/ocaml/preprocess/parser_raw.ml" +# 22360 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22343 "src/ocaml/preprocess/parser_raw.ml" +# 22366 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 22349 "src/ocaml/preprocess/parser_raw.ml" +# 22372 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22354 "src/ocaml/preprocess/parser_raw.ml" +# 22377 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 22360 "src/ocaml/preprocess/parser_raw.ml" +# 22383 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -22364,9 +22387,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22370 "src/ocaml/preprocess/parser_raw.ml" +# 22393 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22438,9 +22461,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22444 "src/ocaml/preprocess/parser_raw.ml" +# 22467 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22454,51 +22477,51 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22460 "src/ocaml/preprocess/parser_raw.ml" +# 22483 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22465 "src/ocaml/preprocess/parser_raw.ml" +# 22488 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22471 "src/ocaml/preprocess/parser_raw.ml" +# 22494 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22477 "src/ocaml/preprocess/parser_raw.ml" +# 22500 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22485 "src/ocaml/preprocess/parser_raw.ml" +# 22508 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 22490 "src/ocaml/preprocess/parser_raw.ml" +# 22513 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22496 "src/ocaml/preprocess/parser_raw.ml" +# 22519 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 22502 "src/ocaml/preprocess/parser_raw.ml" +# 22525 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in @@ -22506,9 +22529,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22512 "src/ocaml/preprocess/parser_raw.ml" +# 22535 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22594,16 +22617,16 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _5 : unit = Obj.magic _5 in let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22607 "src/ocaml/preprocess/parser_raw.ml" +# 22630 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -22622,18 +22645,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 22626 "src/ocaml/preprocess/parser_raw.ml" +# 22649 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22631 "src/ocaml/preprocess/parser_raw.ml" +# 22654 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22637 "src/ocaml/preprocess/parser_raw.ml" +# 22660 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -22642,22 +22665,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22648 "src/ocaml/preprocess/parser_raw.ml" +# 22671 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22654 "src/ocaml/preprocess/parser_raw.ml" +# 22677 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -22670,50 +22693,50 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22674 "src/ocaml/preprocess/parser_raw.ml" +# 22697 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22680 "src/ocaml/preprocess/parser_raw.ml" +# 22703 "src/ocaml/preprocess/parser_raw.ml" in -# 2878 "src/ocaml/preprocess/parser_raw.mly" +# 2917 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 22686 "src/ocaml/preprocess/parser_raw.ml" +# 22709 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 22692 "src/ocaml/preprocess/parser_raw.ml" +# 22715 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 22700 "src/ocaml/preprocess/parser_raw.ml" +# 22723 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 22705 "src/ocaml/preprocess/parser_raw.ml" +# 22728 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22711 "src/ocaml/preprocess/parser_raw.ml" +# 22734 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 22717 "src/ocaml/preprocess/parser_raw.ml" +# 22740 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -22721,9 +22744,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2879 "src/ocaml/preprocess/parser_raw.mly" +# 2918 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 22727 "src/ocaml/preprocess/parser_raw.ml" +# 22750 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22753,9 +22776,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2881 "src/ocaml/preprocess/parser_raw.mly" +# 2920 "src/ocaml/preprocess/parser_raw.mly" ( Exp.attr _1 _2 ) -# 22759 "src/ocaml/preprocess/parser_raw.ml" +# 22782 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22789,9 +22812,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4574 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 22795 "src/ocaml/preprocess/parser_raw.ml" +# 22818 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_mode_ = _startpos__1_ in @@ -22799,9 +22822,9 @@ module Tables = struct let _symbolstartpos = _startpos_mode_ in let _sloc = (_symbolstartpos, _endpos) in -# 2889 "src/ocaml/preprocess/parser_raw.mly" +# 2928 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_with_modes ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 22805 "src/ocaml/preprocess/parser_raw.ml" +# 22828 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22835,9 +22858,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4557 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 22841 "src/ocaml/preprocess/parser_raw.ml" +# 22864 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_mode_ = _startpos__1_ in @@ -22845,9 +22868,9 @@ module Tables = struct let _symbolstartpos = _startpos_mode_ in let _sloc = (_symbolstartpos, _endpos) in -# 2889 "src/ocaml/preprocess/parser_raw.mly" +# 2928 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_with_modes ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 22851 "src/ocaml/preprocess/parser_raw.ml" +# 22874 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22881,9 +22904,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4559 "src/ocaml/preprocess/parser_raw.mly" +# 4578 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 22887 "src/ocaml/preprocess/parser_raw.ml" +# 22910 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_mode_ = _startpos__1_ in @@ -22891,9 +22914,9 @@ module Tables = struct let _symbolstartpos = _startpos_mode_ in let _sloc = (_symbolstartpos, _endpos) in -# 2889 "src/ocaml/preprocess/parser_raw.mly" +# 2928 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_with_modes ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 22897 "src/ocaml/preprocess/parser_raw.ml" +# 22920 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22927,9 +22950,9 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 2891 "src/ocaml/preprocess/parser_raw.mly" +# 2930 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_exclave ~loc:_sloc ~kwd_loc:(_loc__1_) _2 ) -# 22933 "src/ocaml/preprocess/parser_raw.ml" +# 22956 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22966,7 +22989,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let ty_params : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = Obj.magic ty_params in + let ty_params : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic ty_params in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -22976,7 +22999,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3423 "src/ocaml/preprocess/parser_raw.mly" +# 3454 "src/ocaml/preprocess/parser_raw.mly" ( (* We desugar (type a b c) to (type a) (type b) (type c). If we do this desugaring, the loc for each parameter is a ghost. *) @@ -22992,7 +23015,7 @@ module Tables = struct }) ty_params ) -# 22996 "src/ocaml/preprocess/parser_raw.ml" +# 23019 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23041,12 +23064,12 @@ module Tables = struct }; } = _menhir_stack in let _6 : unit = Obj.magic _6 in - let _5 : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic _5 in + let _5 : (Parsetree.jkind_annotation) = Obj.magic _5 in let _4 : unit = Obj.magic _4 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 23050 "src/ocaml/preprocess/parser_raw.ml" +# 23073 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -23059,22 +23082,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 23065 "src/ocaml/preprocess/parser_raw.ml" +# 23088 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3439 "src/ocaml/preprocess/parser_raw.mly" +# 3470 "src/ocaml/preprocess/parser_raw.mly" ( [ { pparam_loc = make_loc _sloc; pparam_desc = Pparam_newtype (_3, Some _5) } ] ) -# 23078 "src/ocaml/preprocess/parser_raw.ml" +# 23101 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23100,14 +23123,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3445 "src/ocaml/preprocess/parser_raw.mly" +# 3476 "src/ocaml/preprocess/parser_raw.mly" ( let a, b, c = _1 in [ { pparam_loc = make_loc _sloc; pparam_desc = Pparam_val (a, b, c) } ] ) -# 23111 "src/ocaml/preprocess/parser_raw.ml" +# 23134 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23133,18 +23156,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 23137 "src/ocaml/preprocess/parser_raw.ml" +# 23160 "src/ocaml/preprocess/parser_raw.ml" in -# 1365 "src/ocaml/preprocess/parser_raw.mly" +# 1406 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23142 "src/ocaml/preprocess/parser_raw.ml" +# 23165 "src/ocaml/preprocess/parser_raw.ml" in -# 3453 "src/ocaml/preprocess/parser_raw.mly" +# 3484 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23148 "src/ocaml/preprocess/parser_raw.ml" +# 23171 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23167,9 +23190,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2660 "src/ocaml/preprocess/parser_raw.mly" +# 2699 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23173 "src/ocaml/preprocess/parser_raw.ml" +# 23196 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23199,9 +23222,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2661 "src/ocaml/preprocess/parser_raw.mly" +# 2700 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23205 "src/ocaml/preprocess/parser_raw.ml" +# 23228 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23239,24 +23262,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2663 "src/ocaml/preprocess/parser_raw.mly" +# 2702 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_sequence(_1, _3) ) -# 23245 "src/ocaml/preprocess/parser_raw.ml" +# 23268 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 23254 "src/ocaml/preprocess/parser_raw.ml" +# 23277 "src/ocaml/preprocess/parser_raw.ml" in -# 2664 "src/ocaml/preprocess/parser_raw.mly" +# 2703 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23260 "src/ocaml/preprocess/parser_raw.ml" +# 23283 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23299,7 +23322,7 @@ module Tables = struct }; } = _menhir_stack in let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : (string Location.loc) = Obj.magic _4 in + let _4 : (string Asttypes.loc) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -23310,11 +23333,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2666 "src/ocaml/preprocess/parser_raw.mly" +# 2705 "src/ocaml/preprocess/parser_raw.mly" ( let seq = mkexp ~loc:_sloc (Pexp_sequence (_1, _5)) in let payload = PStr [mkstrexp seq []] in mkexp ~loc:_sloc (Pexp_extension (_4, payload)) ) -# 23318 "src/ocaml/preprocess/parser_raw.ml" +# 23341 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23337,9 +23360,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4459 "src/ocaml/preprocess/parser_raw.mly" +# 4478 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 23343 "src/ocaml/preprocess/parser_raw.ml" +# 23366 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23362,9 +23385,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4461 "src/ocaml/preprocess/parser_raw.mly" +# 4480 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 23368 "src/ocaml/preprocess/parser_raw.ml" +# 23391 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23395,9 +23418,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Lexing.position * Parsetree.functor_parameter) = let _startpos = _startpos__1_ in -# 1652 "src/ocaml/preprocess/parser_raw.mly" +# 1693 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Unit ) -# 23401 "src/ocaml/preprocess/parser_raw.ml" +# 23424 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23453,16 +23476,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 23459 "src/ocaml/preprocess/parser_raw.ml" +# 23482 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in -# 1655 "src/ocaml/preprocess/parser_raw.mly" +# 1696 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Named (x, mty) ) -# 23466 "src/ocaml/preprocess/parser_raw.ml" +# 23489 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23485,9 +23508,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1644 "src/ocaml/preprocess/parser_raw.mly" +# 1685 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23491 "src/ocaml/preprocess/parser_raw.ml" +# 23514 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23502,11 +23525,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4231 "src/ocaml/preprocess/parser_raw.mly" + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 4254 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],None) ) -# 23510 "src/ocaml/preprocess/parser_raw.ml" +# 23533 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23535,11 +23558,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4232 "src/ocaml/preprocess/parser_raw.mly" + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 4255 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,None) ) -# 23543 "src/ocaml/preprocess/parser_raw.ml" +# 23566 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23582,11 +23605,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4234 "src/ocaml/preprocess/parser_raw.mly" + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 4257 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,Some _4) ) -# 23590 "src/ocaml/preprocess/parser_raw.ml" +# 23613 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23638,36 +23661,35 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.constructor_arguments) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = let _1 = let xs = # 253 "" ( List.rev xs ) -# 23654 "src/ocaml/preprocess/parser_raw.ml" +# 23676 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23659 "src/ocaml/preprocess/parser_raw.ml" +# 23681 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23665 "src/ocaml/preprocess/parser_raw.ml" +# 23687 "src/ocaml/preprocess/parser_raw.ml" in -# 4237 "src/ocaml/preprocess/parser_raw.mly" +# 4260 "src/ocaml/preprocess/parser_raw.mly" ( (_2,_4,Some _6) ) -# 23671 "src/ocaml/preprocess/parser_raw.ml" +# 23693 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23696,11 +23718,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4239 "src/ocaml/preprocess/parser_raw.mly" + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 4262 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],Some _2) ) -# 23704 "src/ocaml/preprocess/parser_raw.ml" +# 23726 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23738,36 +23760,35 @@ module Tables = struct } = _menhir_stack in let _4 : (Parsetree.core_type) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = let _1 = let xs = # 253 "" ( List.rev xs ) -# 23754 "src/ocaml/preprocess/parser_raw.ml" +# 23775 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23759 "src/ocaml/preprocess/parser_raw.ml" +# 23780 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23765 "src/ocaml/preprocess/parser_raw.ml" +# 23786 "src/ocaml/preprocess/parser_raw.ml" in -# 4241 "src/ocaml/preprocess/parser_raw.mly" +# 4264 "src/ocaml/preprocess/parser_raw.mly" ( (_2,Pcstr_tuple [],Some _4) ) -# 23771 "src/ocaml/preprocess/parser_raw.ml" +# 23792 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23804,22 +23825,22 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let vars_args_res : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in + let vars_args_res : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in let _v : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = let attrs = + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = let attrs = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23823 "src/ocaml/preprocess/parser_raw.ml" +# 23844 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined2_ in @@ -23829,23 +23850,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 23835 "src/ocaml/preprocess/parser_raw.ml" +# 23856 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4170 "src/ocaml/preprocess/parser_raw.mly" +# 4201 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = vars_args_res in let info = symbol_info _endpos in let loc = make_loc _sloc in cid, vars, args, res, attrs, loc, info ) -# 23849 "src/ocaml/preprocess/parser_raw.ml" +# 23870 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23876,21 +23897,21 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let vars_args_res : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in + let vars_args_res : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in let _v : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = let attrs = + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23894 "src/ocaml/preprocess/parser_raw.ml" +# 23915 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined1_ in @@ -23899,29 +23920,29 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 23905 "src/ocaml/preprocess/parser_raw.ml" +# 23926 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_cid_ = _startpos__1_ in let _1 = -# 5108 "src/ocaml/preprocess/parser_raw.mly" +# 5123 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 23912 "src/ocaml/preprocess/parser_raw.ml" +# 23933 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos_cid_ in let _sloc = (_symbolstartpos, _endpos) in -# 4170 "src/ocaml/preprocess/parser_raw.mly" +# 4201 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = vars_args_res in let info = symbol_info _endpos in let loc = make_loc _sloc in cid, vars, args, res, attrs, loc, info ) -# 23925 "src/ocaml/preprocess/parser_raw.ml" +# 23946 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23954,9 +23975,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = jkind; - MenhirLib.EngineTypes.startp = _startpos_jkind_; - MenhirLib.EngineTypes.endp = _endpos_jkind_; + MenhirLib.EngineTypes.semv = jkind_annotation; + MenhirLib.EngineTypes.startp = _startpos_jkind_annotation_; + MenhirLib.EngineTypes.endp = _endpos_jkind_annotation_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -23994,29 +24015,29 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) = Obj.magic jkind in + let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24005 "src/ocaml/preprocess/parser_raw.ml" +# 24026 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : ((Asttypes.rec_flag * string Location.loc option) * + let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24020 "src/ocaml/preprocess/parser_raw.ml" +# 24041 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -24025,24 +24046,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 24029 "src/ocaml/preprocess/parser_raw.ml" +# 24050 "src/ocaml/preprocess/parser_raw.ml" in -# 1327 "src/ocaml/preprocess/parser_raw.mly" +# 1368 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24034 "src/ocaml/preprocess/parser_raw.ml" +# 24055 "src/ocaml/preprocess/parser_raw.ml" in -# 3994 "src/ocaml/preprocess/parser_raw.mly" +# 4025 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24040 "src/ocaml/preprocess/parser_raw.ml" +# 24061 "src/ocaml/preprocess/parser_raw.ml" in let kind_priv_manifest = -# 4029 "src/ocaml/preprocess/parser_raw.mly" +# 4060 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 24046 "src/ocaml/preprocess/parser_raw.ml" +# 24067 "src/ocaml/preprocess/parser_raw.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -24050,39 +24071,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24056 "src/ocaml/preprocess/parser_raw.ml" +# 24077 "src/ocaml/preprocess/parser_raw.ml" in let flag = -# 5128 "src/ocaml/preprocess/parser_raw.mly" +# 5143 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 24062 "src/ocaml/preprocess/parser_raw.ml" +# 24083 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24069 "src/ocaml/preprocess/parser_raw.ml" +# 24090 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3963 "src/ocaml/preprocess/parser_raw.mly" +# 3994 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in (flag, ext), - Jane_syntax.Layouts.type_declaration_of - id ~params ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:None ~jkind + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ?jkind_annotation ) -# 24086 "src/ocaml/preprocess/parser_raw.ml" +# 24107 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24115,9 +24136,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = jkind; - MenhirLib.EngineTypes.startp = _startpos_jkind_; - MenhirLib.EngineTypes.endp = _endpos_jkind_; + MenhirLib.EngineTypes.semv = jkind_annotation; + MenhirLib.EngineTypes.startp = _startpos_jkind_annotation_; + MenhirLib.EngineTypes.endp = _endpos_jkind_annotation_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined3; @@ -24161,30 +24182,30 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined4 : unit = Obj.magic _1_inlined4 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) = Obj.magic jkind in + let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined3 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24172 "src/ocaml/preprocess/parser_raw.ml" +# 24193 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined5_ in - let _v : ((Asttypes.rec_flag * string Location.loc option) * + let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined5 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24188 "src/ocaml/preprocess/parser_raw.ml" +# 24209 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined5_ in @@ -24193,24 +24214,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 24197 "src/ocaml/preprocess/parser_raw.ml" +# 24218 "src/ocaml/preprocess/parser_raw.ml" in -# 1327 "src/ocaml/preprocess/parser_raw.mly" +# 1368 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24202 "src/ocaml/preprocess/parser_raw.ml" +# 24223 "src/ocaml/preprocess/parser_raw.ml" in -# 3994 "src/ocaml/preprocess/parser_raw.mly" +# 4025 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24208 "src/ocaml/preprocess/parser_raw.ml" +# 24229 "src/ocaml/preprocess/parser_raw.ml" in let kind_priv_manifest = -# 4029 "src/ocaml/preprocess/parser_raw.mly" +# 4060 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 24214 "src/ocaml/preprocess/parser_raw.ml" +# 24235 "src/ocaml/preprocess/parser_raw.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -24218,9 +24239,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24224 "src/ocaml/preprocess/parser_raw.ml" +# 24245 "src/ocaml/preprocess/parser_raw.ml" in let flag = @@ -24229,34 +24250,34 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 5130 "src/ocaml/preprocess/parser_raw.mly" +# 5145 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 24235 "src/ocaml/preprocess/parser_raw.ml" +# 24256 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24243 "src/ocaml/preprocess/parser_raw.ml" +# 24264 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3963 "src/ocaml/preprocess/parser_raw.mly" +# 3994 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in (flag, ext), - Jane_syntax.Layouts.type_declaration_of - id ~params ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:None ~jkind + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ?jkind_annotation ) -# 24260 "src/ocaml/preprocess/parser_raw.ml" +# 24281 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24284,9 +24305,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = jkind; - MenhirLib.EngineTypes.startp = _startpos_jkind_; - MenhirLib.EngineTypes.endp = _endpos_jkind_; + MenhirLib.EngineTypes.semv = jkind_annotation; + MenhirLib.EngineTypes.startp = _startpos_jkind_annotation_; + MenhirLib.EngineTypes.endp = _endpos_jkind_annotation_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -24323,28 +24344,28 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) = Obj.magic jkind in + let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24333 "src/ocaml/preprocess/parser_raw.ml" +# 24354 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : ((Asttypes.rec_flag * string Location.loc option) * + let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24348 "src/ocaml/preprocess/parser_raw.ml" +# 24369 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -24353,18 +24374,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 24357 "src/ocaml/preprocess/parser_raw.ml" +# 24378 "src/ocaml/preprocess/parser_raw.ml" in -# 1327 "src/ocaml/preprocess/parser_raw.mly" +# 1368 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24362 "src/ocaml/preprocess/parser_raw.ml" +# 24383 "src/ocaml/preprocess/parser_raw.ml" in -# 3994 "src/ocaml/preprocess/parser_raw.mly" +# 4025 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24368 "src/ocaml/preprocess/parser_raw.ml" +# 24389 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -24373,39 +24394,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24379 "src/ocaml/preprocess/parser_raw.ml" +# 24400 "src/ocaml/preprocess/parser_raw.ml" in let flag = -# 5124 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 24385 "src/ocaml/preprocess/parser_raw.ml" +# 24406 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24392 "src/ocaml/preprocess/parser_raw.ml" +# 24413 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3963 "src/ocaml/preprocess/parser_raw.mly" +# 3994 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in (flag, ext), - Jane_syntax.Layouts.type_declaration_of - id ~params ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:None ~jkind + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ?jkind_annotation ) -# 24409 "src/ocaml/preprocess/parser_raw.ml" +# 24430 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24433,9 +24454,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = jkind; - MenhirLib.EngineTypes.startp = _startpos_jkind_; - MenhirLib.EngineTypes.endp = _endpos_jkind_; + MenhirLib.EngineTypes.semv = jkind_annotation; + MenhirLib.EngineTypes.startp = _startpos_jkind_annotation_; + MenhirLib.EngineTypes.endp = _endpos_jkind_annotation_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined3; @@ -24478,29 +24499,29 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) = Obj.magic jkind in + let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined3 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24488 "src/ocaml/preprocess/parser_raw.ml" +# 24509 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : ((Asttypes.rec_flag * string Location.loc option) * + let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24504 "src/ocaml/preprocess/parser_raw.ml" +# 24525 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -24509,18 +24530,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 24513 "src/ocaml/preprocess/parser_raw.ml" +# 24534 "src/ocaml/preprocess/parser_raw.ml" in -# 1327 "src/ocaml/preprocess/parser_raw.mly" +# 1368 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24518 "src/ocaml/preprocess/parser_raw.ml" +# 24539 "src/ocaml/preprocess/parser_raw.ml" in -# 3994 "src/ocaml/preprocess/parser_raw.mly" +# 4025 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24524 "src/ocaml/preprocess/parser_raw.ml" +# 24545 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -24529,39 +24550,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 24535 "src/ocaml/preprocess/parser_raw.ml" +# 24556 "src/ocaml/preprocess/parser_raw.ml" in let flag = -# 5125 "src/ocaml/preprocess/parser_raw.mly" +# 5140 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 24541 "src/ocaml/preprocess/parser_raw.ml" +# 24562 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24548 "src/ocaml/preprocess/parser_raw.ml" +# 24569 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3963 "src/ocaml/preprocess/parser_raw.mly" +# 3994 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in (flag, ext), - Jane_syntax.Layouts.type_declaration_of - id ~params ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:None ~jkind + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ?jkind_annotation ) -# 24565 "src/ocaml/preprocess/parser_raw.ml" +# 24586 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24580,17 +24601,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24586 "src/ocaml/preprocess/parser_raw.ml" +# 24607 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4946 "src/ocaml/preprocess/parser_raw.mly" +# 4961 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24594 "src/ocaml/preprocess/parser_raw.ml" +# 24615 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24609,17 +24630,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 24615 "src/ocaml/preprocess/parser_raw.ml" +# 24636 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4947 "src/ocaml/preprocess/parser_raw.mly" +# 4962 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24623 "src/ocaml/preprocess/parser_raw.ml" +# 24644 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24649,9 +24670,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.structure) = -# 1518 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24655 "src/ocaml/preprocess/parser_raw.ml" +# 24676 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24674,9 +24695,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.include_kind) = -# 1925 "src/ocaml/preprocess/parser_raw.mly" +# 1966 "src/ocaml/preprocess/parser_raw.mly" ( Structure ) -# 24680 "src/ocaml/preprocess/parser_raw.ml" +# 24701 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24706,9 +24727,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.include_kind) = -# 1927 "src/ocaml/preprocess/parser_raw.mly" +# 1968 "src/ocaml/preprocess/parser_raw.mly" ( Functor ) -# 24712 "src/ocaml/preprocess/parser_raw.ml" +# 24733 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24724,9 +24745,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string) = -# 5005 "src/ocaml/preprocess/parser_raw.mly" +# 5020 "src/ocaml/preprocess/parser_raw.mly" ( "" ) -# 24730 "src/ocaml/preprocess/parser_raw.ml" +# 24751 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24756,9 +24777,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5006 "src/ocaml/preprocess/parser_raw.mly" +# 5021 "src/ocaml/preprocess/parser_raw.mly" ( ";.." ) -# 24762 "src/ocaml/preprocess/parser_raw.ml" +# 24783 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24788,9 +24809,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.signature) = -# 1525 "src/ocaml/preprocess/parser_raw.mly" +# 1566 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24794 "src/ocaml/preprocess/parser_raw.ml" +# 24815 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24828,15 +24849,15 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Location.loc) = Obj.magic _2 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.extension) = -# 5321 "src/ocaml/preprocess/parser_raw.mly" +# 5336 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3) ) -# 24840 "src/ocaml/preprocess/parser_raw.ml" +# 24861 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24855,9 +24876,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1090 "src/ocaml/preprocess/parser_raw.mly" +# 1134 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 24861 "src/ocaml/preprocess/parser_raw.ml" +# 24882 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -24866,9 +24887,69 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5323 "src/ocaml/preprocess/parser_raw.mly" +# 5338 "src/ocaml/preprocess/parser_raw.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 24872 "src/ocaml/preprocess/parser_raw.ml" +# 24893 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.jkind_annotation_desc) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.jkind_annotation) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4111 "src/ocaml/preprocess/parser_raw.mly" + ( { pjkind_loc = make_loc _sloc; pjkind_desc = _1 } ) +# 24921 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.jkind_annotation) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.jkind_annotation) = +# 4115 "src/ocaml/preprocess/parser_raw.mly" + ( _2 ) +# 24953 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24898,23 +24979,23 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (string Location.loc list) = Obj.magic _3 in + let _3 : (string Asttypes.loc list) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.jkind_annotation) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.jkind_annotation) = -# 4043 "src/ocaml/preprocess/parser_raw.mly" - ( (* LIDENTs here are for modes *) + let _v : (Parsetree.jkind_annotation_desc) = +# 4074 "src/ocaml/preprocess/parser_raw.mly" + ( (* LIDENTs here are for modes *) let modes = List.map (fun {txt; loc} -> {txt = Mode txt; loc}) _3 in - Jane_syntax.Jkind.Mod (_1, modes) + Mod (_1, modes) ) -# 24918 "src/ocaml/preprocess/parser_raw.ml" +# 24999 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24950,12 +25031,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.jkind_annotation) = -# 4051 "src/ocaml/preprocess/parser_raw.mly" - ( - Jane_syntax.Jkind.With (_1, _3) + let _v : (Parsetree.jkind_annotation_desc) = +# 4082 "src/ocaml/preprocess/parser_raw.mly" + ( + With (_1, _3) ) -# 24959 "src/ocaml/preprocess/parser_raw.ml" +# 25040 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24977,23 +25058,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.jkind_annotation) = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1240 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 24988 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4054 "src/ocaml/preprocess/parser_raw.mly" - ( - let {txt; loc} = _1 in - Jane_syntax.Jkind.(Abbreviation (Const.mk txt loc)) + let _v : (Parsetree.jkind_annotation_desc) = +# 4085 "src/ocaml/preprocess/parser_raw.mly" + ( + Abbreviation _1 ) -# 24997 "src/ocaml/preprocess/parser_raw.ml" +# 25067 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25022,12 +25092,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : (Parsetree.jkind_annotation) = -# 4058 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.jkind_annotation_desc) = +# 4088 "src/ocaml/preprocess/parser_raw.mly" ( - Jane_syntax.Jkind.Kind_of ty + Kind_of ty ) -# 25031 "src/ocaml/preprocess/parser_raw.ml" +# 25101 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25049,12 +25119,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.jkind_annotation) = -# 4061 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.jkind_annotation_desc) = +# 4091 "src/ocaml/preprocess/parser_raw.mly" ( - Jane_syntax.Jkind.Default + Default ) -# 25058 "src/ocaml/preprocess/parser_raw.ml" +# 25128 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25076,12 +25146,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.jkind_annotation) = -# 4064 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.jkind_annotation_desc) = +# 4094 "src/ocaml/preprocess/parser_raw.mly" ( - Jane_syntax.Jkind.Product (List.rev _1) + Product (List.rev _1) ) -# 25085 "src/ocaml/preprocess/parser_raw.ml" +# 25155 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25112,84 +25182,17 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.jkind_annotation) = Obj.magic _2 in + let _2 : (Parsetree.jkind_annotation_desc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.jkind_annotation) = -# 4067 "src/ocaml/preprocess/parser_raw.mly" - ( + let _v : (Parsetree.jkind_annotation_desc) = +# 4097 "src/ocaml/preprocess/parser_raw.mly" + ( _2 ) -# 25126 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.jkind_annotation) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1240 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 25155 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4081 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 25161 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = -# 4085 "src/ocaml/preprocess/parser_raw.mly" - ( _2 ) -# 25193 "src/ocaml/preprocess/parser_raw.ml" +# 25196 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25225,34 +25228,34 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25234 "src/ocaml/preprocess/parser_raw.ml" +# 25237 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v : (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation) = let abbrev = + let _v : (string Asttypes.loc * Parsetree.jkind_annotation) = let abbrev = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25248 "src/ocaml/preprocess/parser_raw.ml" +# 25251 "src/ocaml/preprocess/parser_raw.ml" in -# 4089 "src/ocaml/preprocess/parser_raw.mly" +# 4119 "src/ocaml/preprocess/parser_raw.mly" ( (abbrev, jkind) ) -# 25256 "src/ocaml/preprocess/parser_raw.ml" +# 25259 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25305,45 +25308,45 @@ module Tables = struct let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25311 "src/ocaml/preprocess/parser_raw.ml" +# 25314 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in - let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in + let _1 : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in let _v : (Parsetree.label_declaration) = let attrs = let _1 = _1_inlined3 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25322 "src/ocaml/preprocess/parser_raw.ml" +# 25325 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 4403 "src/ocaml/preprocess/parser_raw.mly" +# 4423 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25331 "src/ocaml/preprocess/parser_raw.ml" +# 25334 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25339 "src/ocaml/preprocess/parser_raw.ml" +# 25342 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25347 "src/ocaml/preprocess/parser_raw.ml" +# 25350 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in @@ -25354,12 +25357,12 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in -# 4264 "src/ocaml/preprocess/parser_raw.mly" +# 4287 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs ~loc:(make_loc _sloc) ~info) -# 25363 "src/ocaml/preprocess/parser_raw.ml" +# 25366 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25426,54 +25429,54 @@ module Tables = struct let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25432 "src/ocaml/preprocess/parser_raw.ml" +# 25435 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in - let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in + let _1 : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in let _v : (Parsetree.label_declaration) = let attrs1 = let _1 = _1_inlined4 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25443 "src/ocaml/preprocess/parser_raw.ml" +# 25446 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs1_ = _endpos__1_inlined4_ in let attrs0 = let _1 = _1_inlined3 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25452 "src/ocaml/preprocess/parser_raw.ml" +# 25455 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs0_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 4403 "src/ocaml/preprocess/parser_raw.mly" +# 4423 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25461 "src/ocaml/preprocess/parser_raw.ml" +# 25464 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25469 "src/ocaml/preprocess/parser_raw.ml" +# 25472 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25477 "src/ocaml/preprocess/parser_raw.ml" +# 25480 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in @@ -25484,7 +25487,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in -# 4272 "src/ocaml/preprocess/parser_raw.mly" +# 4295 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos_attrs0_ with | Some _ as info_before_semi -> info_before_semi @@ -25493,7 +25496,7 @@ module Tables = struct let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs:(attrs0 @ attrs1) ~loc:(make_loc _sloc) ~info) -# 25497 "src/ocaml/preprocess/parser_raw.ml" +# 25500 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25516,9 +25519,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.label_declaration list) = -# 4258 "src/ocaml/preprocess/parser_raw.mly" +# 4281 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 25522 "src/ocaml/preprocess/parser_raw.ml" +# 25525 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25541,9 +25544,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.label_declaration list) = -# 4259 "src/ocaml/preprocess/parser_raw.mly" +# 4282 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 25547 "src/ocaml/preprocess/parser_raw.ml" +# 25550 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25573,9 +25576,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.label_declaration list) = -# 4260 "src/ocaml/preprocess/parser_raw.mly" +# 4283 "src/ocaml/preprocess/parser_raw.mly" ( _1 :: _2 ) -# 25579 "src/ocaml/preprocess/parser_raw.ml" +# 25582 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25594,17 +25597,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25600 "src/ocaml/preprocess/parser_raw.ml" +# 25603 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 25608 "src/ocaml/preprocess/parser_raw.ml" +# 25611 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -25612,26 +25615,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25618 "src/ocaml/preprocess/parser_raw.ml" +# 25621 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2776 "src/ocaml/preprocess/parser_raw.mly" +# 2815 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 25627 "src/ocaml/preprocess/parser_raw.ml" +# 25630 "src/ocaml/preprocess/parser_raw.ml" in -# 2757 "src/ocaml/preprocess/parser_raw.mly" +# 2796 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, None, modes ) -# 25635 "src/ocaml/preprocess/parser_raw.ml" +# 25638 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25657,9 +25660,9 @@ module Tables = struct } = _menhir_stack in let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25663 "src/ocaml/preprocess/parser_raw.ml" +# 25666 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -25667,9 +25670,9 @@ module Tables = struct let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 25673 "src/ocaml/preprocess/parser_raw.ml" +# 25676 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -25678,26 +25681,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25684 "src/ocaml/preprocess/parser_raw.ml" +# 25687 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2776 "src/ocaml/preprocess/parser_raw.mly" +# 2815 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 25693 "src/ocaml/preprocess/parser_raw.ml" +# 25696 "src/ocaml/preprocess/parser_raw.ml" in -# 2757 "src/ocaml/preprocess/parser_raw.mly" +# 2796 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, None, modes ) -# 25701 "src/ocaml/preprocess/parser_raw.ml" +# 25704 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25730,17 +25733,17 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25736 "src/ocaml/preprocess/parser_raw.ml" +# 25739 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_cty_ in let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 25744 "src/ocaml/preprocess/parser_raw.ml" +# 25747 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -25748,26 +25751,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25754 "src/ocaml/preprocess/parser_raw.ml" +# 25757 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2776 "src/ocaml/preprocess/parser_raw.mly" +# 2815 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 25763 "src/ocaml/preprocess/parser_raw.ml" +# 25766 "src/ocaml/preprocess/parser_raw.ml" in -# 2761 "src/ocaml/preprocess/parser_raw.mly" +# 2800 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 25771 "src/ocaml/preprocess/parser_raw.ml" +# 25774 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25807,9 +25810,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25813 "src/ocaml/preprocess/parser_raw.ml" +# 25816 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -25817,9 +25820,9 @@ module Tables = struct let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = let _1 = _1_inlined1 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 25823 "src/ocaml/preprocess/parser_raw.ml" +# 25826 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -25828,26 +25831,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25834 "src/ocaml/preprocess/parser_raw.ml" +# 25837 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2776 "src/ocaml/preprocess/parser_raw.mly" +# 2815 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 25843 "src/ocaml/preprocess/parser_raw.ml" +# 25846 "src/ocaml/preprocess/parser_raw.ml" in -# 2761 "src/ocaml/preprocess/parser_raw.mly" +# 2800 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 25851 "src/ocaml/preprocess/parser_raw.ml" +# 25854 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25891,21 +25894,20 @@ module Tables = struct } = _menhir_stack in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 25901 "src/ocaml/preprocess/parser_raw.ml" +# 25903 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_inner_type_ in let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 25909 "src/ocaml/preprocess/parser_raw.ml" +# 25911 "src/ocaml/preprocess/parser_raw.ml" in let cty = let _1 = @@ -25914,24 +25916,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 25918 "src/ocaml/preprocess/parser_raw.ml" +# 25920 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25923 "src/ocaml/preprocess/parser_raw.ml" +# 25925 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25929 "src/ocaml/preprocess/parser_raw.ml" +# 25931 "src/ocaml/preprocess/parser_raw.ml" in -# 2768 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 25935 "src/ocaml/preprocess/parser_raw.ml" +# 2807 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 25937 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -25939,9 +25941,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 25945 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 25947 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -25950,26 +25952,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 25956 "src/ocaml/preprocess/parser_raw.ml" +# 25958 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2776 "src/ocaml/preprocess/parser_raw.mly" +# 2815 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 25965 "src/ocaml/preprocess/parser_raw.ml" +# 25967 "src/ocaml/preprocess/parser_raw.ml" in -# 2770 "src/ocaml/preprocess/parser_raw.mly" +# 2809 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 25973 "src/ocaml/preprocess/parser_raw.ml" +# 25975 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26020,13 +26022,12 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26030 "src/ocaml/preprocess/parser_raw.ml" +# 26031 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26034,9 +26035,9 @@ module Tables = struct let _v : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = let _1 = _1_inlined1 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26040 "src/ocaml/preprocess/parser_raw.ml" +# 26041 "src/ocaml/preprocess/parser_raw.ml" in let cty = @@ -26046,24 +26047,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 26050 "src/ocaml/preprocess/parser_raw.ml" +# 26051 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26055 "src/ocaml/preprocess/parser_raw.ml" +# 26056 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26061 "src/ocaml/preprocess/parser_raw.ml" +# 26062 "src/ocaml/preprocess/parser_raw.ml" in -# 2768 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 26067 "src/ocaml/preprocess/parser_raw.ml" +# 2807 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 26068 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -26071,9 +26072,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 26077 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 26078 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -26082,26 +26083,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26088 "src/ocaml/preprocess/parser_raw.ml" +# 26089 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2776 "src/ocaml/preprocess/parser_raw.mly" +# 2815 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26097 "src/ocaml/preprocess/parser_raw.ml" +# 26098 "src/ocaml/preprocess/parser_raw.ml" in -# 2770 "src/ocaml/preprocess/parser_raw.mly" +# 2809 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in lab, pat, Some cty, modes ) -# 26105 "src/ocaml/preprocess/parser_raw.ml" +# 26106 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26124,9 +26125,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5037 "src/ocaml/preprocess/parser_raw.mly" +# 5052 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26130 "src/ocaml/preprocess/parser_raw.ml" +# 26131 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26149,9 +26150,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.arg_label * Parsetree.expression) = -# 3212 "src/ocaml/preprocess/parser_raw.mly" +# 3247 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, _1) ) -# 26155 "src/ocaml/preprocess/parser_raw.ml" +# 26156 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26177,17 +26178,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26183 "src/ocaml/preprocess/parser_raw.ml" +# 26184 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.arg_label * Parsetree.expression) = -# 3214 "src/ocaml/preprocess/parser_raw.mly" +# 3249 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, _2) ) -# 26191 "src/ocaml/preprocess/parser_raw.ml" +# 26192 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26212,9 +26213,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26218 "src/ocaml/preprocess/parser_raw.ml" +# 26219 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -26222,10 +26223,10 @@ module Tables = struct let _endpos = _endpos_label_ in let _v : (Parsetree.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3216 "src/ocaml/preprocess/parser_raw.mly" +# 3251 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Labelled label, mkexpvar ~loc label) ) -# 26229 "src/ocaml/preprocess/parser_raw.ml" +# 26230 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26270,9 +26271,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26276 "src/ocaml/preprocess/parser_raw.ml" +# 26277 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -26282,10 +26283,10 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression) = let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3219 "src/ocaml/preprocess/parser_raw.mly" +# 3254 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled label, mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c) ) -# 26289 "src/ocaml/preprocess/parser_raw.ml" +# 26290 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26310,9 +26311,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26316 "src/ocaml/preprocess/parser_raw.ml" +# 26317 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -26320,10 +26321,10 @@ module Tables = struct let _endpos = _endpos_label_ in let _v : (Parsetree.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3222 "src/ocaml/preprocess/parser_raw.mly" +# 3257 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Optional label, mkexpvar ~loc label) ) -# 26327 "src/ocaml/preprocess/parser_raw.ml" +# 26328 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26349,17 +26350,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 1061 "src/ocaml/preprocess/parser_raw.mly" +# 1105 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26355 "src/ocaml/preprocess/parser_raw.ml" +# 26356 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.arg_label * Parsetree.expression) = -# 3225 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, _2) ) -# 26363 "src/ocaml/preprocess/parser_raw.ml" +# 26364 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26412,25 +26413,25 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = let _1 = _1_inlined1 in -# 2753 "src/ocaml/preprocess/parser_raw.mly" +# 2792 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26418 "src/ocaml/preprocess/parser_raw.ml" +# 26419 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26424 "src/ocaml/preprocess/parser_raw.ml" +# 26425 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__2_ in -# 2676 "src/ocaml/preprocess/parser_raw.mly" +# 2715 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional lbl, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 26434 "src/ocaml/preprocess/parser_raw.ml" +# 26435 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26490,33 +26491,33 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = let _1 = _1_inlined2 in -# 2753 "src/ocaml/preprocess/parser_raw.mly" +# 2792 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26496 "src/ocaml/preprocess/parser_raw.ml" +# 26497 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = _1_inlined1 in let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26504 "src/ocaml/preprocess/parser_raw.ml" +# 26505 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26509 "src/ocaml/preprocess/parser_raw.ml" +# 26510 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in -# 2676 "src/ocaml/preprocess/parser_raw.mly" +# 2715 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional lbl, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 26520 "src/ocaml/preprocess/parser_raw.ml" +# 26521 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26541,9 +26542,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26547 "src/ocaml/preprocess/parser_raw.ml" +# 26548 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -26556,24 +26557,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26562 "src/ocaml/preprocess/parser_raw.ml" +# 26563 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2776 "src/ocaml/preprocess/parser_raw.mly" +# 2815 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26571 "src/ocaml/preprocess/parser_raw.ml" +# 26572 "src/ocaml/preprocess/parser_raw.ml" in -# 2682 "src/ocaml/preprocess/parser_raw.mly" +# 2721 "src/ocaml/preprocess/parser_raw.mly" ( (Optional (fst _2), None, snd _2) ) -# 26577 "src/ocaml/preprocess/parser_raw.ml" +# 26578 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26620,9 +26621,9 @@ module Tables = struct let x : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1061 "src/ocaml/preprocess/parser_raw.mly" +# 1105 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26626 "src/ocaml/preprocess/parser_raw.ml" +# 26627 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26630,25 +26631,25 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = let _1 = _1_inlined1 in -# 2753 "src/ocaml/preprocess/parser_raw.mly" +# 2792 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26636 "src/ocaml/preprocess/parser_raw.ml" +# 26637 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26642 "src/ocaml/preprocess/parser_raw.ml" +# 26643 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__2_ in -# 2684 "src/ocaml/preprocess/parser_raw.mly" +# 2723 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional _1, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 26652 "src/ocaml/preprocess/parser_raw.ml" +# 26653 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26702,9 +26703,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1061 "src/ocaml/preprocess/parser_raw.mly" +# 1105 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26708 "src/ocaml/preprocess/parser_raw.ml" +# 26709 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -26712,33 +26713,33 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = let _1 = _1_inlined2 in -# 2753 "src/ocaml/preprocess/parser_raw.mly" +# 2792 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26718 "src/ocaml/preprocess/parser_raw.ml" +# 26719 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = _1_inlined1 in let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26726 "src/ocaml/preprocess/parser_raw.ml" +# 26727 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26731 "src/ocaml/preprocess/parser_raw.ml" +# 26732 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in -# 2684 "src/ocaml/preprocess/parser_raw.mly" +# 2723 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Optional _1, _5, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 26742 "src/ocaml/preprocess/parser_raw.ml" +# 26743 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26764,17 +26765,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : ( -# 1061 "src/ocaml/preprocess/parser_raw.mly" +# 1105 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26770 "src/ocaml/preprocess/parser_raw.ml" +# 26771 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2690 "src/ocaml/preprocess/parser_raw.mly" +# 2729 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, None, _2) ) -# 26778 "src/ocaml/preprocess/parser_raw.ml" +# 26779 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26818,19 +26819,19 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 26824 "src/ocaml/preprocess/parser_raw.ml" +# 26825 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__2_ in -# 2692 "src/ocaml/preprocess/parser_raw.mly" +# 2731 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled lbl, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 26834 "src/ocaml/preprocess/parser_raw.ml" +# 26835 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26883,25 +26884,25 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = let _1 = _1_inlined1 in let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26889 "src/ocaml/preprocess/parser_raw.ml" +# 26890 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 26894 "src/ocaml/preprocess/parser_raw.ml" +# 26895 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in -# 2692 "src/ocaml/preprocess/parser_raw.mly" +# 2731 "src/ocaml/preprocess/parser_raw.mly" ( let lbl, pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled lbl, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 26905 "src/ocaml/preprocess/parser_raw.ml" +# 26906 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26926,9 +26927,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26932 "src/ocaml/preprocess/parser_raw.ml" +# 26933 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -26941,24 +26942,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 26947 "src/ocaml/preprocess/parser_raw.ml" +# 26948 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2776 "src/ocaml/preprocess/parser_raw.mly" +# 2815 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 26956 "src/ocaml/preprocess/parser_raw.ml" +# 26957 "src/ocaml/preprocess/parser_raw.ml" in -# 2698 "src/ocaml/preprocess/parser_raw.mly" +# 2737 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled (fst _2), None, snd _2) ) -# 26962 "src/ocaml/preprocess/parser_raw.ml" +# 26963 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26984,17 +26985,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 26990 "src/ocaml/preprocess/parser_raw.ml" +# 26991 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2700 "src/ocaml/preprocess/parser_raw.mly" +# 2739 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, None, _2) ) -# 26998 "src/ocaml/preprocess/parser_raw.ml" +# 26999 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27034,27 +27035,27 @@ module Tables = struct let x : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27040 "src/ocaml/preprocess/parser_raw.ml" +# 27041 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27048 "src/ocaml/preprocess/parser_raw.ml" +# 27049 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__2_ in -# 2702 "src/ocaml/preprocess/parser_raw.mly" +# 2741 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27058 "src/ocaml/preprocess/parser_raw.ml" +# 27059 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27101,9 +27102,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27107 "src/ocaml/preprocess/parser_raw.ml" +# 27108 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27111,25 +27112,25 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = let _1 = _1_inlined1 in let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27117 "src/ocaml/preprocess/parser_raw.ml" +# 27118 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27122 "src/ocaml/preprocess/parser_raw.ml" +# 27123 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in -# 2702 "src/ocaml/preprocess/parser_raw.mly" +# 2741 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27133 "src/ocaml/preprocess/parser_raw.ml" +# 27134 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27176,9 +27177,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27182 "src/ocaml/preprocess/parser_raw.ml" +# 27183 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27186,19 +27187,19 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes = let _1 = _1_inlined1 in -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27192 "src/ocaml/preprocess/parser_raw.ml" +# 27193 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes_ = _startpos__1_inlined1_ in -# 2708 "src/ocaml/preprocess/parser_raw.mly" +# 2747 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _startpos_modes_, _endpos_pat_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty:None ~modes) ) -# 27202 "src/ocaml/preprocess/parser_raw.ml" +# 27203 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27221,9 +27222,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2713 "src/ocaml/preprocess/parser_raw.mly" +# 2752 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, None, _1) ) -# 27227 "src/ocaml/preprocess/parser_raw.ml" +# 27228 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27269,20 +27270,20 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes = let _1 = _1_inlined1 in -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27275 "src/ocaml/preprocess/parser_raw.ml" +# 27276 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes_ = _startpos__1_inlined1_ in -# 2715 "src/ocaml/preprocess/parser_raw.mly" +# 2754 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in let loc = _startpos_modes_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes) ) -# 27286 "src/ocaml/preprocess/parser_raw.ml" +# 27287 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27319,19 +27320,19 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 27325 "src/ocaml/preprocess/parser_raw.ml" +# 27326 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _endpos__1_ in -# 2721 "src/ocaml/preprocess/parser_raw.mly" +# 2760 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27335 "src/ocaml/preprocess/parser_raw.ml" +# 27336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27377,25 +27378,25 @@ module Tables = struct let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = let modes0 = let _1 = _1_inlined1 in let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27383 "src/ocaml/preprocess/parser_raw.ml" +# 27384 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 27388 "src/ocaml/preprocess/parser_raw.ml" +# 27389 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes0_ = _startpos__1_inlined1_ in -# 2721 "src/ocaml/preprocess/parser_raw.mly" +# 2760 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty, modes = x in let loc = _startpos_modes0_, _endpos_x_ in (Nolabel, None, mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) ) -# 27399 "src/ocaml/preprocess/parser_raw.ml" +# 27400 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27458,13 +27459,12 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let pat : (Parsetree.pattern) = Obj.magic pat in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) # 27470 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in @@ -27482,20 +27482,20 @@ module Tables = struct # 27483 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) # 27488 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 27494 "src/ocaml/preprocess/parser_raw.ml" in -# 2816 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) +# 2855 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) # 27500 "src/ocaml/preprocess/parser_raw.ml" in @@ -27504,13 +27504,13 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) # 27510 "src/ocaml/preprocess/parser_raw.ml" in -# 2817 "src/ocaml/preprocess/parser_raw.mly" +# 2856 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) # 27516 "src/ocaml/preprocess/parser_raw.ml" @@ -27518,7 +27518,7 @@ module Tables = struct let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in let _loc_x_ = (_startpos_x_, _endpos_x_) in -# 2727 "src/ocaml/preprocess/parser_raw.mly" +# 2766 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in (Labelled _1, None, mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) @@ -27592,16 +27592,15 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let pat : (Parsetree.pattern) = Obj.magic pat in let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27605 "src/ocaml/preprocess/parser_raw.ml" +# 27604 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -27614,24 +27613,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 27618 "src/ocaml/preprocess/parser_raw.ml" +# 27617 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27623 "src/ocaml/preprocess/parser_raw.ml" +# 27622 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27629 "src/ocaml/preprocess/parser_raw.ml" +# 27628 "src/ocaml/preprocess/parser_raw.ml" in -# 2816 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 27635 "src/ocaml/preprocess/parser_raw.ml" +# 2855 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 27634 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -27639,35 +27638,35 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 27645 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 27644 "src/ocaml/preprocess/parser_raw.ml" in -# 2817 "src/ocaml/preprocess/parser_raw.mly" +# 2856 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 27651 "src/ocaml/preprocess/parser_raw.ml" +# 27650 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x_ = _endpos_inner_type_ in let modes = let _1 = _1_inlined1 in -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27660 "src/ocaml/preprocess/parser_raw.ml" +# 27659 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_modes_ = _startpos__1_inlined1_ in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2771 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in let loc = _startpos_modes_, _endpos_x_ in (Labelled _1, None, mkpat_with_modes ~loc ~pat ~cty ~modes) ) -# 27671 "src/ocaml/preprocess/parser_raw.ml" +# 27670 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27724,8 +27723,7 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _1 : unit = Obj.magic _1 in @@ -27740,24 +27738,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 27744 "src/ocaml/preprocess/parser_raw.ml" +# 27742 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27749 "src/ocaml/preprocess/parser_raw.ml" +# 27747 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27755 "src/ocaml/preprocess/parser_raw.ml" +# 27753 "src/ocaml/preprocess/parser_raw.ml" in -# 2816 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 27761 "src/ocaml/preprocess/parser_raw.ml" +# 2855 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 27759 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -27765,26 +27763,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 27771 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 27769 "src/ocaml/preprocess/parser_raw.ml" in -# 2817 "src/ocaml/preprocess/parser_raw.mly" +# 2856 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 27777 "src/ocaml/preprocess/parser_raw.ml" +# 27775 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in let _loc_x_ = (_startpos_x_, _endpos_x_) in -# 2738 "src/ocaml/preprocess/parser_raw.mly" +# 2777 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in (Nolabel, None, mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) ) -# 27788 "src/ocaml/preprocess/parser_raw.ml" +# 27786 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27823,15 +27821,15 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 27829 "src/ocaml/preprocess/parser_raw.ml" +# 27827 "src/ocaml/preprocess/parser_raw.ml" in -# 3709 "src/ocaml/preprocess/parser_raw.mly" +# 3740 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 27835 "src/ocaml/preprocess/parser_raw.ml" +# 27833 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27869,9 +27867,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27875 "src/ocaml/preprocess/parser_raw.ml" +# 27873 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in @@ -27881,15 +27879,15 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 27887 "src/ocaml/preprocess/parser_raw.ml" +# 27885 "src/ocaml/preprocess/parser_raw.ml" in -# 3709 "src/ocaml/preprocess/parser_raw.mly" +# 3740 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 27893 "src/ocaml/preprocess/parser_raw.ml" +# 27891 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27926,9 +27924,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 27932 "src/ocaml/preprocess/parser_raw.ml" +# 27930 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -27939,16 +27937,16 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 27946 "src/ocaml/preprocess/parser_raw.ml" +# 27944 "src/ocaml/preprocess/parser_raw.ml" in -# 3709 "src/ocaml/preprocess/parser_raw.mly" +# 3740 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 27952 "src/ocaml/preprocess/parser_raw.ml" +# 27950 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28012,9 +28010,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28018 "src/ocaml/preprocess/parser_raw.ml" +# 28016 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -28028,18 +28026,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 28037 "src/ocaml/preprocess/parser_raw.ml" +# 28035 "src/ocaml/preprocess/parser_raw.ml" in -# 3709 "src/ocaml/preprocess/parser_raw.mly" +# 3740 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 28043 "src/ocaml/preprocess/parser_raw.ml" +# 28041 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28078,20 +28076,20 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28084 "src/ocaml/preprocess/parser_raw.ml" +# 28082 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28090 "src/ocaml/preprocess/parser_raw.ml" +# 28088 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28095 "src/ocaml/preprocess/parser_raw.ml" +# 28093 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28129,9 +28127,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28135 "src/ocaml/preprocess/parser_raw.ml" +# 28133 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in @@ -28141,20 +28139,20 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28147 "src/ocaml/preprocess/parser_raw.ml" +# 28145 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28153 "src/ocaml/preprocess/parser_raw.ml" +# 28151 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28158 "src/ocaml/preprocess/parser_raw.ml" +# 28156 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28191,9 +28189,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28197 "src/ocaml/preprocess/parser_raw.ml" +# 28195 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -28204,21 +28202,21 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28211 "src/ocaml/preprocess/parser_raw.ml" +# 28209 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28217 "src/ocaml/preprocess/parser_raw.ml" +# 28215 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28222 "src/ocaml/preprocess/parser_raw.ml" +# 28220 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28282,9 +28280,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28288 "src/ocaml/preprocess/parser_raw.ml" +# 28286 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -28298,23 +28296,23 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 28307 "src/ocaml/preprocess/parser_raw.ml" +# 28305 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28313 "src/ocaml/preprocess/parser_raw.ml" +# 28311 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28318 "src/ocaml/preprocess/parser_raw.ml" +# 28316 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28354,9 +28352,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28360 "src/ocaml/preprocess/parser_raw.ml" +# 28358 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -28364,23 +28362,23 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28370 "src/ocaml/preprocess/parser_raw.ml" +# 28368 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28378 "src/ocaml/preprocess/parser_raw.ml" +# 28376 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28384 "src/ocaml/preprocess/parser_raw.ml" +# 28382 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28424,16 +28422,16 @@ module Tables = struct } = _menhir_stack in let _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28430 "src/ocaml/preprocess/parser_raw.ml" +# 28428 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28437 "src/ocaml/preprocess/parser_raw.ml" +# 28435 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -28441,23 +28439,23 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28447 "src/ocaml/preprocess/parser_raw.ml" +# 28445 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28455 "src/ocaml/preprocess/parser_raw.ml" +# 28453 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28461 "src/ocaml/preprocess/parser_raw.ml" +# 28459 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28500,17 +28498,17 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28506 "src/ocaml/preprocess/parser_raw.ml" +# 28504 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28514 "src/ocaml/preprocess/parser_raw.ml" +# 28512 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -28518,24 +28516,24 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28525 "src/ocaml/preprocess/parser_raw.ml" +# 28523 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28533 "src/ocaml/preprocess/parser_raw.ml" +# 28531 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28539 "src/ocaml/preprocess/parser_raw.ml" +# 28537 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28605,18 +28603,18 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28611 "src/ocaml/preprocess/parser_raw.ml" +# 28609 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28620 "src/ocaml/preprocess/parser_raw.ml" +# 28618 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -28626,26 +28624,26 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 28635 "src/ocaml/preprocess/parser_raw.ml" +# 28633 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28643 "src/ocaml/preprocess/parser_raw.ml" +# 28641 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28649 "src/ocaml/preprocess/parser_raw.ml" +# 28647 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28684,9 +28682,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.pattern) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28690 "src/ocaml/preprocess/parser_raw.ml" +# 28688 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -28695,24 +28693,24 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 28701 "src/ocaml/preprocess/parser_raw.ml" +# 28699 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28710 "src/ocaml/preprocess/parser_raw.ml" +# 28708 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28716 "src/ocaml/preprocess/parser_raw.ml" +# 28714 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28756,15 +28754,15 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28762 "src/ocaml/preprocess/parser_raw.ml" +# 28760 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28768 "src/ocaml/preprocess/parser_raw.ml" +# 28766 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -28773,24 +28771,24 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 28779 "src/ocaml/preprocess/parser_raw.ml" +# 28777 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28788 "src/ocaml/preprocess/parser_raw.ml" +# 28786 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28794 "src/ocaml/preprocess/parser_raw.ml" +# 28792 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28833,16 +28831,16 @@ module Tables = struct }; } = _menhir_stack in let label_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28839 "src/ocaml/preprocess/parser_raw.ml" +# 28837 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28846 "src/ocaml/preprocess/parser_raw.ml" +# 28844 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -28852,25 +28850,25 @@ module Tables = struct let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28859 "src/ocaml/preprocess/parser_raw.ml" +# 28857 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28868 "src/ocaml/preprocess/parser_raw.ml" +# 28866 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28874 "src/ocaml/preprocess/parser_raw.ml" +# 28872 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28940,17 +28938,17 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28946 "src/ocaml/preprocess/parser_raw.ml" +# 28944 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 28954 "src/ocaml/preprocess/parser_raw.ml" +# 28952 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -28961,27 +28959,27 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 28970 "src/ocaml/preprocess/parser_raw.ml" +# 28968 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 28979 "src/ocaml/preprocess/parser_raw.ml" +# 28977 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 28985 "src/ocaml/preprocess/parser_raw.ml" +# 28983 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29047,9 +29045,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29053 "src/ocaml/preprocess/parser_raw.ml" +# 29051 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -29059,9 +29057,9 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29065 "src/ocaml/preprocess/parser_raw.ml" +# 29063 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29069,18 +29067,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29078 "src/ocaml/preprocess/parser_raw.ml" +# 29076 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29084 "src/ocaml/preprocess/parser_raw.ml" +# 29082 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29148,18 +29146,18 @@ module Tables = struct } = _menhir_stack in let _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29154 "src/ocaml/preprocess/parser_raw.ml" +# 29152 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29163 "src/ocaml/preprocess/parser_raw.ml" +# 29161 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -29169,9 +29167,9 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29175 "src/ocaml/preprocess/parser_raw.ml" +# 29173 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29179,18 +29177,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29188 "src/ocaml/preprocess/parser_raw.ml" +# 29186 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29194 "src/ocaml/preprocess/parser_raw.ml" +# 29192 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29257,9 +29255,9 @@ module Tables = struct }; } = _menhir_stack in let label_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29263 "src/ocaml/preprocess/parser_raw.ml" +# 29261 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29267,9 +29265,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29273 "src/ocaml/preprocess/parser_raw.ml" +# 29271 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -29280,10 +29278,10 @@ module Tables = struct let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29287 "src/ocaml/preprocess/parser_raw.ml" +# 29285 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29291,18 +29289,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29300 "src/ocaml/preprocess/parser_raw.ml" +# 29298 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29306 "src/ocaml/preprocess/parser_raw.ml" +# 29304 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29396,9 +29394,9 @@ module Tables = struct let cty_inlined1 : (Parsetree.core_type) = Obj.magic cty_inlined1 in let _4_inlined1 : unit = Obj.magic _4_inlined1 in let label_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29402 "src/ocaml/preprocess/parser_raw.ml" +# 29400 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29407,9 +29405,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29413 "src/ocaml/preprocess/parser_raw.ml" +# 29411 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -29421,12 +29419,12 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29430 "src/ocaml/preprocess/parser_raw.ml" +# 29428 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -29434,18 +29432,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29443 "src/ocaml/preprocess/parser_raw.ml" +# 29441 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29449 "src/ocaml/preprocess/parser_raw.ml" +# 29447 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29484,15 +29482,15 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29490 "src/ocaml/preprocess/parser_raw.ml" +# 29488 "src/ocaml/preprocess/parser_raw.ml" in -# 3709 "src/ocaml/preprocess/parser_raw.mly" +# 3740 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29496 "src/ocaml/preprocess/parser_raw.ml" +# 29494 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29530,9 +29528,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29536 "src/ocaml/preprocess/parser_raw.ml" +# 29534 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in @@ -29542,15 +29540,15 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29548 "src/ocaml/preprocess/parser_raw.ml" +# 29546 "src/ocaml/preprocess/parser_raw.ml" in -# 3709 "src/ocaml/preprocess/parser_raw.mly" +# 3740 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29554 "src/ocaml/preprocess/parser_raw.ml" +# 29552 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29587,9 +29585,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29593 "src/ocaml/preprocess/parser_raw.ml" +# 29591 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29600,16 +29598,16 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29607 "src/ocaml/preprocess/parser_raw.ml" +# 29605 "src/ocaml/preprocess/parser_raw.ml" in -# 3709 "src/ocaml/preprocess/parser_raw.mly" +# 3740 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29613 "src/ocaml/preprocess/parser_raw.ml" +# 29611 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29673,9 +29671,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29679 "src/ocaml/preprocess/parser_raw.ml" +# 29677 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29689,18 +29687,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29698 "src/ocaml/preprocess/parser_raw.ml" +# 29696 "src/ocaml/preprocess/parser_raw.ml" in -# 3709 "src/ocaml/preprocess/parser_raw.mly" +# 3740 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 29704 "src/ocaml/preprocess/parser_raw.ml" +# 29702 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29739,20 +29737,20 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29745 "src/ocaml/preprocess/parser_raw.ml" +# 29743 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29751 "src/ocaml/preprocess/parser_raw.ml" +# 29749 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29756 "src/ocaml/preprocess/parser_raw.ml" +# 29754 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29790,9 +29788,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29796 "src/ocaml/preprocess/parser_raw.ml" +# 29794 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in @@ -29802,20 +29800,20 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 29808 "src/ocaml/preprocess/parser_raw.ml" +# 29806 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29814 "src/ocaml/preprocess/parser_raw.ml" +# 29812 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29819 "src/ocaml/preprocess/parser_raw.ml" +# 29817 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29852,9 +29850,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29858 "src/ocaml/preprocess/parser_raw.ml" +# 29856 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -29865,21 +29863,21 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 29872 "src/ocaml/preprocess/parser_raw.ml" +# 29870 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29878 "src/ocaml/preprocess/parser_raw.ml" +# 29876 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29883 "src/ocaml/preprocess/parser_raw.ml" +# 29881 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29943,9 +29941,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29949 "src/ocaml/preprocess/parser_raw.ml" +# 29947 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -29959,23 +29957,23 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 29968 "src/ocaml/preprocess/parser_raw.ml" +# 29966 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 29974 "src/ocaml/preprocess/parser_raw.ml" +# 29972 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 29979 "src/ocaml/preprocess/parser_raw.ml" +# 29977 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30015,9 +30013,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30021 "src/ocaml/preprocess/parser_raw.ml" +# 30019 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30025,23 +30023,23 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30031 "src/ocaml/preprocess/parser_raw.ml" +# 30029 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30039 "src/ocaml/preprocess/parser_raw.ml" +# 30037 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30045 "src/ocaml/preprocess/parser_raw.ml" +# 30043 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30085,16 +30083,16 @@ module Tables = struct } = _menhir_stack in let _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30091 "src/ocaml/preprocess/parser_raw.ml" +# 30089 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30098 "src/ocaml/preprocess/parser_raw.ml" +# 30096 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30102,23 +30100,23 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30108 "src/ocaml/preprocess/parser_raw.ml" +# 30106 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30116 "src/ocaml/preprocess/parser_raw.ml" +# 30114 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30122 "src/ocaml/preprocess/parser_raw.ml" +# 30120 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30161,17 +30159,17 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30167 "src/ocaml/preprocess/parser_raw.ml" +# 30165 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30175 "src/ocaml/preprocess/parser_raw.ml" +# 30173 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30179,24 +30177,24 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30186 "src/ocaml/preprocess/parser_raw.ml" +# 30184 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30194 "src/ocaml/preprocess/parser_raw.ml" +# 30192 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30200 "src/ocaml/preprocess/parser_raw.ml" +# 30198 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30266,18 +30264,18 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30272 "src/ocaml/preprocess/parser_raw.ml" +# 30270 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30281 "src/ocaml/preprocess/parser_raw.ml" +# 30279 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30287,26 +30285,26 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30296 "src/ocaml/preprocess/parser_raw.ml" +# 30294 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30304 "src/ocaml/preprocess/parser_raw.ml" +# 30302 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30310 "src/ocaml/preprocess/parser_raw.ml" +# 30308 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30345,9 +30343,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.pattern) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30351 "src/ocaml/preprocess/parser_raw.ml" +# 30349 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -30356,24 +30354,24 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30362 "src/ocaml/preprocess/parser_raw.ml" +# 30360 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30371 "src/ocaml/preprocess/parser_raw.ml" +# 30369 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30377 "src/ocaml/preprocess/parser_raw.ml" +# 30375 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30417,15 +30415,15 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30423 "src/ocaml/preprocess/parser_raw.ml" +# 30421 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30429 "src/ocaml/preprocess/parser_raw.ml" +# 30427 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -30434,24 +30432,24 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30440 "src/ocaml/preprocess/parser_raw.ml" +# 30438 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30449 "src/ocaml/preprocess/parser_raw.ml" +# 30447 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30455 "src/ocaml/preprocess/parser_raw.ml" +# 30453 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30494,16 +30492,16 @@ module Tables = struct }; } = _menhir_stack in let label_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30500 "src/ocaml/preprocess/parser_raw.ml" +# 30498 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30507 "src/ocaml/preprocess/parser_raw.ml" +# 30505 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -30513,25 +30511,25 @@ module Tables = struct let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30520 "src/ocaml/preprocess/parser_raw.ml" +# 30518 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30529 "src/ocaml/preprocess/parser_raw.ml" +# 30527 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30535 "src/ocaml/preprocess/parser_raw.ml" +# 30533 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30601,17 +30599,17 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30607 "src/ocaml/preprocess/parser_raw.ml" +# 30605 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30615 "src/ocaml/preprocess/parser_raw.ml" +# 30613 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -30622,27 +30620,27 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30631 "src/ocaml/preprocess/parser_raw.ml" +# 30629 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30640 "src/ocaml/preprocess/parser_raw.ml" +# 30638 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30646 "src/ocaml/preprocess/parser_raw.ml" +# 30644 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30708,9 +30706,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30714 "src/ocaml/preprocess/parser_raw.ml" +# 30712 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -30720,9 +30718,9 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let _1 = _1_inlined1 in -# 3681 "src/ocaml/preprocess/parser_raw.mly" +# 3712 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 30726 "src/ocaml/preprocess/parser_raw.ml" +# 30724 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -30730,18 +30728,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30739 "src/ocaml/preprocess/parser_raw.ml" +# 30737 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30745 "src/ocaml/preprocess/parser_raw.ml" +# 30743 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30809,18 +30807,18 @@ module Tables = struct } = _menhir_stack in let _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30815 "src/ocaml/preprocess/parser_raw.ml" +# 30813 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30824 "src/ocaml/preprocess/parser_raw.ml" +# 30822 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -30830,9 +30828,9 @@ module Tables = struct let _v : ((string option * Parsetree.pattern) list) = let _3 = let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 3683 "src/ocaml/preprocess/parser_raw.mly" +# 3714 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 30836 "src/ocaml/preprocess/parser_raw.ml" +# 30834 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -30840,18 +30838,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30849 "src/ocaml/preprocess/parser_raw.ml" +# 30847 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30855 "src/ocaml/preprocess/parser_raw.ml" +# 30853 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30918,9 +30916,9 @@ module Tables = struct }; } = _menhir_stack in let label_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30924 "src/ocaml/preprocess/parser_raw.ml" +# 30922 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -30928,9 +30926,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30934 "src/ocaml/preprocess/parser_raw.ml" +# 30932 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -30941,10 +30939,10 @@ module Tables = struct let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3685 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 30948 "src/ocaml/preprocess/parser_raw.ml" +# 30946 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -30952,18 +30950,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 30961 "src/ocaml/preprocess/parser_raw.ml" +# 30959 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 30967 "src/ocaml/preprocess/parser_raw.ml" +# 30965 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31057,9 +31055,9 @@ module Tables = struct let cty_inlined1 : (Parsetree.core_type) = Obj.magic cty_inlined1 in let _4_inlined1 : unit = Obj.magic _4_inlined1 in let label_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31063 "src/ocaml/preprocess/parser_raw.ml" +# 31061 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -31068,9 +31066,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 31074 "src/ocaml/preprocess/parser_raw.ml" +# 31072 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -31082,12 +31080,12 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3688 "src/ocaml/preprocess/parser_raw.mly" +# 3719 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31091 "src/ocaml/preprocess/parser_raw.ml" +# 31089 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31095,18 +31093,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 31104 "src/ocaml/preprocess/parser_raw.ml" +# 31102 "src/ocaml/preprocess/parser_raw.ml" in -# 3711 "src/ocaml/preprocess/parser_raw.mly" +# 3742 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 31110 "src/ocaml/preprocess/parser_raw.ml" +# 31108 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31131,9 +31129,9 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes * bool) = -# 3310 "src/ocaml/preprocess/parser_raw.mly" +# 3341 "src/ocaml/preprocess/parser_raw.mly" ( let p,e,c,modes = _1 in (p,e,c,modes,false) ) -# 31137 "src/ocaml/preprocess/parser_raw.ml" +# 31135 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31160,9 +31158,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 3313 "src/ocaml/preprocess/parser_raw.mly" +# 3344 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1, None, [], true) ) -# 31166 "src/ocaml/preprocess/parser_raw.ml" +# 31164 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31195,9 +31193,9 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let _2 = let _1 = _1_inlined1 in -# 3391 "src/ocaml/preprocess/parser_raw.mly" +# 3422 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 31201 "src/ocaml/preprocess/parser_raw.ml" +# 31199 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -31205,15 +31203,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31211 "src/ocaml/preprocess/parser_raw.ml" +# 31209 "src/ocaml/preprocess/parser_raw.ml" in -# 3242 "src/ocaml/preprocess/parser_raw.mly" +# 3277 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _2, None, []) ) -# 31217 "src/ocaml/preprocess/parser_raw.ml" +# 31215 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31261,21 +31259,21 @@ module Tables = struct let _1 = _1_inlined1 in let _1 = let _2 = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31267 "src/ocaml/preprocess/parser_raw.ml" +# 31265 "src/ocaml/preprocess/parser_raw.ml" in -# 3585 "src/ocaml/preprocess/parser_raw.mly" +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31272 "src/ocaml/preprocess/parser_raw.ml" +# 31270 "src/ocaml/preprocess/parser_raw.ml" in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3621 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 31279 "src/ocaml/preprocess/parser_raw.ml" +# 31277 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -31283,18 +31281,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31289 "src/ocaml/preprocess/parser_raw.ml" +# 31287 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31295 "src/ocaml/preprocess/parser_raw.ml" +# 31293 "src/ocaml/preprocess/parser_raw.ml" in -# 3246 "src/ocaml/preprocess/parser_raw.mly" +# 3281 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31307,7 +31305,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31311 "src/ocaml/preprocess/parser_raw.ml" +# 31309 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31364,22 +31362,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 31370 "src/ocaml/preprocess/parser_raw.ml" +# 31368 "src/ocaml/preprocess/parser_raw.ml" in -# 3585 "src/ocaml/preprocess/parser_raw.mly" +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31376 "src/ocaml/preprocess/parser_raw.ml" +# 31374 "src/ocaml/preprocess/parser_raw.ml" in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3621 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 31383 "src/ocaml/preprocess/parser_raw.ml" +# 31381 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -31387,18 +31385,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31393 "src/ocaml/preprocess/parser_raw.ml" +# 31391 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31399 "src/ocaml/preprocess/parser_raw.ml" +# 31397 "src/ocaml/preprocess/parser_raw.ml" in -# 3246 "src/ocaml/preprocess/parser_raw.mly" +# 3281 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31411,7 +31409,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31415 "src/ocaml/preprocess/parser_raw.ml" +# 31413 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31458,9 +31456,9 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let _3 = let _1 = _1_inlined1 in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3624 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31464 "src/ocaml/preprocess/parser_raw.ml" +# 31462 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -31468,18 +31466,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31474 "src/ocaml/preprocess/parser_raw.ml" +# 31472 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31480 "src/ocaml/preprocess/parser_raw.ml" +# 31478 "src/ocaml/preprocess/parser_raw.ml" in -# 3246 "src/ocaml/preprocess/parser_raw.mly" +# 3281 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31492,7 +31490,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31496 "src/ocaml/preprocess/parser_raw.ml" +# 31494 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31547,21 +31545,21 @@ module Tables = struct let _1 = _1_inlined2 in let _1 = let _2 = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31553 "src/ocaml/preprocess/parser_raw.ml" +# 31551 "src/ocaml/preprocess/parser_raw.ml" in -# 3585 "src/ocaml/preprocess/parser_raw.mly" +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31558 "src/ocaml/preprocess/parser_raw.ml" +# 31556 "src/ocaml/preprocess/parser_raw.ml" in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3621 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 31565 "src/ocaml/preprocess/parser_raw.ml" +# 31563 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -31570,25 +31568,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31576 "src/ocaml/preprocess/parser_raw.ml" +# 31574 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31583 "src/ocaml/preprocess/parser_raw.ml" +# 31581 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 31588 "src/ocaml/preprocess/parser_raw.ml" +# 31586 "src/ocaml/preprocess/parser_raw.ml" in -# 3246 "src/ocaml/preprocess/parser_raw.mly" +# 3281 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31601,7 +31599,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31605 "src/ocaml/preprocess/parser_raw.ml" +# 31603 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31665,22 +31663,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 31671 "src/ocaml/preprocess/parser_raw.ml" +# 31669 "src/ocaml/preprocess/parser_raw.ml" in -# 3585 "src/ocaml/preprocess/parser_raw.mly" +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31677 "src/ocaml/preprocess/parser_raw.ml" +# 31675 "src/ocaml/preprocess/parser_raw.ml" in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3621 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 31684 "src/ocaml/preprocess/parser_raw.ml" +# 31682 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -31689,25 +31687,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31695 "src/ocaml/preprocess/parser_raw.ml" +# 31693 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31702 "src/ocaml/preprocess/parser_raw.ml" +# 31700 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 31707 "src/ocaml/preprocess/parser_raw.ml" +# 31705 "src/ocaml/preprocess/parser_raw.ml" in -# 3246 "src/ocaml/preprocess/parser_raw.mly" +# 3281 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31720,7 +31718,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31724 "src/ocaml/preprocess/parser_raw.ml" +# 31722 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31774,9 +31772,9 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let _3 = let _1 = _1_inlined2 in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3624 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 31780 "src/ocaml/preprocess/parser_raw.ml" +# 31778 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -31785,25 +31783,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31791 "src/ocaml/preprocess/parser_raw.ml" +# 31789 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31798 "src/ocaml/preprocess/parser_raw.ml" +# 31796 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 31803 "src/ocaml/preprocess/parser_raw.ml" +# 31801 "src/ocaml/preprocess/parser_raw.ml" in -# 3246 "src/ocaml/preprocess/parser_raw.mly" +# 3281 "src/ocaml/preprocess/parser_raw.mly" ( let v = _2 in (* PR#7344 *) let typ, modes1 = _3 in let t = @@ -31816,7 +31814,7 @@ module Tables = struct let modes = modes0 @ modes1 in (v, _5, t, modes) ) -# 31820 "src/ocaml/preprocess/parser_raw.ml" +# 31818 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31874,8 +31872,7 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -31883,9 +31880,9 @@ module Tables = struct let _endpos = _endpos__7_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes) = let modes1 = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31889 "src/ocaml/preprocess/parser_raw.ml" +# 31886 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let _3 = _3_inlined1 in @@ -31894,24 +31891,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 31898 "src/ocaml/preprocess/parser_raw.ml" +# 31895 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31903 "src/ocaml/preprocess/parser_raw.ml" +# 31900 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31909 "src/ocaml/preprocess/parser_raw.ml" +# 31906 "src/ocaml/preprocess/parser_raw.ml" in -# 4387 "src/ocaml/preprocess/parser_raw.mly" +# 4408 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 31915 "src/ocaml/preprocess/parser_raw.ml" +# 31912 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -31920,30 +31917,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 31926 "src/ocaml/preprocess/parser_raw.ml" +# 31923 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 31932 "src/ocaml/preprocess/parser_raw.ml" +# 31929 "src/ocaml/preprocess/parser_raw.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in -# 3259 "src/ocaml/preprocess/parser_raw.mly" +# 3294 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in - let ltyp = Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } in - let typ_loc = Location.ghostify (make_loc _loc__4_) in - let typ = - Jane_syntax.Layouts.type_of ~loc:typ_loc ltyp - in + let ltyp = Ptyp_poly (bound_vars, inner_type) in + let typ = ghtyp ~loc:_loc__4_ ltyp in let modes = modes0 @ modes1 in (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 31947 "src/ocaml/preprocess/parser_raw.ml" +# 31941 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32008,8 +32002,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32019,9 +32012,9 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let modes1 = let _1 = _1_inlined1 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32025 "src/ocaml/preprocess/parser_raw.ml" +# 32018 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -32031,24 +32024,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 32035 "src/ocaml/preprocess/parser_raw.ml" +# 32028 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32040 "src/ocaml/preprocess/parser_raw.ml" +# 32033 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32046 "src/ocaml/preprocess/parser_raw.ml" +# 32039 "src/ocaml/preprocess/parser_raw.ml" in -# 4387 "src/ocaml/preprocess/parser_raw.mly" +# 4408 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 32052 "src/ocaml/preprocess/parser_raw.ml" +# 32045 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -32057,30 +32050,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32063 "src/ocaml/preprocess/parser_raw.ml" +# 32056 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32069 "src/ocaml/preprocess/parser_raw.ml" +# 32062 "src/ocaml/preprocess/parser_raw.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in -# 3259 "src/ocaml/preprocess/parser_raw.mly" +# 3294 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in - let ltyp = Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } in - let typ_loc = Location.ghostify (make_loc _loc__4_) in - let typ = - Jane_syntax.Layouts.type_of ~loc:typ_loc ltyp - in + let ltyp = Ptyp_poly (bound_vars, inner_type) in + let typ = ghtyp ~loc:_loc__4_ ltyp in let modes = modes0 @ modes1 in (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32084 "src/ocaml/preprocess/parser_raw.ml" +# 32074 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32144,8 +32134,7 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in @@ -32154,9 +32143,9 @@ module Tables = struct let _endpos = _endpos__7_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes) = let modes1 = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32160 "src/ocaml/preprocess/parser_raw.ml" +# 32149 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let _3 = _3_inlined1 in @@ -32165,24 +32154,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 32169 "src/ocaml/preprocess/parser_raw.ml" +# 32158 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32174 "src/ocaml/preprocess/parser_raw.ml" +# 32163 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32180 "src/ocaml/preprocess/parser_raw.ml" +# 32169 "src/ocaml/preprocess/parser_raw.ml" in -# 4387 "src/ocaml/preprocess/parser_raw.mly" +# 4408 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 32186 "src/ocaml/preprocess/parser_raw.ml" +# 32175 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -32192,37 +32181,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32198 "src/ocaml/preprocess/parser_raw.ml" +# 32187 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32205 "src/ocaml/preprocess/parser_raw.ml" +# 32194 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32210 "src/ocaml/preprocess/parser_raw.ml" +# 32199 "src/ocaml/preprocess/parser_raw.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in -# 3259 "src/ocaml/preprocess/parser_raw.mly" +# 3294 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in - let ltyp = Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } in - let typ_loc = Location.ghostify (make_loc _loc__4_) in - let typ = - Jane_syntax.Layouts.type_of ~loc:typ_loc ltyp - in + let ltyp = Ptyp_poly (bound_vars, inner_type) in + let typ = ghtyp ~loc:_loc__4_ ltyp in let modes = modes0 @ modes1 in (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32226 "src/ocaml/preprocess/parser_raw.ml" +# 32212 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32293,8 +32279,7 @@ module Tables = struct let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in @@ -32305,9 +32290,9 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let modes1 = let _1 = _1_inlined2 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32311 "src/ocaml/preprocess/parser_raw.ml" +# 32296 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -32317,24 +32302,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 32321 "src/ocaml/preprocess/parser_raw.ml" +# 32306 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32326 "src/ocaml/preprocess/parser_raw.ml" +# 32311 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32332 "src/ocaml/preprocess/parser_raw.ml" +# 32317 "src/ocaml/preprocess/parser_raw.ml" in -# 4387 "src/ocaml/preprocess/parser_raw.mly" +# 4408 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 32338 "src/ocaml/preprocess/parser_raw.ml" +# 32323 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -32344,37 +32329,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32350 "src/ocaml/preprocess/parser_raw.ml" +# 32335 "src/ocaml/preprocess/parser_raw.ml" in let modes0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32357 "src/ocaml/preprocess/parser_raw.ml" +# 32342 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32362 "src/ocaml/preprocess/parser_raw.ml" +# 32347 "src/ocaml/preprocess/parser_raw.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in -# 3259 "src/ocaml/preprocess/parser_raw.mly" +# 3294 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _4 in - let ltyp = Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } in - let typ_loc = Location.ghostify (make_loc _loc__4_) in - let typ = - Jane_syntax.Layouts.type_of ~loc:typ_loc ltyp - in + let ltyp = Ptyp_poly (bound_vars, inner_type) in + let typ = ghtyp ~loc:_loc__4_ ltyp in let modes = modes0 @ modes1 in (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) ) -# 32378 "src/ocaml/preprocess/parser_raw.ml" +# 32360 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32438,7 +32420,7 @@ module Tables = struct let _8 : unit = Obj.magic _8 in let _6 : (Parsetree.core_type) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in - let _4 : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = Obj.magic _4 in + let _4 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (string) = Obj.magic _1 in @@ -32447,18 +32429,18 @@ module Tables = struct let _endpos = _endpos__9_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes) = let modes = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32453 "src/ocaml/preprocess/parser_raw.ml" +# 32435 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32462 "src/ocaml/preprocess/parser_raw.ml" +# 32444 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__9_ in @@ -32466,14 +32448,14 @@ module Tables = struct let _loc__6_ = (_startpos__6_, _endpos__6_) in let _sloc = (_symbolstartpos, _endpos) in -# 3286 "src/ocaml/preprocess/parser_raw.mly" +# 3317 "src/ocaml/preprocess/parser_raw.mly" ( let exp, poly = wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc__6_ _4 _6 _9 in let loc = (_startpos__1_, _endpos__6_) in (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) ) -# 32477 "src/ocaml/preprocess/parser_raw.ml" +# 32459 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32544,7 +32526,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _6 : (Parsetree.core_type) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in - let _4 : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = Obj.magic _4 in + let _4 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (string) = Obj.magic _1 in @@ -32555,9 +32537,9 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let modes = let _1 = _1_inlined1 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32561 "src/ocaml/preprocess/parser_raw.ml" +# 32543 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -32565,9 +32547,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32571 "src/ocaml/preprocess/parser_raw.ml" +# 32553 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__9_ in @@ -32575,14 +32557,14 @@ module Tables = struct let _loc__6_ = (_startpos__6_, _endpos__6_) in let _sloc = (_symbolstartpos, _endpos) in -# 3286 "src/ocaml/preprocess/parser_raw.mly" +# 3317 "src/ocaml/preprocess/parser_raw.mly" ( let exp, poly = wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc__6_ _4 _6 _9 in let loc = (_startpos__1_, _endpos__6_) in (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) ) -# 32586 "src/ocaml/preprocess/parser_raw.ml" +# 32568 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32620,9 +32602,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes) = -# 3293 "src/ocaml/preprocess/parser_raw.mly" +# 3324 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3, None, []) ) -# 32626 "src/ocaml/preprocess/parser_raw.ml" +# 32608 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32669,18 +32651,18 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes) = let _2 = let _1 = _1_inlined1 in -# 3235 "src/ocaml/preprocess/parser_raw.mly" +# 3270 "src/ocaml/preprocess/parser_raw.mly" (None, _1) -# 32675 "src/ocaml/preprocess/parser_raw.ml" +# 32657 "src/ocaml/preprocess/parser_raw.ml" in -# 3295 "src/ocaml/preprocess/parser_raw.mly" +# 3326 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 32684 "src/ocaml/preprocess/parser_raw.ml" +# 32666 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32733,25 +32715,25 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes) = let _2 = let _3 = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 32739 "src/ocaml/preprocess/parser_raw.ml" +# 32721 "src/ocaml/preprocess/parser_raw.ml" in -# 3236 "src/ocaml/preprocess/parser_raw.mly" +# 3271 "src/ocaml/preprocess/parser_raw.mly" ( Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 ) -# 32746 "src/ocaml/preprocess/parser_raw.ml" +# 32728 "src/ocaml/preprocess/parser_raw.ml" in -# 3295 "src/ocaml/preprocess/parser_raw.mly" +# 3326 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 32755 "src/ocaml/preprocess/parser_raw.ml" +# 32737 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32814,26 +32796,26 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 32820 "src/ocaml/preprocess/parser_raw.ml" +# 32802 "src/ocaml/preprocess/parser_raw.ml" in -# 3236 "src/ocaml/preprocess/parser_raw.mly" +# 3271 "src/ocaml/preprocess/parser_raw.mly" ( Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 ) -# 32828 "src/ocaml/preprocess/parser_raw.ml" +# 32810 "src/ocaml/preprocess/parser_raw.ml" in -# 3295 "src/ocaml/preprocess/parser_raw.mly" +# 3326 "src/ocaml/preprocess/parser_raw.mly" ( let pvc, modes = _2 in (_1, _4, pvc, modes) ) -# 32837 "src/ocaml/preprocess/parser_raw.ml" +# 32819 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32876,22 +32858,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32882 "src/ocaml/preprocess/parser_raw.ml" +# 32864 "src/ocaml/preprocess/parser_raw.ml" in let modes = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32888 "src/ocaml/preprocess/parser_raw.ml" +# 32870 "src/ocaml/preprocess/parser_raw.ml" in -# 3300 "src/ocaml/preprocess/parser_raw.mly" +# 3331 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3 modes, None, modes) ) -# 32895 "src/ocaml/preprocess/parser_raw.ml" +# 32877 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32948,17 +32930,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 32954 "src/ocaml/preprocess/parser_raw.ml" +# 32936 "src/ocaml/preprocess/parser_raw.ml" in -# 3304 "src/ocaml/preprocess/parser_raw.mly" +# 3335 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _5 modes, None, modes) ) -# 32962 "src/ocaml/preprocess/parser_raw.ml" +# 32944 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33011,7 +32993,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -33020,36 +33002,36 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33026 "src/ocaml/preprocess/parser_raw.ml" +# 33008 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33035 "src/ocaml/preprocess/parser_raw.ml" +# 33017 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3333 "src/ocaml/preprocess/parser_raw.mly" +# 3364 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33047 "src/ocaml/preprocess/parser_raw.ml" +# 33029 "src/ocaml/preprocess/parser_raw.ml" in -# 3323 "src/ocaml/preprocess/parser_raw.mly" +# 3354 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33053 "src/ocaml/preprocess/parser_raw.ml" +# 33035 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33079,9 +33061,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parser_types.let_bindings) = -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 3355 "src/ocaml/preprocess/parser_raw.mly" ( addlb _1 _2 ) -# 33085 "src/ocaml/preprocess/parser_raw.ml" +# 33067 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33136,41 +33118,41 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33142 "src/ocaml/preprocess/parser_raw.ml" +# 33124 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33151 "src/ocaml/preprocess/parser_raw.ml" +# 33133 "src/ocaml/preprocess/parser_raw.ml" in let ext = -# 5307 "src/ocaml/preprocess/parser_raw.mly" +# 5322 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 33157 "src/ocaml/preprocess/parser_raw.ml" +# 33139 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3333 "src/ocaml/preprocess/parser_raw.mly" +# 3364 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33168 "src/ocaml/preprocess/parser_raw.ml" +# 33150 "src/ocaml/preprocess/parser_raw.ml" in -# 3323 "src/ocaml/preprocess/parser_raw.mly" +# 3354 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33174 "src/ocaml/preprocess/parser_raw.ml" +# 33156 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33229,7 +33211,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _2 : (string Location.loc) = Obj.magic _2 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -33239,18 +33221,18 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33245 "src/ocaml/preprocess/parser_raw.ml" +# 33227 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let attrs1 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33254 "src/ocaml/preprocess/parser_raw.ml" +# 33236 "src/ocaml/preprocess/parser_raw.ml" in let ext = @@ -33259,27 +33241,27 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 5309 "src/ocaml/preprocess/parser_raw.mly" +# 5324 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "extension"; None ) -# 33265 "src/ocaml/preprocess/parser_raw.ml" +# 33247 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3333 "src/ocaml/preprocess/parser_raw.mly" +# 3364 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 33277 "src/ocaml/preprocess/parser_raw.ml" +# 33259 "src/ocaml/preprocess/parser_raw.ml" in -# 3323 "src/ocaml/preprocess/parser_raw.mly" +# 3354 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33283 "src/ocaml/preprocess/parser_raw.ml" +# 33265 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33309,9 +33291,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parser_types.let_bindings) = -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 3355 "src/ocaml/preprocess/parser_raw.mly" ( addlb _1 _2 ) -# 33315 "src/ocaml/preprocess/parser_raw.ml" +# 33297 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33334,19 +33316,19 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_pat_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33340 "src/ocaml/preprocess/parser_raw.ml" +# 33322 "src/ocaml/preprocess/parser_raw.ml" in let x = -# 2807 "src/ocaml/preprocess/parser_raw.mly" +# 2846 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 33345 "src/ocaml/preprocess/parser_raw.ml" +# 33327 "src/ocaml/preprocess/parser_raw.ml" in -# 2780 "src/ocaml/preprocess/parser_raw.mly" +# 2819 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33350 "src/ocaml/preprocess/parser_raw.ml" +# 33332 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33376,19 +33358,19 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33382 "src/ocaml/preprocess/parser_raw.ml" +# 33364 "src/ocaml/preprocess/parser_raw.ml" in let x = -# 2807 "src/ocaml/preprocess/parser_raw.mly" +# 2846 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 33387 "src/ocaml/preprocess/parser_raw.ml" +# 33369 "src/ocaml/preprocess/parser_raw.ml" in -# 2780 "src/ocaml/preprocess/parser_raw.mly" +# 2819 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33392 "src/ocaml/preprocess/parser_raw.ml" +# 33374 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33425,19 +33407,19 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_cty_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33431 "src/ocaml/preprocess/parser_raw.ml" +# 33413 "src/ocaml/preprocess/parser_raw.ml" in let x = -# 2801 "src/ocaml/preprocess/parser_raw.mly" +# 2840 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33436 "src/ocaml/preprocess/parser_raw.ml" +# 33418 "src/ocaml/preprocess/parser_raw.ml" in -# 2782 "src/ocaml/preprocess/parser_raw.mly" +# 2821 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33441 "src/ocaml/preprocess/parser_raw.ml" +# 33423 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33481,19 +33463,19 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33487 "src/ocaml/preprocess/parser_raw.ml" +# 33469 "src/ocaml/preprocess/parser_raw.ml" in let x = -# 2801 "src/ocaml/preprocess/parser_raw.mly" +# 2840 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33492 "src/ocaml/preprocess/parser_raw.ml" +# 33474 "src/ocaml/preprocess/parser_raw.ml" in -# 2782 "src/ocaml/preprocess/parser_raw.mly" +# 2821 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33497 "src/ocaml/preprocess/parser_raw.ml" +# 33479 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33537,17 +33519,16 @@ module Tables = struct } = _menhir_stack in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos_inner_type_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 33551 "src/ocaml/preprocess/parser_raw.ml" +# 33532 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -33558,24 +33539,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 33562 "src/ocaml/preprocess/parser_raw.ml" +# 33543 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33567 "src/ocaml/preprocess/parser_raw.ml" +# 33548 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33573 "src/ocaml/preprocess/parser_raw.ml" +# 33554 "src/ocaml/preprocess/parser_raw.ml" in -# 2816 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 33579 "src/ocaml/preprocess/parser_raw.ml" +# 2855 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 33560 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -33583,27 +33564,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 33589 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 33570 "src/ocaml/preprocess/parser_raw.ml" in -# 2817 "src/ocaml/preprocess/parser_raw.mly" +# 2856 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33595 "src/ocaml/preprocess/parser_raw.ml" +# 33576 "src/ocaml/preprocess/parser_raw.ml" in -# 2803 "src/ocaml/preprocess/parser_raw.mly" +# 2842 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33601 "src/ocaml/preprocess/parser_raw.ml" +# 33582 "src/ocaml/preprocess/parser_raw.ml" in -# 2782 "src/ocaml/preprocess/parser_raw.mly" +# 2821 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33607 "src/ocaml/preprocess/parser_raw.ml" +# 33588 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33654,17 +33635,16 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_pat_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let modes = -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 33668 "src/ocaml/preprocess/parser_raw.ml" +# 33648 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -33675,24 +33655,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 33679 "src/ocaml/preprocess/parser_raw.ml" +# 33659 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33684 "src/ocaml/preprocess/parser_raw.ml" +# 33664 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33690 "src/ocaml/preprocess/parser_raw.ml" +# 33670 "src/ocaml/preprocess/parser_raw.ml" in -# 2816 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 33696 "src/ocaml/preprocess/parser_raw.ml" +# 2855 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 33676 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -33700,27 +33680,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 33706 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 33686 "src/ocaml/preprocess/parser_raw.ml" in -# 2817 "src/ocaml/preprocess/parser_raw.mly" +# 2856 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33712 "src/ocaml/preprocess/parser_raw.ml" +# 33692 "src/ocaml/preprocess/parser_raw.ml" in -# 2803 "src/ocaml/preprocess/parser_raw.mly" +# 2842 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33718 "src/ocaml/preprocess/parser_raw.ml" +# 33698 "src/ocaml/preprocess/parser_raw.ml" in -# 2782 "src/ocaml/preprocess/parser_raw.mly" +# 2821 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33724 "src/ocaml/preprocess/parser_raw.ml" +# 33704 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33757,9 +33737,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = -# 2783 "src/ocaml/preprocess/parser_raw.mly" +# 2822 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 33763 "src/ocaml/preprocess/parser_raw.ml" +# 33743 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33782,14 +33762,14 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_pat_ in let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = -# 2807 "src/ocaml/preprocess/parser_raw.mly" +# 2846 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 33788 "src/ocaml/preprocess/parser_raw.ml" +# 33768 "src/ocaml/preprocess/parser_raw.ml" in -# 2795 "src/ocaml/preprocess/parser_raw.mly" +# 2834 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 33793 "src/ocaml/preprocess/parser_raw.ml" +# 33773 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33826,14 +33806,14 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_cty_ in let _v : (Parsetree.pattern * Parsetree.core_type option) = let x = -# 2801 "src/ocaml/preprocess/parser_raw.mly" +# 2840 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33832 "src/ocaml/preprocess/parser_raw.ml" +# 33812 "src/ocaml/preprocess/parser_raw.ml" in -# 2796 "src/ocaml/preprocess/parser_raw.mly" +# 2835 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 33837 "src/ocaml/preprocess/parser_raw.ml" +# 33817 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33877,8 +33857,7 @@ module Tables = struct } = _menhir_stack in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -33893,24 +33872,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 33897 "src/ocaml/preprocess/parser_raw.ml" +# 33876 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33902 "src/ocaml/preprocess/parser_raw.ml" +# 33881 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33908 "src/ocaml/preprocess/parser_raw.ml" +# 33887 "src/ocaml/preprocess/parser_raw.ml" in -# 2816 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 33914 "src/ocaml/preprocess/parser_raw.ml" +# 2855 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 33893 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -33918,27 +33897,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 33924 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 33903 "src/ocaml/preprocess/parser_raw.ml" in -# 2817 "src/ocaml/preprocess/parser_raw.mly" +# 2856 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 33930 "src/ocaml/preprocess/parser_raw.ml" +# 33909 "src/ocaml/preprocess/parser_raw.ml" in -# 2803 "src/ocaml/preprocess/parser_raw.mly" +# 2842 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33936 "src/ocaml/preprocess/parser_raw.ml" +# 33915 "src/ocaml/preprocess/parser_raw.ml" in -# 2796 "src/ocaml/preprocess/parser_raw.mly" +# 2835 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 33942 "src/ocaml/preprocess/parser_raw.ml" +# 33921 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33968,14 +33947,14 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_modes_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = -# 2807 "src/ocaml/preprocess/parser_raw.mly" +# 2846 "src/ocaml/preprocess/parser_raw.mly" ( pat, None ) -# 33974 "src/ocaml/preprocess/parser_raw.ml" +# 33953 "src/ocaml/preprocess/parser_raw.ml" in -# 2788 "src/ocaml/preprocess/parser_raw.mly" +# 2827 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 33979 "src/ocaml/preprocess/parser_raw.ml" +# 33958 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34019,14 +33998,14 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_modes_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = let x = -# 2801 "src/ocaml/preprocess/parser_raw.mly" +# 2840 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34025 "src/ocaml/preprocess/parser_raw.ml" +# 34004 "src/ocaml/preprocess/parser_raw.ml" in -# 2790 "src/ocaml/preprocess/parser_raw.mly" +# 2829 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34030 "src/ocaml/preprocess/parser_raw.ml" +# 34009 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34077,8 +34056,7 @@ module Tables = struct let modes : (Parsetree.modes) = Obj.magic modes in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -34093,24 +34071,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 34097 "src/ocaml/preprocess/parser_raw.ml" +# 34075 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34102 "src/ocaml/preprocess/parser_raw.ml" +# 34080 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34108 "src/ocaml/preprocess/parser_raw.ml" +# 34086 "src/ocaml/preprocess/parser_raw.ml" in -# 2816 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 34114 "src/ocaml/preprocess/parser_raw.ml" +# 2855 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 34092 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in @@ -34118,27 +34096,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 34124 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 34102 "src/ocaml/preprocess/parser_raw.ml" in -# 2817 "src/ocaml/preprocess/parser_raw.mly" +# 2856 "src/ocaml/preprocess/parser_raw.mly" ( pat, Some cty ) -# 34130 "src/ocaml/preprocess/parser_raw.ml" +# 34108 "src/ocaml/preprocess/parser_raw.ml" in -# 2803 "src/ocaml/preprocess/parser_raw.mly" +# 2842 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34136 "src/ocaml/preprocess/parser_raw.ml" +# 34114 "src/ocaml/preprocess/parser_raw.ml" in -# 2790 "src/ocaml/preprocess/parser_raw.mly" +# 2829 "src/ocaml/preprocess/parser_raw.mly" ( let pat, cty = x in pat, cty, modes ) -# 34142 "src/ocaml/preprocess/parser_raw.ml" +# 34120 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34175,9 +34153,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = -# 2791 "src/ocaml/preprocess/parser_raw.mly" +# 2830 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 34181 "src/ocaml/preprocess/parser_raw.ml" +# 34159 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34209,9 +34187,9 @@ module Tables = struct let _v : (Parsetree.pattern * Parsetree.expression) = let exp = let _1 = _1_inlined1 in -# 3391 "src/ocaml/preprocess/parser_raw.mly" +# 3422 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 34215 "src/ocaml/preprocess/parser_raw.ml" +# 34193 "src/ocaml/preprocess/parser_raw.ml" in let pat = @@ -34219,15 +34197,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3232 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 34225 "src/ocaml/preprocess/parser_raw.ml" +# 34203 "src/ocaml/preprocess/parser_raw.ml" in -# 3350 "src/ocaml/preprocess/parser_raw.mly" +# 3381 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 34231 "src/ocaml/preprocess/parser_raw.ml" +# 34209 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34253,9 +34231,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 3353 "src/ocaml/preprocess/parser_raw.mly" +# 3384 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1) ) -# 34259 "src/ocaml/preprocess/parser_raw.ml" +# 34237 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34306,10 +34284,10 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_exp_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 3356 "src/ocaml/preprocess/parser_raw.mly" +# 3387 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos_pat_, _endpos_typ_) in (ghpat_with_modes ~loc ~pat ~cty:(Some typ) ~modes:[], exp) ) -# 34313 "src/ocaml/preprocess/parser_raw.ml" +# 34291 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34346,9 +34324,9 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_exp_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 3359 "src/ocaml/preprocess/parser_raw.mly" +# 3390 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 34352 "src/ocaml/preprocess/parser_raw.ml" +# 34330 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34371,10 +34349,10 @@ module Tables = struct let _startpos = _startpos_body_ in let _endpos = _endpos_body_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = -# 3363 "src/ocaml/preprocess/parser_raw.mly" +# 3394 "src/ocaml/preprocess/parser_raw.mly" ( let let_pat, let_exp = body in let_pat, let_exp, [] ) -# 34378 "src/ocaml/preprocess/parser_raw.ml" +# 34356 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34406,9 +34384,9 @@ module Tables = struct } = _menhir_stack in let body : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in let _1 : ( -# 1020 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34412 "src/ocaml/preprocess/parser_raw.ml" +# 34390 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -34419,22 +34397,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 34425 "src/ocaml/preprocess/parser_raw.ml" +# 34403 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_body_ in let _symbolstartpos = _startpos_bindings_ in let _sloc = (_symbolstartpos, _endpos) in -# 3366 "src/ocaml/preprocess/parser_raw.mly" +# 3397 "src/ocaml/preprocess/parser_raw.mly" ( let let_pat, let_exp, rev_ands = bindings in let pbop_pat, pbop_exp = body in let pbop_loc = make_loc _sloc in let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in let_pat, let_exp, and_ :: rev_ands ) -# 34438 "src/ocaml/preprocess/parser_raw.ml" +# 34416 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34452,7 +34430,7 @@ module Tables = struct let _v : (Parsetree.class_expr Parsetree.class_infos list) = # 211 "" ( [] ) -# 34456 "src/ocaml/preprocess/parser_raw.ml" +# 34434 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34516,9 +34494,9 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let body : (Parsetree.class_expr) = Obj.magic body in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34522 "src/ocaml/preprocess/parser_raw.ml" +# 34500 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -34531,9 +34509,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34537 "src/ocaml/preprocess/parser_raw.ml" +# 34515 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -34543,24 +34521,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 34549 "src/ocaml/preprocess/parser_raw.ml" +# 34527 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34557 "src/ocaml/preprocess/parser_raw.ml" +# 34535 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2285 "src/ocaml/preprocess/parser_raw.mly" +# 2324 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -34568,13 +34546,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs ) -# 34572 "src/ocaml/preprocess/parser_raw.ml" +# 34550 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 34578 "src/ocaml/preprocess/parser_raw.ml" +# 34556 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34592,7 +34570,7 @@ module Tables = struct let _v : (Parsetree.class_type Parsetree.class_infos list) = # 211 "" ( [] ) -# 34596 "src/ocaml/preprocess/parser_raw.ml" +# 34574 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34663,9 +34641,9 @@ module Tables = struct let cty : (Parsetree.class_type) = Obj.magic cty in let _6 : unit = Obj.magic _6 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34669 "src/ocaml/preprocess/parser_raw.ml" +# 34647 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -34678,9 +34656,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34684 "src/ocaml/preprocess/parser_raw.ml" +# 34662 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -34690,24 +34668,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 34696 "src/ocaml/preprocess/parser_raw.ml" +# 34674 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34704 "src/ocaml/preprocess/parser_raw.ml" +# 34682 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2583 "src/ocaml/preprocess/parser_raw.mly" +# 2622 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -34715,13 +34693,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs ) -# 34719 "src/ocaml/preprocess/parser_raw.ml" +# 34697 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 34725 "src/ocaml/preprocess/parser_raw.ml" +# 34703 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34739,7 +34717,7 @@ module Tables = struct let _v : (Parsetree.class_type Parsetree.class_infos list) = # 211 "" ( [] ) -# 34743 "src/ocaml/preprocess/parser_raw.ml" +# 34721 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34810,9 +34788,9 @@ module Tables = struct let csig : (Parsetree.class_type) = Obj.magic csig in let _6 : unit = Obj.magic _6 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34816 "src/ocaml/preprocess/parser_raw.ml" +# 34794 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -34825,9 +34803,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34831 "src/ocaml/preprocess/parser_raw.ml" +# 34809 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -34837,24 +34815,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 34843 "src/ocaml/preprocess/parser_raw.ml" +# 34821 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34851 "src/ocaml/preprocess/parser_raw.ml" +# 34829 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2622 "src/ocaml/preprocess/parser_raw.mly" +# 2661 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -34862,13 +34840,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs ) -# 34866 "src/ocaml/preprocess/parser_raw.ml" +# 34844 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 34872 "src/ocaml/preprocess/parser_raw.ml" +# 34850 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34886,7 +34864,7 @@ module Tables = struct let _v : (Parsetree.module_binding list) = # 211 "" ( [] ) -# 34890 "src/ocaml/preprocess/parser_raw.ml" +# 34868 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34947,9 +34925,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34953 "src/ocaml/preprocess/parser_raw.ml" +# 34931 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -34959,24 +34937,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 34965 "src/ocaml/preprocess/parser_raw.ml" +# 34943 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34973 "src/ocaml/preprocess/parser_raw.ml" +# 34951 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1910 "src/ocaml/preprocess/parser_raw.mly" +# 1951 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in @@ -34984,13 +34962,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Mb.mk name body ~attrs ~loc ~text ~docs ) -# 34988 "src/ocaml/preprocess/parser_raw.ml" +# 34966 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 34994 "src/ocaml/preprocess/parser_raw.ml" +# 34972 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35008,7 +34986,7 @@ module Tables = struct let _v : (Parsetree.module_declaration list) = # 211 "" ( [] ) -# 35012 "src/ocaml/preprocess/parser_raw.ml" +# 34990 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35076,9 +35054,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35082 "src/ocaml/preprocess/parser_raw.ml" +# 35060 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35088,24 +35066,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35094 "src/ocaml/preprocess/parser_raw.ml" +# 35072 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35102 "src/ocaml/preprocess/parser_raw.ml" +# 35080 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2226 "src/ocaml/preprocess/parser_raw.mly" +# 2265 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let docs = symbol_docs _sloc in @@ -35113,13 +35091,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Md.mk name mty ~attrs ~loc ~text ~docs ) -# 35117 "src/ocaml/preprocess/parser_raw.ml" +# 35095 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35123 "src/ocaml/preprocess/parser_raw.ml" +# 35101 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35137,7 +35115,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 211 "" ( [] ) -# 35141 "src/ocaml/preprocess/parser_raw.ml" +# 35119 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35169,7 +35147,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 213 "" ( x :: xs ) -# 35173 "src/ocaml/preprocess/parser_raw.ml" +# 35151 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35187,7 +35165,7 @@ module Tables = struct let _v : (Parsetree.type_declaration list) = # 211 "" ( [] ) -# 35191 "src/ocaml/preprocess/parser_raw.ml" +# 35169 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35220,9 +35198,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = jkind; - MenhirLib.EngineTypes.startp = _startpos_jkind_; - MenhirLib.EngineTypes.endp = _endpos_jkind_; + MenhirLib.EngineTypes.semv = jkind_annotation; + MenhirLib.EngineTypes.startp = _startpos_jkind_annotation_; + MenhirLib.EngineTypes.endp = _endpos_jkind_annotation_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -35255,13 +35233,13 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.type_declaration list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs_inlined1 in + let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) = Obj.magic jkind in + let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35265 "src/ocaml/preprocess/parser_raw.ml" +# 35243 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -35274,9 +35252,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35280 "src/ocaml/preprocess/parser_raw.ml" +# 35258 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35285,18 +35263,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 35289 "src/ocaml/preprocess/parser_raw.ml" +# 35267 "src/ocaml/preprocess/parser_raw.ml" in -# 1327 "src/ocaml/preprocess/parser_raw.mly" +# 1368 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35294 "src/ocaml/preprocess/parser_raw.ml" +# 35272 "src/ocaml/preprocess/parser_raw.ml" in -# 3994 "src/ocaml/preprocess/parser_raw.mly" +# 4025 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35300 "src/ocaml/preprocess/parser_raw.ml" +# 35278 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -35305,40 +35283,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35311 "src/ocaml/preprocess/parser_raw.ml" +# 35289 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35319 "src/ocaml/preprocess/parser_raw.ml" +# 35297 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3982 "src/ocaml/preprocess/parser_raw.mly" +# 4013 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let text = symbol_text _symbolstartpos in - Jane_syntax.Layouts.type_declaration_of - id ~params ~jkind ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:(Some text) + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + ?jkind_annotation ) -# 35336 "src/ocaml/preprocess/parser_raw.ml" +# 35314 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35342 "src/ocaml/preprocess/parser_raw.ml" +# 35320 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35356,7 +35334,7 @@ module Tables = struct let _v : (Parsetree.type_declaration list) = # 211 "" ( [] ) -# 35360 "src/ocaml/preprocess/parser_raw.ml" +# 35338 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35394,9 +35372,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = jkind; - MenhirLib.EngineTypes.startp = _startpos_jkind_; - MenhirLib.EngineTypes.endp = _endpos_jkind_; + MenhirLib.EngineTypes.semv = jkind_annotation; + MenhirLib.EngineTypes.startp = _startpos_jkind_annotation_; + MenhirLib.EngineTypes.endp = _endpos_jkind_annotation_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -35430,14 +35408,14 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.type_declaration list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs_inlined1 in + let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) = Obj.magic jkind in + let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35441 "src/ocaml/preprocess/parser_raw.ml" +# 35419 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -35450,9 +35428,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35456 "src/ocaml/preprocess/parser_raw.ml" +# 35434 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -35461,24 +35439,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 35465 "src/ocaml/preprocess/parser_raw.ml" +# 35443 "src/ocaml/preprocess/parser_raw.ml" in -# 1327 "src/ocaml/preprocess/parser_raw.mly" +# 1368 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35470 "src/ocaml/preprocess/parser_raw.ml" +# 35448 "src/ocaml/preprocess/parser_raw.ml" in -# 3994 "src/ocaml/preprocess/parser_raw.mly" +# 4025 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35476 "src/ocaml/preprocess/parser_raw.ml" +# 35454 "src/ocaml/preprocess/parser_raw.ml" in let kind_priv_manifest = -# 4029 "src/ocaml/preprocess/parser_raw.mly" +# 4060 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 35482 "src/ocaml/preprocess/parser_raw.ml" +# 35460 "src/ocaml/preprocess/parser_raw.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -35486,40 +35464,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 35492 "src/ocaml/preprocess/parser_raw.ml" +# 35470 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35500 "src/ocaml/preprocess/parser_raw.ml" +# 35478 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3982 "src/ocaml/preprocess/parser_raw.mly" +# 4013 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let text = symbol_text _symbolstartpos in - Jane_syntax.Layouts.type_declaration_of - id ~params ~jkind ~cstrs ~kind ~priv ~manifest ~attrs ~loc ~docs ~text:(Some text) + Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + ?jkind_annotation ) -# 35517 "src/ocaml/preprocess/parser_raw.ml" +# 35495 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35523 "src/ocaml/preprocess/parser_raw.ml" +# 35501 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35537,7 +35515,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 211 "" ( [] ) -# 35541 "src/ocaml/preprocess/parser_raw.ml" +# 35519 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35569,7 +35547,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 213 "" ( x :: xs ) -# 35573 "src/ocaml/preprocess/parser_raw.ml" +# 35551 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35587,7 +35565,7 @@ module Tables = struct let _v : (Parsetree.signature_item list list) = # 211 "" ( [] ) -# 35591 "src/ocaml/preprocess/parser_raw.ml" +# 35569 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35620,21 +35598,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 1250 "src/ocaml/preprocess/parser_raw.mly" +# 1294 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos ) -# 35626 "src/ocaml/preprocess/parser_raw.ml" +# 35604 "src/ocaml/preprocess/parser_raw.ml" in -# 2069 "src/ocaml/preprocess/parser_raw.mly" +# 2111 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35632 "src/ocaml/preprocess/parser_raw.ml" +# 35610 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35638 "src/ocaml/preprocess/parser_raw.ml" +# 35616 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35667,21 +35645,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 1248 "src/ocaml/preprocess/parser_raw.mly" +# 1292 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos @ [_1] ) -# 35673 "src/ocaml/preprocess/parser_raw.ml" +# 35651 "src/ocaml/preprocess/parser_raw.ml" in -# 2069 "src/ocaml/preprocess/parser_raw.mly" +# 2111 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35679 "src/ocaml/preprocess/parser_raw.ml" +# 35657 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35685 "src/ocaml/preprocess/parser_raw.ml" +# 35663 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35699,7 +35677,7 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = # 211 "" ( [] ) -# 35703 "src/ocaml/preprocess/parser_raw.ml" +# 35681 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35732,40 +35710,40 @@ module Tables = struct let _1 = let ys = let items = -# 1313 "src/ocaml/preprocess/parser_raw.mly" +# 1354 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 35738 "src/ocaml/preprocess/parser_raw.ml" +# 35716 "src/ocaml/preprocess/parser_raw.ml" in -# 1778 "src/ocaml/preprocess/parser_raw.mly" +# 1824 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 35743 "src/ocaml/preprocess/parser_raw.ml" +# 35721 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _startpos = _startpos__1_ in -# 1246 "src/ocaml/preprocess/parser_raw.mly" +# 1290 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 35751 "src/ocaml/preprocess/parser_raw.ml" +# 35729 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 35757 "src/ocaml/preprocess/parser_raw.ml" +# 35735 "src/ocaml/preprocess/parser_raw.ml" in -# 1794 "src/ocaml/preprocess/parser_raw.mly" +# 1840 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35763 "src/ocaml/preprocess/parser_raw.ml" +# 35741 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35769 "src/ocaml/preprocess/parser_raw.ml" +# 35747 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35817,70 +35795,70 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35823 "src/ocaml/preprocess/parser_raw.ml" +# 35801 "src/ocaml/preprocess/parser_raw.ml" in -# 1785 "src/ocaml/preprocess/parser_raw.mly" +# 1831 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 35828 "src/ocaml/preprocess/parser_raw.ml" +# 35806 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1244 "src/ocaml/preprocess/parser_raw.mly" +# 1288 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 35836 "src/ocaml/preprocess/parser_raw.ml" +# 35814 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1263 "src/ocaml/preprocess/parser_raw.mly" +# 1307 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 35846 "src/ocaml/preprocess/parser_raw.ml" +# 35824 "src/ocaml/preprocess/parser_raw.ml" in -# 1315 "src/ocaml/preprocess/parser_raw.mly" +# 1356 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 35852 "src/ocaml/preprocess/parser_raw.ml" +# 35830 "src/ocaml/preprocess/parser_raw.ml" in -# 1778 "src/ocaml/preprocess/parser_raw.mly" +# 1824 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 35858 "src/ocaml/preprocess/parser_raw.ml" +# 35836 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _startpos = _startpos__1_ in -# 1246 "src/ocaml/preprocess/parser_raw.mly" +# 1290 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 35866 "src/ocaml/preprocess/parser_raw.ml" +# 35844 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 35872 "src/ocaml/preprocess/parser_raw.ml" +# 35850 "src/ocaml/preprocess/parser_raw.ml" in -# 1794 "src/ocaml/preprocess/parser_raw.mly" +# 1840 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35878 "src/ocaml/preprocess/parser_raw.ml" +# 35856 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35884 "src/ocaml/preprocess/parser_raw.ml" +# 35862 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35913,21 +35891,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 1244 "src/ocaml/preprocess/parser_raw.mly" +# 1288 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 35919 "src/ocaml/preprocess/parser_raw.ml" +# 35897 "src/ocaml/preprocess/parser_raw.ml" in -# 1794 "src/ocaml/preprocess/parser_raw.mly" +# 1840 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35925 "src/ocaml/preprocess/parser_raw.ml" +# 35903 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35931 "src/ocaml/preprocess/parser_raw.ml" +# 35909 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35945,7 +35923,7 @@ module Tables = struct let _v : (Parsetree.class_type_field list list) = # 211 "" ( [] ) -# 35949 "src/ocaml/preprocess/parser_raw.ml" +# 35927 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35977,15 +35955,15 @@ module Tables = struct let _v : (Parsetree.class_type_field list list) = let x = let _startpos = _startpos__1_ in -# 1258 "src/ocaml/preprocess/parser_raw.mly" +# 1302 "src/ocaml/preprocess/parser_raw.mly" ( text_csig _startpos @ [_1] ) -# 35983 "src/ocaml/preprocess/parser_raw.ml" +# 35961 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 35989 "src/ocaml/preprocess/parser_raw.ml" +# 35967 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36003,7 +35981,7 @@ module Tables = struct let _v : (Parsetree.class_field list list) = # 211 "" ( [] ) -# 36007 "src/ocaml/preprocess/parser_raw.ml" +# 35985 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36035,15 +36013,15 @@ module Tables = struct let _v : (Parsetree.class_field list list) = let x = let _startpos = _startpos__1_ in -# 1256 "src/ocaml/preprocess/parser_raw.mly" +# 1300 "src/ocaml/preprocess/parser_raw.mly" ( text_cstr _startpos @ [_1] ) -# 36041 "src/ocaml/preprocess/parser_raw.ml" +# 36019 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36047 "src/ocaml/preprocess/parser_raw.ml" +# 36025 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36061,7 +36039,7 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = # 211 "" ( [] ) -# 36065 "src/ocaml/preprocess/parser_raw.ml" +# 36043 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36093,15 +36071,15 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = let x = let _startpos = _startpos__1_ in -# 1244 "src/ocaml/preprocess/parser_raw.mly" +# 1288 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 36099 "src/ocaml/preprocess/parser_raw.ml" +# 36077 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36105 "src/ocaml/preprocess/parser_raw.ml" +# 36083 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36119,7 +36097,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase list list) = # 211 "" ( [] ) -# 36123 "src/ocaml/preprocess/parser_raw.ml" +# 36101 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36152,32 +36130,32 @@ module Tables = struct let _1 = let x = let _1 = -# 1313 "src/ocaml/preprocess/parser_raw.mly" +# 1354 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 36158 "src/ocaml/preprocess/parser_raw.ml" +# 36136 "src/ocaml/preprocess/parser_raw.ml" in -# 1565 "src/ocaml/preprocess/parser_raw.mly" +# 1606 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36163 "src/ocaml/preprocess/parser_raw.ml" +# 36141 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 36169 "src/ocaml/preprocess/parser_raw.ml" +# 36147 "src/ocaml/preprocess/parser_raw.ml" in -# 1577 "src/ocaml/preprocess/parser_raw.mly" +# 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36175 "src/ocaml/preprocess/parser_raw.ml" +# 36153 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36181 "src/ocaml/preprocess/parser_raw.ml" +# 36159 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36229,58 +36207,58 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36235 "src/ocaml/preprocess/parser_raw.ml" +# 36213 "src/ocaml/preprocess/parser_raw.ml" in -# 1785 "src/ocaml/preprocess/parser_raw.mly" +# 1831 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 36240 "src/ocaml/preprocess/parser_raw.ml" +# 36218 "src/ocaml/preprocess/parser_raw.ml" in -# 1254 "src/ocaml/preprocess/parser_raw.mly" +# 1298 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 36246 "src/ocaml/preprocess/parser_raw.ml" +# 36224 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1252 "src/ocaml/preprocess/parser_raw.mly" +# 1296 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 36254 "src/ocaml/preprocess/parser_raw.ml" +# 36232 "src/ocaml/preprocess/parser_raw.ml" in -# 1315 "src/ocaml/preprocess/parser_raw.mly" +# 1356 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 36260 "src/ocaml/preprocess/parser_raw.ml" +# 36238 "src/ocaml/preprocess/parser_raw.ml" in -# 1565 "src/ocaml/preprocess/parser_raw.mly" +# 1606 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36266 "src/ocaml/preprocess/parser_raw.ml" +# 36244 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 36272 "src/ocaml/preprocess/parser_raw.ml" +# 36250 "src/ocaml/preprocess/parser_raw.ml" in -# 1577 "src/ocaml/preprocess/parser_raw.mly" +# 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36278 "src/ocaml/preprocess/parser_raw.ml" +# 36256 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36284 "src/ocaml/preprocess/parser_raw.ml" +# 36262 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36312,27 +36290,27 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase list list) = let x = let _1 = let _1 = -# 1254 "src/ocaml/preprocess/parser_raw.mly" +# 1298 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 36318 "src/ocaml/preprocess/parser_raw.ml" +# 36296 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in -# 1252 "src/ocaml/preprocess/parser_raw.mly" +# 1296 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 36324 "src/ocaml/preprocess/parser_raw.ml" +# 36302 "src/ocaml/preprocess/parser_raw.ml" in -# 1577 "src/ocaml/preprocess/parser_raw.mly" +# 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36330 "src/ocaml/preprocess/parser_raw.ml" +# 36308 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36336 "src/ocaml/preprocess/parser_raw.ml" +# 36314 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36367,29 +36345,29 @@ module Tables = struct let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1263 "src/ocaml/preprocess/parser_raw.mly" +# 1307 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 36374 "src/ocaml/preprocess/parser_raw.ml" +# 36352 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in -# 1252 "src/ocaml/preprocess/parser_raw.mly" +# 1296 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 36381 "src/ocaml/preprocess/parser_raw.ml" +# 36359 "src/ocaml/preprocess/parser_raw.ml" in -# 1577 "src/ocaml/preprocess/parser_raw.mly" +# 1618 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36387 "src/ocaml/preprocess/parser_raw.ml" +# 36365 "src/ocaml/preprocess/parser_raw.ml" in # 213 "" ( x :: xs ) -# 36393 "src/ocaml/preprocess/parser_raw.ml" +# 36371 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36425,10 +36403,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_opat_ in - let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = + let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = # 124 "" ( None ) -# 36432 "src/ocaml/preprocess/parser_raw.ml" +# 36410 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -36436,9 +36414,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36442 "src/ocaml/preprocess/parser_raw.ml" +# 36420 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -36446,7 +36424,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3863 "src/ocaml/preprocess/parser_raw.mly" +# 3894 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -36460,13 +36438,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 36464 "src/ocaml/preprocess/parser_raw.ml" +# 36442 "src/ocaml/preprocess/parser_raw.ml" in -# 1502 "src/ocaml/preprocess/parser_raw.mly" +# 1543 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 36470 "src/ocaml/preprocess/parser_raw.ml" +# 36448 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36509,10 +36487,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = + let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = # 126 "" ( Some x ) -# 36516 "src/ocaml/preprocess/parser_raw.ml" +# 36494 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -36520,9 +36498,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36526 "src/ocaml/preprocess/parser_raw.ml" +# 36504 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -36530,7 +36508,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3863 "src/ocaml/preprocess/parser_raw.mly" +# 3894 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -36544,13 +36522,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 36548 "src/ocaml/preprocess/parser_raw.ml" +# 36526 "src/ocaml/preprocess/parser_raw.ml" in -# 1502 "src/ocaml/preprocess/parser_raw.mly" +# 1543 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 36554 "src/ocaml/preprocess/parser_raw.ml" +# 36532 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36607,15 +36585,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let x = + let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x = let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36619 "src/ocaml/preprocess/parser_raw.ml" +# 36597 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -36623,7 +36601,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3863 "src/ocaml/preprocess/parser_raw.mly" +# 3894 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -36637,13 +36615,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 36641 "src/ocaml/preprocess/parser_raw.ml" +# 36619 "src/ocaml/preprocess/parser_raw.ml" in -# 1504 "src/ocaml/preprocess/parser_raw.mly" +# 1545 "src/ocaml/preprocess/parser_raw.mly" ( [x], Some y ) -# 36647 "src/ocaml/preprocess/parser_raw.ml" +# 36625 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36685,7 +36663,7 @@ module Tables = struct }; }; } = _menhir_stack in - let tail : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = Obj.magic tail in + let tail : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = Obj.magic tail in let _2 : unit = Obj.magic _2 in let opat : (Parsetree.pattern option) = Obj.magic opat in let octy : (Parsetree.core_type option) = Obj.magic octy in @@ -36693,15 +36671,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_tail_ in - let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let x = + let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x = let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36705 "src/ocaml/preprocess/parser_raw.ml" +# 36683 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -36709,7 +36687,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3863 "src/ocaml/preprocess/parser_raw.mly" +# 3894 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -36723,14 +36701,14 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 36727 "src/ocaml/preprocess/parser_raw.ml" +# 36705 "src/ocaml/preprocess/parser_raw.ml" in -# 1508 "src/ocaml/preprocess/parser_raw.mly" +# 1549 "src/ocaml/preprocess/parser_raw.mly" ( let xs, y = tail in x :: xs, y ) -# 36734 "src/ocaml/preprocess/parser_raw.ml" +# 36712 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36767,9 +36745,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.case) = -# 3413 "src/ocaml/preprocess/parser_raw.mly" +# 3444 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ _3) ) -# 36773 "src/ocaml/preprocess/parser_raw.ml" +# 36751 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36820,9 +36798,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.case) = -# 3415 "src/ocaml/preprocess/parser_raw.mly" +# 3446 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 ~guard:(merloc _endpos__2_ _3) (merloc _endpos__4_ _5) ) -# 36826 "src/ocaml/preprocess/parser_raw.ml" +# 36804 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36860,10 +36838,10 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.case) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3417 "src/ocaml/preprocess/parser_raw.mly" +# 3448 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ (Exp.unreachable ~loc:(make_loc _loc__3_) ())) ) -# 36867 "src/ocaml/preprocess/parser_raw.ml" +# 36845 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36924,9 +36902,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 36930 "src/ocaml/preprocess/parser_raw.ml" +# 36908 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -36935,49 +36913,49 @@ module Tables = struct let _6 = let _1 = _1_inlined3 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36941 "src/ocaml/preprocess/parser_raw.ml" +# 36919 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36950 "src/ocaml/preprocess/parser_raw.ml" +# 36928 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 4403 "src/ocaml/preprocess/parser_raw.mly" +# 4423 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36959 "src/ocaml/preprocess/parser_raw.ml" +# 36937 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36966 "src/ocaml/preprocess/parser_raw.ml" +# 36944 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36974 "src/ocaml/preprocess/parser_raw.ml" +# 36952 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4892 "src/ocaml/preprocess/parser_raw.mly" +# 4907 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos__4_ with | Some _ as info_before_semi -> info_before_semi @@ -36985,13 +36963,13 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 36989 "src/ocaml/preprocess/parser_raw.ml" +# 36967 "src/ocaml/preprocess/parser_raw.ml" in -# 4873 "src/ocaml/preprocess/parser_raw.mly" +# 4888 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 36995 "src/ocaml/preprocess/parser_raw.ml" +# 36973 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37032,15 +37010,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4918 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37038 "src/ocaml/preprocess/parser_raw.ml" +# 37016 "src/ocaml/preprocess/parser_raw.ml" in -# 4873 "src/ocaml/preprocess/parser_raw.mly" +# 4888 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 37044 "src/ocaml/preprocess/parser_raw.ml" +# 37022 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37094,9 +37072,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37100 "src/ocaml/preprocess/parser_raw.ml" +# 37078 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -37105,49 +37083,49 @@ module Tables = struct let _6 = let _1 = _1_inlined3 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37111 "src/ocaml/preprocess/parser_raw.ml" +# 37089 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37120 "src/ocaml/preprocess/parser_raw.ml" +# 37098 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 4403 "src/ocaml/preprocess/parser_raw.mly" +# 4423 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37129 "src/ocaml/preprocess/parser_raw.ml" +# 37107 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37136 "src/ocaml/preprocess/parser_raw.ml" +# 37114 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37144 "src/ocaml/preprocess/parser_raw.ml" +# 37122 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4892 "src/ocaml/preprocess/parser_raw.mly" +# 4907 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos__4_ with | Some _ as info_before_semi -> info_before_semi @@ -37155,13 +37133,13 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 37159 "src/ocaml/preprocess/parser_raw.ml" +# 37137 "src/ocaml/preprocess/parser_raw.ml" in -# 4876 "src/ocaml/preprocess/parser_raw.mly" +# 4891 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37165 "src/ocaml/preprocess/parser_raw.ml" +# 37143 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37195,15 +37173,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4918 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37201 "src/ocaml/preprocess/parser_raw.ml" +# 37179 "src/ocaml/preprocess/parser_raw.ml" in -# 4876 "src/ocaml/preprocess/parser_raw.mly" +# 4891 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37207 "src/ocaml/preprocess/parser_raw.ml" +# 37185 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37243,9 +37221,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37249 "src/ocaml/preprocess/parser_raw.ml" +# 37227 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -37254,50 +37232,50 @@ module Tables = struct let _4 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37260 "src/ocaml/preprocess/parser_raw.ml" +# 37238 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 4403 "src/ocaml/preprocess/parser_raw.mly" +# 4423 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37269 "src/ocaml/preprocess/parser_raw.ml" +# 37247 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37276 "src/ocaml/preprocess/parser_raw.ml" +# 37254 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37284 "src/ocaml/preprocess/parser_raw.ml" +# 37262 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4885 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _4 in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 37295 "src/ocaml/preprocess/parser_raw.ml" +# 37273 "src/ocaml/preprocess/parser_raw.ml" in -# 4879 "src/ocaml/preprocess/parser_raw.mly" +# 4894 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37301 "src/ocaml/preprocess/parser_raw.ml" +# 37279 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37324,15 +37302,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4918 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 37330 "src/ocaml/preprocess/parser_raw.ml" +# 37308 "src/ocaml/preprocess/parser_raw.ml" in -# 4879 "src/ocaml/preprocess/parser_raw.mly" +# 4894 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 37336 "src/ocaml/preprocess/parser_raw.ml" +# 37314 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37355,9 +37333,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.object_field list * Asttypes.closed_flag) = -# 4881 "src/ocaml/preprocess/parser_raw.mly" +# 4896 "src/ocaml/preprocess/parser_raw.mly" ( [], Open ) -# 37361 "src/ocaml/preprocess/parser_raw.ml" +# 37339 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37402,54 +37380,54 @@ module Tables = struct let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37408 "src/ocaml/preprocess/parser_raw.ml" +# 37386 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let private_ : (Asttypes.private_flag) = Obj.magic private_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let ty = let _1 = _1_inlined2 in -# 4399 "src/ocaml/preprocess/parser_raw.mly" +# 4419 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37421 "src/ocaml/preprocess/parser_raw.ml" +# 37399 "src/ocaml/preprocess/parser_raw.ml" in let label = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37429 "src/ocaml/preprocess/parser_raw.ml" +# 37407 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37437 "src/ocaml/preprocess/parser_raw.ml" +# 37415 "src/ocaml/preprocess/parser_raw.ml" in let attrs = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37443 "src/ocaml/preprocess/parser_raw.ml" +# 37421 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5198 "src/ocaml/preprocess/parser_raw.mly" +# 5213 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 37448 "src/ocaml/preprocess/parser_raw.ml" +# 37426 "src/ocaml/preprocess/parser_raw.ml" in -# 2428 "src/ocaml/preprocess/parser_raw.mly" +# 2467 "src/ocaml/preprocess/parser_raw.mly" ( (label, private_, Cfk_virtual ty), attrs ) -# 37453 "src/ocaml/preprocess/parser_raw.ml" +# 37431 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37487,57 +37465,57 @@ module Tables = struct } = _menhir_stack in let _1_inlined2 : (Parsetree.modes -> Parsetree.expression) = Obj.magic _1_inlined2 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37493 "src/ocaml/preprocess/parser_raw.ml" +# 37471 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _5 = let _1 = _1_inlined2 in -# 3391 "src/ocaml/preprocess/parser_raw.mly" +# 3422 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 37506 "src/ocaml/preprocess/parser_raw.ml" +# 37484 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37514 "src/ocaml/preprocess/parser_raw.ml" +# 37492 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37522 "src/ocaml/preprocess/parser_raw.ml" +# 37500 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37528 "src/ocaml/preprocess/parser_raw.ml" +# 37506 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 37533 "src/ocaml/preprocess/parser_raw.ml" +# 37511 "src/ocaml/preprocess/parser_raw.ml" in -# 2430 "src/ocaml/preprocess/parser_raw.mly" +# 2469 "src/ocaml/preprocess/parser_raw.mly" ( let e = _5 in let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 37541 "src/ocaml/preprocess/parser_raw.ml" +# 37519 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37581,9 +37559,9 @@ module Tables = struct } = _menhir_stack in let _1_inlined3 : (Parsetree.modes -> Parsetree.expression) = Obj.magic _1_inlined3 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37587 "src/ocaml/preprocess/parser_raw.ml" +# 37565 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -37591,51 +37569,51 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _5 = let _1 = _1_inlined3 in -# 3391 "src/ocaml/preprocess/parser_raw.mly" +# 3422 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 37601 "src/ocaml/preprocess/parser_raw.ml" +# 37579 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37609 "src/ocaml/preprocess/parser_raw.ml" +# 37587 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37617 "src/ocaml/preprocess/parser_raw.ml" +# 37595 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37625 "src/ocaml/preprocess/parser_raw.ml" +# 37603 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 37631 "src/ocaml/preprocess/parser_raw.ml" +# 37609 "src/ocaml/preprocess/parser_raw.ml" in -# 2430 "src/ocaml/preprocess/parser_raw.mly" +# 2469 "src/ocaml/preprocess/parser_raw.mly" ( let e = _5 in let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 37639 "src/ocaml/preprocess/parser_raw.ml" +# 37617 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37694,58 +37672,58 @@ module Tables = struct let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37700 "src/ocaml/preprocess/parser_raw.ml" +# 37678 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _6 = let _1 = _1_inlined2 in -# 4399 "src/ocaml/preprocess/parser_raw.mly" +# 4419 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37713 "src/ocaml/preprocess/parser_raw.ml" +# 37691 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__6_ = _startpos__1_inlined2_ in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37722 "src/ocaml/preprocess/parser_raw.ml" +# 37700 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37730 "src/ocaml/preprocess/parser_raw.ml" +# 37708 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37736 "src/ocaml/preprocess/parser_raw.ml" +# 37714 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 37741 "src/ocaml/preprocess/parser_raw.ml" +# 37719 "src/ocaml/preprocess/parser_raw.ml" in -# 2436 "src/ocaml/preprocess/parser_raw.mly" +# 2475 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp = let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 37749 "src/ocaml/preprocess/parser_raw.ml" +# 37727 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37810,9 +37788,9 @@ module Tables = struct let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37816 "src/ocaml/preprocess/parser_raw.ml" +# 37794 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -37820,52 +37798,52 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _6 = let _1 = _1_inlined3 in -# 4399 "src/ocaml/preprocess/parser_raw.mly" +# 4419 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37830 "src/ocaml/preprocess/parser_raw.ml" +# 37808 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__6_ = _startpos__1_inlined3_ in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37839 "src/ocaml/preprocess/parser_raw.ml" +# 37817 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37847 "src/ocaml/preprocess/parser_raw.ml" +# 37825 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37855 "src/ocaml/preprocess/parser_raw.ml" +# 37833 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 37861 "src/ocaml/preprocess/parser_raw.ml" +# 37839 "src/ocaml/preprocess/parser_raw.ml" in -# 2436 "src/ocaml/preprocess/parser_raw.mly" +# 2475 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp = let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 37869 "src/ocaml/preprocess/parser_raw.ml" +# 37847 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37941,47 +37919,47 @@ module Tables = struct let _10 : unit = Obj.magic _10 in let _9 : (Parsetree.core_type) = Obj.magic _9 in let _8 : unit = Obj.magic _8 in - let _7 : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = Obj.magic _7 in + let _7 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _7 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37951 "src/ocaml/preprocess/parser_raw.ml" +# 37929 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__11_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37964 "src/ocaml/preprocess/parser_raw.ml" +# 37942 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37972 "src/ocaml/preprocess/parser_raw.ml" +# 37950 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37979 "src/ocaml/preprocess/parser_raw.ml" +# 37957 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 37985 "src/ocaml/preprocess/parser_raw.ml" +# 37963 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__11_ in @@ -37997,7 +37975,7 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2442 "src/ocaml/preprocess/parser_raw.mly" +# 2481 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = let exp, poly = @@ -38008,7 +37986,7 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38012 "src/ocaml/preprocess/parser_raw.ml" +# 37990 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38090,13 +38068,13 @@ module Tables = struct let _10 : unit = Obj.magic _10 in let _9 : (Parsetree.core_type) = Obj.magic _9 in let _8 : unit = Obj.magic _8 in - let _7 : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = Obj.magic _7 in + let _7 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _7 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38100 "src/ocaml/preprocess/parser_raw.ml" +# 38078 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -38104,37 +38082,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__11_ in - let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38114 "src/ocaml/preprocess/parser_raw.ml" +# 38092 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38122 "src/ocaml/preprocess/parser_raw.ml" +# 38100 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38131 "src/ocaml/preprocess/parser_raw.ml" +# 38109 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 38138 "src/ocaml/preprocess/parser_raw.ml" +# 38116 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__11_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -38149,7 +38127,7 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2442 "src/ocaml/preprocess/parser_raw.mly" +# 2481 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = let exp, poly = @@ -38160,7 +38138,7 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 38164 "src/ocaml/preprocess/parser_raw.ml" +# 38142 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38179,17 +38157,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38185 "src/ocaml/preprocess/parser_raw.ml" +# 38163 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38193 "src/ocaml/preprocess/parser_raw.ml" +# 38171 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38220,9 +38198,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38226 "src/ocaml/preprocess/parser_raw.ml" +# 38204 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -38230,9 +38208,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38236 "src/ocaml/preprocess/parser_raw.ml" +# 38214 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38251,17 +38229,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38257 "src/ocaml/preprocess/parser_raw.ml" +# 38235 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38265 "src/ocaml/preprocess/parser_raw.ml" +# 38243 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38292,9 +38270,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38298 "src/ocaml/preprocess/parser_raw.ml" +# 38276 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -38302,9 +38280,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38308 "src/ocaml/preprocess/parser_raw.ml" +# 38286 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38327,14 +38305,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = let _1 = -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38333 "src/ocaml/preprocess/parser_raw.ml" +# 38311 "src/ocaml/preprocess/parser_raw.ml" in -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38338 "src/ocaml/preprocess/parser_raw.ml" +# 38316 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38372,20 +38350,20 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Longident.t) = let _1 = let _1 = -# 5010 "src/ocaml/preprocess/parser_raw.mly" +# 5025 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 38378 "src/ocaml/preprocess/parser_raw.ml" +# 38356 "src/ocaml/preprocess/parser_raw.ml" in -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38383 "src/ocaml/preprocess/parser_raw.ml" +# 38361 "src/ocaml/preprocess/parser_raw.ml" in -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38389 "src/ocaml/preprocess/parser_raw.ml" +# 38367 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38408,14 +38386,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = let _1 = -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38414 "src/ocaml/preprocess/parser_raw.ml" +# 38392 "src/ocaml/preprocess/parser_raw.ml" in -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38419 "src/ocaml/preprocess/parser_raw.ml" +# 38397 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38454,15 +38432,15 @@ module Tables = struct let _v : (Longident.t) = let _3 = let _1 = _1_inlined1 in -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38460 "src/ocaml/preprocess/parser_raw.ml" +# 38438 "src/ocaml/preprocess/parser_raw.ml" in -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38466 "src/ocaml/preprocess/parser_raw.ml" +# 38444 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38514,20 +38492,20 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Longident.t) = let _3 = let _1 = -# 5010 "src/ocaml/preprocess/parser_raw.mly" +# 5025 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 38520 "src/ocaml/preprocess/parser_raw.ml" +# 38498 "src/ocaml/preprocess/parser_raw.ml" in -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38525 "src/ocaml/preprocess/parser_raw.ml" +# 38503 "src/ocaml/preprocess/parser_raw.ml" in -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38531 "src/ocaml/preprocess/parser_raw.ml" +# 38509 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38566,15 +38544,15 @@ module Tables = struct let _v : (Longident.t) = let _3 = let _1 = _1_inlined1 in -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38572 "src/ocaml/preprocess/parser_raw.ml" +# 38550 "src/ocaml/preprocess/parser_raw.ml" in -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38578 "src/ocaml/preprocess/parser_raw.ml" +# 38556 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38597,9 +38575,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38603 "src/ocaml/preprocess/parser_raw.ml" +# 38581 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38636,9 +38614,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38642 "src/ocaml/preprocess/parser_raw.ml" +# 38620 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38661,9 +38639,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38667 "src/ocaml/preprocess/parser_raw.ml" +# 38645 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38700,9 +38678,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38706 "src/ocaml/preprocess/parser_raw.ml" +# 38684 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38725,9 +38703,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38731 "src/ocaml/preprocess/parser_raw.ml" +# 38709 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38764,9 +38742,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38770 "src/ocaml/preprocess/parser_raw.ml" +# 38748 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38785,17 +38763,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38791 "src/ocaml/preprocess/parser_raw.ml" +# 38769 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38799 "src/ocaml/preprocess/parser_raw.ml" +# 38777 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38826,9 +38804,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38832 "src/ocaml/preprocess/parser_raw.ml" +# 38810 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -38836,9 +38814,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38842 "src/ocaml/preprocess/parser_raw.ml" +# 38820 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38857,17 +38835,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38863 "src/ocaml/preprocess/parser_raw.ml" +# 38841 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38871 "src/ocaml/preprocess/parser_raw.ml" +# 38849 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38898,9 +38876,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38904 "src/ocaml/preprocess/parser_raw.ml" +# 38882 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -38908,9 +38886,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38914 "src/ocaml/preprocess/parser_raw.ml" +# 38892 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38933,9 +38911,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 38939 "src/ocaml/preprocess/parser_raw.ml" +# 38917 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38972,9 +38950,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5031 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 38978 "src/ocaml/preprocess/parser_raw.ml" +# 38956 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38997,9 +38975,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5056 "src/ocaml/preprocess/parser_raw.mly" +# 5071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39003 "src/ocaml/preprocess/parser_raw.ml" +# 38981 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39046,9 +39024,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5058 "src/ocaml/preprocess/parser_raw.mly" +# 5073 "src/ocaml/preprocess/parser_raw.mly" ( lapply ~loc:_sloc _1 _3 ) -# 39052 "src/ocaml/preprocess/parser_raw.ml" +# 39030 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39071,9 +39049,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5053 "src/ocaml/preprocess/parser_raw.mly" +# 5068 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39077 "src/ocaml/preprocess/parser_raw.ml" +# 39055 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39103,9 +39081,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in let _v : (Parsetree.module_expr) = -# 1865 "src/ocaml/preprocess/parser_raw.mly" +# 1906 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 39109 "src/ocaml/preprocess/parser_raw.ml" +# 39087 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39150,24 +39128,24 @@ module Tables = struct let _endpos = _endpos_me_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1872 "src/ocaml/preprocess/parser_raw.mly" +# 1913 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_constraint(me, mty) ) -# 39156 "src/ocaml/preprocess/parser_raw.ml" +# 39134 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_me_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1283 "src/ocaml/preprocess/parser_raw.mly" +# 1327 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39165 "src/ocaml/preprocess/parser_raw.ml" +# 39143 "src/ocaml/preprocess/parser_raw.ml" in -# 1876 "src/ocaml/preprocess/parser_raw.mly" +# 1917 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39171 "src/ocaml/preprocess/parser_raw.ml" +# 39149 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39198,25 +39176,25 @@ module Tables = struct let _endpos = _endpos_body_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1874 "src/ocaml/preprocess/parser_raw.mly" +# 1915 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in Pmod_functor(arg, body) ) -# 39205 "src/ocaml/preprocess/parser_raw.ml" +# 39183 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1283 "src/ocaml/preprocess/parser_raw.mly" +# 1327 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39214 "src/ocaml/preprocess/parser_raw.ml" +# 39192 "src/ocaml/preprocess/parser_raw.ml" in -# 1876 "src/ocaml/preprocess/parser_raw.mly" +# 1917 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39220 "src/ocaml/preprocess/parser_raw.ml" +# 39198 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39246,9 +39224,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_mty_ in let _v : (Parsetree.module_type) = -# 2146 "src/ocaml/preprocess/parser_raw.mly" +# 2185 "src/ocaml/preprocess/parser_raw.mly" ( mty ) -# 39252 "src/ocaml/preprocess/parser_raw.ml" +# 39230 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39279,25 +39257,25 @@ module Tables = struct let _endpos = _endpos_body_ in let _v : (Parsetree.module_type) = let _1 = let _1 = -# 2153 "src/ocaml/preprocess/parser_raw.mly" +# 2192 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in Pmty_functor(arg, body) ) -# 39286 "src/ocaml/preprocess/parser_raw.ml" +# 39264 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1285 "src/ocaml/preprocess/parser_raw.mly" +# 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 39295 "src/ocaml/preprocess/parser_raw.ml" +# 39273 "src/ocaml/preprocess/parser_raw.ml" in -# 2156 "src/ocaml/preprocess/parser_raw.mly" +# 2195 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39301 "src/ocaml/preprocess/parser_raw.ml" +# 39279 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39343,18 +39321,18 @@ module Tables = struct let _v : (Parsetree.module_expr) = let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39349 "src/ocaml/preprocess/parser_raw.ml" +# 39327 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1678 "src/ocaml/preprocess/parser_raw.mly" +# 1719 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) ) -# 39358 "src/ocaml/preprocess/parser_raw.ml" +# 39336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39407,22 +39385,22 @@ module Tables = struct let _v : (Parsetree.module_expr) = let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39413 "src/ocaml/preprocess/parser_raw.ml" +# 39391 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_me_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1688 "src/ocaml/preprocess/parser_raw.mly" +# 1729 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mod_attrs ~loc:_sloc attrs ( List.fold_left (fun acc (startpos, arg) -> mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc)) ) me args ) ) -# 39426 "src/ocaml/preprocess/parser_raw.ml" +# 39404 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39445,9 +39423,9 @@ module Tables = struct let _startpos = _startpos_me_ in let _endpos = _endpos_me_ in let _v : (Parsetree.module_expr) = -# 1694 "src/ocaml/preprocess/parser_raw.mly" +# 1735 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 39451 "src/ocaml/preprocess/parser_raw.ml" +# 39429 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39476,10 +39454,18 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_me_ in let _endpos = _endpos_attr_ in - let _v : (Parsetree.module_expr) = -# 1696 "src/ocaml/preprocess/parser_raw.mly" - ( Mod.attr me attr ) -# 39483 "src/ocaml/preprocess/parser_raw.ml" + let _v : (Parsetree.module_expr) = let _endpos = _endpos_attr_ in + let _symbolstartpos = _startpos_me_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1737 "src/ocaml/preprocess/parser_raw.mly" + ( match attr with + | { attr_name = { txt = "jane.non_erasable.instances"; loc = _ }; + attr_payload = PStr []; + } -> mkmod ~loc:_sloc (pmod_instance me) + | attr -> Mod.attr me attr + ) +# 39469 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39508,30 +39494,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39514 "src/ocaml/preprocess/parser_raw.ml" +# 39500 "src/ocaml/preprocess/parser_raw.ml" in -# 1700 "src/ocaml/preprocess/parser_raw.mly" +# 1746 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_ident x ) -# 39520 "src/ocaml/preprocess/parser_raw.ml" +# 39506 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1283 "src/ocaml/preprocess/parser_raw.mly" +# 1327 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39529 "src/ocaml/preprocess/parser_raw.ml" +# 39515 "src/ocaml/preprocess/parser_raw.ml" in -# 1715 "src/ocaml/preprocess/parser_raw.mly" +# 1761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39535 "src/ocaml/preprocess/parser_raw.ml" +# 39521 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39562,24 +39548,24 @@ module Tables = struct let _endpos = _endpos_me2_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1703 "src/ocaml/preprocess/parser_raw.mly" +# 1749 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply(me1, me2) ) -# 39568 "src/ocaml/preprocess/parser_raw.ml" +# 39554 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1283 "src/ocaml/preprocess/parser_raw.mly" +# 1327 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39577 "src/ocaml/preprocess/parser_raw.ml" +# 39563 "src/ocaml/preprocess/parser_raw.ml" in -# 1715 "src/ocaml/preprocess/parser_raw.mly" +# 1761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39583 "src/ocaml/preprocess/parser_raw.ml" +# 39569 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39617,24 +39603,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1706 "src/ocaml/preprocess/parser_raw.mly" +# 1752 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply_unit me ) -# 39623 "src/ocaml/preprocess/parser_raw.ml" +# 39609 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1283 "src/ocaml/preprocess/parser_raw.mly" +# 1327 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39632 "src/ocaml/preprocess/parser_raw.ml" +# 39618 "src/ocaml/preprocess/parser_raw.ml" in -# 1715 "src/ocaml/preprocess/parser_raw.mly" +# 1761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39638 "src/ocaml/preprocess/parser_raw.ml" +# 39624 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39658,24 +39644,24 @@ module Tables = struct let _endpos = _endpos_ex_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1709 "src/ocaml/preprocess/parser_raw.mly" +# 1755 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_extension ex ) -# 39664 "src/ocaml/preprocess/parser_raw.ml" +# 39650 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1283 "src/ocaml/preprocess/parser_raw.mly" +# 1327 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39673 "src/ocaml/preprocess/parser_raw.ml" +# 39659 "src/ocaml/preprocess/parser_raw.ml" in -# 1715 "src/ocaml/preprocess/parser_raw.mly" +# 1761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39679 "src/ocaml/preprocess/parser_raw.ml" +# 39665 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39703,25 +39689,25 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 1712 "src/ocaml/preprocess/parser_raw.mly" +# 1758 "src/ocaml/preprocess/parser_raw.mly" ( let id = mkrhs Ast_helper.hole_txt _loc in Pmod_extension (id, PStr []) ) -# 39710 "src/ocaml/preprocess/parser_raw.ml" +# 39696 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1283 "src/ocaml/preprocess/parser_raw.mly" +# 1327 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 39719 "src/ocaml/preprocess/parser_raw.ml" +# 39705 "src/ocaml/preprocess/parser_raw.ml" in -# 1715 "src/ocaml/preprocess/parser_raw.mly" +# 1761 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39725 "src/ocaml/preprocess/parser_raw.ml" +# 39711 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39740,17 +39726,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39746 "src/ocaml/preprocess/parser_raw.ml" +# 39732 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (string option) = -# 1661 "src/ocaml/preprocess/parser_raw.mly" +# 1702 "src/ocaml/preprocess/parser_raw.mly" ( Some x ) -# 39754 "src/ocaml/preprocess/parser_raw.ml" +# 39740 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39773,9 +39759,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string option) = -# 1664 "src/ocaml/preprocess/parser_raw.mly" +# 1705 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 39779 "src/ocaml/preprocess/parser_raw.ml" +# 39765 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39833,22 +39819,22 @@ module Tables = struct let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39839 "src/ocaml/preprocess/parser_raw.ml" +# 39825 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.module_substitution * string Location.loc option) = let attrs2 = + let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39852 "src/ocaml/preprocess/parser_raw.ml" +# 39838 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -39858,9 +39844,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39864 "src/ocaml/preprocess/parser_raw.ml" +# 39850 "src/ocaml/preprocess/parser_raw.ml" in let uid = @@ -39869,31 +39855,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39875 "src/ocaml/preprocess/parser_raw.ml" +# 39861 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39883 "src/ocaml/preprocess/parser_raw.ml" +# 39869 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2186 "src/ocaml/preprocess/parser_raw.mly" +# 2225 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Ms.mk uid body ~attrs ~loc ~docs, ext ) -# 39897 "src/ocaml/preprocess/parser_raw.ml" +# 39883 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39939,18 +39925,18 @@ module Tables = struct let _v : (Parsetree.module_type) = let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39945 "src/ocaml/preprocess/parser_raw.ml" +# 39931 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2009 "src/ocaml/preprocess/parser_raw.mly" +# 2050 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) -# 39954 "src/ocaml/preprocess/parser_raw.ml" +# 39940 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40003,22 +39989,22 @@ module Tables = struct let _v : (Parsetree.module_type) = let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40009 "src/ocaml/preprocess/parser_raw.ml" +# 39995 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_mty_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2021 "src/ocaml/preprocess/parser_raw.mly" +# 2062 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mty_attrs ~loc:_sloc attrs ( List.fold_left (fun acc (startpos, arg) -> mkmty ~loc:(startpos, _endpos) (Pmty_functor (arg, acc)) ) mty args ) ) -# 40022 "src/ocaml/preprocess/parser_raw.ml" +# 40008 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40071,18 +40057,18 @@ module Tables = struct let _v : (Parsetree.module_type) = let _4 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40077 "src/ocaml/preprocess/parser_raw.ml" +# 40063 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2027 "src/ocaml/preprocess/parser_raw.mly" +# 2068 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) -# 40086 "src/ocaml/preprocess/parser_raw.ml" +# 40072 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40119,9 +40105,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.module_type) = -# 2029 "src/ocaml/preprocess/parser_raw.mly" +# 2070 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 40125 "src/ocaml/preprocess/parser_raw.ml" +# 40111 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40151,9 +40137,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_type) = -# 2035 "src/ocaml/preprocess/parser_raw.mly" +# 2076 "src/ocaml/preprocess/parser_raw.mly" ( Mty.attr _1 _2 ) -# 40157 "src/ocaml/preprocess/parser_raw.ml" +# 40143 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40182,30 +40168,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40188 "src/ocaml/preprocess/parser_raw.ml" +# 40174 "src/ocaml/preprocess/parser_raw.ml" in -# 2038 "src/ocaml/preprocess/parser_raw.mly" +# 2079 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_ident _1 ) -# 40194 "src/ocaml/preprocess/parser_raw.ml" +# 40180 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1285 "src/ocaml/preprocess/parser_raw.mly" +# 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 40203 "src/ocaml/preprocess/parser_raw.ml" +# 40189 "src/ocaml/preprocess/parser_raw.ml" in -# 2051 "src/ocaml/preprocess/parser_raw.mly" +# 2094 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40209 "src/ocaml/preprocess/parser_raw.ml" +# 40195 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40250,24 +40236,24 @@ module Tables = struct let _endpos = _endpos__4_ in let _v : (Parsetree.module_type) = let _1 = let _1 = -# 2040 "src/ocaml/preprocess/parser_raw.mly" +# 2081 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Unit, _4) ) -# 40256 "src/ocaml/preprocess/parser_raw.ml" +# 40242 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1285 "src/ocaml/preprocess/parser_raw.mly" +# 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 40265 "src/ocaml/preprocess/parser_raw.ml" +# 40251 "src/ocaml/preprocess/parser_raw.ml" in -# 2051 "src/ocaml/preprocess/parser_raw.mly" +# 2094 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40271 "src/ocaml/preprocess/parser_raw.ml" +# 40257 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40305,24 +40291,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.module_type) = let _1 = let _1 = -# 2043 "src/ocaml/preprocess/parser_raw.mly" +# 2084 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_functor(Named (mknoloc None, _1), _3) ) -# 40311 "src/ocaml/preprocess/parser_raw.ml" +# 40297 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1285 "src/ocaml/preprocess/parser_raw.mly" +# 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 40320 "src/ocaml/preprocess/parser_raw.ml" +# 40306 "src/ocaml/preprocess/parser_raw.ml" in -# 2051 "src/ocaml/preprocess/parser_raw.mly" +# 2094 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40326 "src/ocaml/preprocess/parser_raw.ml" +# 40312 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40364,18 +40350,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 40368 "src/ocaml/preprocess/parser_raw.ml" +# 40354 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 40373 "src/ocaml/preprocess/parser_raw.ml" +# 40359 "src/ocaml/preprocess/parser_raw.ml" in -# 2045 "src/ocaml/preprocess/parser_raw.mly" +# 2086 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_with(_1, _3) ) -# 40379 "src/ocaml/preprocess/parser_raw.ml" +# 40365 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -40383,15 +40369,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1285 "src/ocaml/preprocess/parser_raw.mly" +# 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 40389 "src/ocaml/preprocess/parser_raw.ml" +# 40375 "src/ocaml/preprocess/parser_raw.ml" in -# 2051 "src/ocaml/preprocess/parser_raw.mly" +# 2094 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40395 "src/ocaml/preprocess/parser_raw.ml" +# 40381 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40415,23 +40401,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.module_type) = let _1 = let _1 = -# 2049 "src/ocaml/preprocess/parser_raw.mly" +# 2090 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_extension _1 ) -# 40421 "src/ocaml/preprocess/parser_raw.ml" +# 40407 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1285 "src/ocaml/preprocess/parser_raw.mly" +# 1329 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 40429 "src/ocaml/preprocess/parser_raw.ml" +# 40415 "src/ocaml/preprocess/parser_raw.ml" in -# 2051 "src/ocaml/preprocess/parser_raw.mly" +# 2094 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40435 "src/ocaml/preprocess/parser_raw.ml" +# 40421 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40467,26 +40453,39 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.module_type) = let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _v : (Parsetree.module_type) = let _1 = + let _1 = + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1284 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 40467 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2092 "src/ocaml/preprocess/parser_raw.mly" + ( Pmty_strengthen (_1, _3) ) +# 40473 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 40479 "src/ocaml/preprocess/parser_raw.ml" +# 1329 "src/ocaml/preprocess/parser_raw.mly" + ( mkmty ~loc:_sloc _1 ) +# 40483 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2053 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Strengthen.mty_of ~loc:(make_loc _sloc) - { mty = _1; mod_id = _3 } ) -# 40490 "src/ocaml/preprocess/parser_raw.ml" +# 2094 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 40489 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40544,18 +40543,18 @@ module Tables = struct let typ : (Parsetree.module_type option) = Obj.magic typ in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_type_declaration * string Location.loc option) = let attrs2 = + let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40559 "src/ocaml/preprocess/parser_raw.ml" +# 40558 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -40565,31 +40564,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40571 "src/ocaml/preprocess/parser_raw.ml" +# 40570 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40579 "src/ocaml/preprocess/parser_raw.ml" +# 40578 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1955 "src/ocaml/preprocess/parser_raw.mly" +# 1996 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Mtd.mk id ?typ ~attrs ~loc ~docs, ext ) -# 40593 "src/ocaml/preprocess/parser_raw.ml" +# 40592 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40654,18 +40653,18 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_type_declaration * string Location.loc option) = let attrs2 = + let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40669 "src/ocaml/preprocess/parser_raw.ml" +# 40668 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -40675,31 +40674,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40681 "src/ocaml/preprocess/parser_raw.ml" +# 40680 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40689 "src/ocaml/preprocess/parser_raw.ml" +# 40688 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2244 "src/ocaml/preprocess/parser_raw.mly" +# 2283 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Mtd.mk id ~typ ~attrs ~loc ~docs, ext ) -# 40703 "src/ocaml/preprocess/parser_raw.ml" +# 40702 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40722,9 +40721,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5065 "src/ocaml/preprocess/parser_raw.mly" +# 5080 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 40728 "src/ocaml/preprocess/parser_raw.ml" +# 40727 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40740,9 +40739,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag) = -# 5146 "src/ocaml/preprocess/parser_raw.mly" +# 5161 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 40746 "src/ocaml/preprocess/parser_raw.ml" +# 40745 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40765,9 +40764,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 5147 "src/ocaml/preprocess/parser_raw.mly" +# 5162 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 40771 "src/ocaml/preprocess/parser_raw.ml" +# 40770 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40782,10 +40781,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = -# 5151 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = +# 5166 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [] ) -# 40789 "src/ocaml/preprocess/parser_raw.ml" +# 40788 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40807,10 +40806,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = -# 5153 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = +# 5168 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, [] ) -# 40814 "src/ocaml/preprocess/parser_raw.ml" +# 40813 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40832,13 +40831,13 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5155 "src/ocaml/preprocess/parser_raw.mly" +# 5170 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [ mkloc (Modality "global") (make_loc _sloc)] ) -# 40842 "src/ocaml/preprocess/parser_raw.ml" +# 40841 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40854,9 +40853,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5167 "src/ocaml/preprocess/parser_raw.mly" +# 5182 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Concrete ) -# 40860 "src/ocaml/preprocess/parser_raw.ml" +# 40859 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40879,9 +40878,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5169 "src/ocaml/preprocess/parser_raw.mly" +# 5184 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Concrete ) -# 40885 "src/ocaml/preprocess/parser_raw.ml" +# 40884 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40904,9 +40903,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5171 "src/ocaml/preprocess/parser_raw.mly" +# 5186 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Virtual ) -# 40910 "src/ocaml/preprocess/parser_raw.ml" +# 40909 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40936,9 +40935,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5174 "src/ocaml/preprocess/parser_raw.mly" +# 5189 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 40942 "src/ocaml/preprocess/parser_raw.ml" +# 40941 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40968,9 +40967,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5174 "src/ocaml/preprocess/parser_raw.mly" +# 5189 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 40974 "src/ocaml/preprocess/parser_raw.ml" +# 40973 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41000,9 +40999,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5117 "src/ocaml/preprocess/parser_raw.mly" +# 5132 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 41006 "src/ocaml/preprocess/parser_raw.ml" +# 41005 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41021,27 +41020,27 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41027 "src/ocaml/preprocess/parser_raw.ml" +# 41026 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Location.loc * Parsetree.jkind_annotation Location.loc option) = let _1 = + let _v : (string Asttypes.loc * Parsetree.jkind_annotation option) = let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41039 "src/ocaml/preprocess/parser_raw.ml" +# 41038 "src/ocaml/preprocess/parser_raw.ml" in -# 3603 "src/ocaml/preprocess/parser_raw.mly" +# 3634 "src/ocaml/preprocess/parser_raw.mly" ( _1, None ) -# 41045 "src/ocaml/preprocess/parser_raw.ml" +# 41044 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41084,32 +41083,32 @@ module Tables = struct }; } = _menhir_stack in let _5 : unit = Obj.magic _5 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41093 "src/ocaml/preprocess/parser_raw.ml" +# 41092 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (string Location.loc * Parsetree.jkind_annotation Location.loc option) = let name = + let _v : (string Asttypes.loc * Parsetree.jkind_annotation option) = let name = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41107 "src/ocaml/preprocess/parser_raw.ml" +# 41106 "src/ocaml/preprocess/parser_raw.ml" in -# 3605 "src/ocaml/preprocess/parser_raw.mly" +# 3636 "src/ocaml/preprocess/parser_raw.mly" ( name, Some jkind ) -# 41113 "src/ocaml/preprocess/parser_raw.ml" +# 41112 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41127,14 +41126,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = Obj.magic _1 in + let _1 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = -# 3600 "src/ocaml/preprocess/parser_raw.mly" + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = +# 3631 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41138 "src/ocaml/preprocess/parser_raw.ml" +# 41137 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41153,27 +41152,27 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41159 "src/ocaml/preprocess/parser_raw.ml" +# 41158 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Location.loc list) = let x = + let _v : (string Asttypes.loc list) = let x = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41171 "src/ocaml/preprocess/parser_raw.ml" +# 41170 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 41177 "src/ocaml/preprocess/parser_raw.ml" +# 41176 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41197,29 +41196,29 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : (string Location.loc list) = Obj.magic xs in + let xs : (string Asttypes.loc list) = Obj.magic xs in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41205 "src/ocaml/preprocess/parser_raw.ml" +# 41204 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (string Location.loc list) = let x = + let _v : (string Asttypes.loc list) = let x = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 41217 "src/ocaml/preprocess/parser_raw.ml" +# 41216 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 41223 "src/ocaml/preprocess/parser_raw.ml" +# 41222 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41238,9 +41237,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41244 "src/ocaml/preprocess/parser_raw.ml" +# 41243 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -41250,15 +41249,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4610 "src/ocaml/preprocess/parser_raw.mly" +# 4629 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 41256 "src/ocaml/preprocess/parser_raw.ml" +# 41255 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 41262 "src/ocaml/preprocess/parser_raw.ml" +# 41261 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41284,9 +41283,9 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.modalities) = Obj.magic xs in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41290 "src/ocaml/preprocess/parser_raw.ml" +# 41289 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -41296,15 +41295,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4610 "src/ocaml/preprocess/parser_raw.mly" +# 4629 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 41302 "src/ocaml/preprocess/parser_raw.ml" +# 41301 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 41308 "src/ocaml/preprocess/parser_raw.ml" +# 41307 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41323,9 +41322,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41329 "src/ocaml/preprocess/parser_raw.ml" +# 41328 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -41335,15 +41334,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4573 "src/ocaml/preprocess/parser_raw.mly" +# 4592 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 41341 "src/ocaml/preprocess/parser_raw.ml" +# 41340 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 41347 "src/ocaml/preprocess/parser_raw.ml" +# 41346 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41369,9 +41368,9 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.modes) = Obj.magic xs in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41375 "src/ocaml/preprocess/parser_raw.ml" +# 41374 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -41381,15 +41380,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4573 "src/ocaml/preprocess/parser_raw.mly" +# 4592 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 41387 "src/ocaml/preprocess/parser_raw.ml" +# 41386 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 41393 "src/ocaml/preprocess/parser_raw.ml" +# 41392 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41416,15 +41415,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4574 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 41422 "src/ocaml/preprocess/parser_raw.ml" +# 41421 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 41428 "src/ocaml/preprocess/parser_raw.ml" +# 41427 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41451,15 +41450,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4557 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 41457 "src/ocaml/preprocess/parser_raw.ml" +# 41456 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 41463 "src/ocaml/preprocess/parser_raw.ml" +# 41462 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41486,15 +41485,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4559 "src/ocaml/preprocess/parser_raw.mly" +# 4578 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 41492 "src/ocaml/preprocess/parser_raw.ml" +# 41491 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 41498 "src/ocaml/preprocess/parser_raw.ml" +# 41497 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41528,15 +41527,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4555 "src/ocaml/preprocess/parser_raw.mly" +# 4574 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 41534 "src/ocaml/preprocess/parser_raw.ml" +# 41533 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 41540 "src/ocaml/preprocess/parser_raw.ml" +# 41539 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41570,15 +41569,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4557 "src/ocaml/preprocess/parser_raw.mly" +# 4576 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 41576 "src/ocaml/preprocess/parser_raw.ml" +# 41575 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 41582 "src/ocaml/preprocess/parser_raw.ml" +# 41581 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41612,15 +41611,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4559 "src/ocaml/preprocess/parser_raw.mly" +# 4578 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 41618 "src/ocaml/preprocess/parser_raw.ml" +# 41617 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 41624 "src/ocaml/preprocess/parser_raw.ml" +# 41623 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41638,14 +41637,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : (string Location.loc * Parsetree.jkind_annotation Location.loc option) = Obj.magic x in + let x : (string Asttypes.loc * Parsetree.jkind_annotation option) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = # 221 "" ( [ x ] ) -# 41649 "src/ocaml/preprocess/parser_raw.ml" +# 41648 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41669,15 +41668,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = Obj.magic xs in - let x : (string Location.loc * Parsetree.jkind_annotation Location.loc option) = Obj.magic x in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let x : (string Asttypes.loc * Parsetree.jkind_annotation option) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) = + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = # 223 "" ( x :: xs ) -# 41681 "src/ocaml/preprocess/parser_raw.ml" +# 41680 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41696,22 +41695,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 1085 "src/ocaml/preprocess/parser_raw.mly" +# 1129 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 41702 "src/ocaml/preprocess/parser_raw.ml" +# 41701 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : (string list) = let x = -# 5113 "src/ocaml/preprocess/parser_raw.mly" +# 5128 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 41710 "src/ocaml/preprocess/parser_raw.ml" +# 41709 "src/ocaml/preprocess/parser_raw.ml" in # 221 "" ( [ x ] ) -# 41715 "src/ocaml/preprocess/parser_raw.ml" +# 41714 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41737,22 +41736,22 @@ module Tables = struct } = _menhir_stack in let xs : (string list) = Obj.magic xs in let s : ( -# 1085 "src/ocaml/preprocess/parser_raw.mly" +# 1129 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 41743 "src/ocaml/preprocess/parser_raw.ml" +# 41742 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_xs_ in let _v : (string list) = let x = -# 5113 "src/ocaml/preprocess/parser_raw.mly" +# 5128 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 41751 "src/ocaml/preprocess/parser_raw.ml" +# 41750 "src/ocaml/preprocess/parser_raw.ml" in # 223 "" ( x :: xs ) -# 41756 "src/ocaml/preprocess/parser_raw.ml" +# 41755 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41775,14 +41774,14 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5142 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 41781 "src/ocaml/preprocess/parser_raw.ml" +# 41780 "src/ocaml/preprocess/parser_raw.ml" in -# 4003 "src/ocaml/preprocess/parser_raw.mly" +# 4034 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 41786 "src/ocaml/preprocess/parser_raw.ml" +# 41785 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41812,14 +41811,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5158 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 41818 "src/ocaml/preprocess/parser_raw.ml" +# 41817 "src/ocaml/preprocess/parser_raw.ml" in -# 4003 "src/ocaml/preprocess/parser_raw.mly" +# 4034 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 41823 "src/ocaml/preprocess/parser_raw.ml" +# 41822 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41842,26 +41841,26 @@ module Tables = struct let _startpos = _startpos_cs_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5142 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 41848 "src/ocaml/preprocess/parser_raw.ml" +# 41847 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 41854 "src/ocaml/preprocess/parser_raw.ml" +# 41853 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41859 "src/ocaml/preprocess/parser_raw.ml" +# 41858 "src/ocaml/preprocess/parser_raw.ml" in -# 4007 "src/ocaml/preprocess/parser_raw.mly" +# 4038 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 41865 "src/ocaml/preprocess/parser_raw.ml" +# 41864 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41891,26 +41890,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5158 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 41897 "src/ocaml/preprocess/parser_raw.ml" +# 41896 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 41903 "src/ocaml/preprocess/parser_raw.ml" +# 41902 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41908 "src/ocaml/preprocess/parser_raw.ml" +# 41907 "src/ocaml/preprocess/parser_raw.ml" in -# 4007 "src/ocaml/preprocess/parser_raw.mly" +# 4038 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 41914 "src/ocaml/preprocess/parser_raw.ml" +# 41913 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41947,33 +41946,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5142 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 41953 "src/ocaml/preprocess/parser_raw.ml" +# 41952 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 41960 "src/ocaml/preprocess/parser_raw.ml" +# 41959 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 41965 "src/ocaml/preprocess/parser_raw.ml" +# 41964 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 41971 "src/ocaml/preprocess/parser_raw.ml" +# 41970 "src/ocaml/preprocess/parser_raw.ml" in -# 4007 "src/ocaml/preprocess/parser_raw.mly" +# 4038 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 41977 "src/ocaml/preprocess/parser_raw.ml" +# 41976 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42017,33 +42016,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5158 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 42023 "src/ocaml/preprocess/parser_raw.ml" +# 42022 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 42030 "src/ocaml/preprocess/parser_raw.ml" +# 42029 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 42035 "src/ocaml/preprocess/parser_raw.ml" +# 42034 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42041 "src/ocaml/preprocess/parser_raw.ml" +# 42040 "src/ocaml/preprocess/parser_raw.ml" in -# 4007 "src/ocaml/preprocess/parser_raw.mly" +# 4038 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 42047 "src/ocaml/preprocess/parser_raw.ml" +# 42046 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42066,26 +42065,26 @@ module Tables = struct let _startpos = _startpos__3_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5142 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 42072 "src/ocaml/preprocess/parser_raw.ml" +# 42071 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 42078 "src/ocaml/preprocess/parser_raw.ml" +# 42077 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42083 "src/ocaml/preprocess/parser_raw.ml" +# 42082 "src/ocaml/preprocess/parser_raw.ml" in -# 4011 "src/ocaml/preprocess/parser_raw.mly" +# 4042 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 42089 "src/ocaml/preprocess/parser_raw.ml" +# 42088 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42115,26 +42114,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5158 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 42121 "src/ocaml/preprocess/parser_raw.ml" +# 42120 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 42127 "src/ocaml/preprocess/parser_raw.ml" +# 42126 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42132 "src/ocaml/preprocess/parser_raw.ml" +# 42131 "src/ocaml/preprocess/parser_raw.ml" in -# 4011 "src/ocaml/preprocess/parser_raw.mly" +# 4042 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 42138 "src/ocaml/preprocess/parser_raw.ml" +# 42137 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42171,33 +42170,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5142 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 42177 "src/ocaml/preprocess/parser_raw.ml" +# 42176 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 42184 "src/ocaml/preprocess/parser_raw.ml" +# 42183 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 42189 "src/ocaml/preprocess/parser_raw.ml" +# 42188 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42195 "src/ocaml/preprocess/parser_raw.ml" +# 42194 "src/ocaml/preprocess/parser_raw.ml" in -# 4011 "src/ocaml/preprocess/parser_raw.mly" +# 4042 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 42201 "src/ocaml/preprocess/parser_raw.ml" +# 42200 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42241,33 +42240,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5158 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 42247 "src/ocaml/preprocess/parser_raw.ml" +# 42246 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 42254 "src/ocaml/preprocess/parser_raw.ml" +# 42253 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 42259 "src/ocaml/preprocess/parser_raw.ml" +# 42258 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42265 "src/ocaml/preprocess/parser_raw.ml" +# 42264 "src/ocaml/preprocess/parser_raw.ml" in -# 4011 "src/ocaml/preprocess/parser_raw.mly" +# 4042 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 42271 "src/ocaml/preprocess/parser_raw.ml" +# 42270 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42304,26 +42303,26 @@ module Tables = struct let _startpos = _startpos__3_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5142 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 42310 "src/ocaml/preprocess/parser_raw.ml" +# 42309 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 42316 "src/ocaml/preprocess/parser_raw.ml" +# 42315 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42321 "src/ocaml/preprocess/parser_raw.ml" +# 42320 "src/ocaml/preprocess/parser_raw.ml" in -# 4015 "src/ocaml/preprocess/parser_raw.mly" +# 4046 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 42327 "src/ocaml/preprocess/parser_raw.ml" +# 42326 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42367,26 +42366,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5158 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 42373 "src/ocaml/preprocess/parser_raw.ml" +# 42372 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 124 "" ( None ) -# 42379 "src/ocaml/preprocess/parser_raw.ml" +# 42378 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42384 "src/ocaml/preprocess/parser_raw.ml" +# 42383 "src/ocaml/preprocess/parser_raw.ml" in -# 4015 "src/ocaml/preprocess/parser_raw.mly" +# 4046 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 42390 "src/ocaml/preprocess/parser_raw.ml" +# 42389 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42437,33 +42436,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5142 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 42443 "src/ocaml/preprocess/parser_raw.ml" +# 42442 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 42450 "src/ocaml/preprocess/parser_raw.ml" +# 42449 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 42455 "src/ocaml/preprocess/parser_raw.ml" +# 42454 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42461 "src/ocaml/preprocess/parser_raw.ml" +# 42460 "src/ocaml/preprocess/parser_raw.ml" in -# 4015 "src/ocaml/preprocess/parser_raw.mly" +# 4046 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 42467 "src/ocaml/preprocess/parser_raw.ml" +# 42466 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42521,33 +42520,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5158 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 42527 "src/ocaml/preprocess/parser_raw.ml" +# 42526 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 42534 "src/ocaml/preprocess/parser_raw.ml" +# 42533 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 42539 "src/ocaml/preprocess/parser_raw.ml" +# 42538 "src/ocaml/preprocess/parser_raw.ml" in -# 4019 "src/ocaml/preprocess/parser_raw.mly" +# 4050 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42545 "src/ocaml/preprocess/parser_raw.ml" +# 42544 "src/ocaml/preprocess/parser_raw.ml" in -# 4015 "src/ocaml/preprocess/parser_raw.mly" +# 4046 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 42551 "src/ocaml/preprocess/parser_raw.ml" +# 42550 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42585,24 +42584,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 4745 "src/ocaml/preprocess/parser_raw.mly" +# 4764 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = meth_list in Ptyp_object (f, c) ) -# 42591 "src/ocaml/preprocess/parser_raw.ml" +# 42590 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 42600 "src/ocaml/preprocess/parser_raw.ml" +# 42599 "src/ocaml/preprocess/parser_raw.ml" in -# 4749 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42606 "src/ocaml/preprocess/parser_raw.ml" +# 42605 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42633,24 +42632,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 4747 "src/ocaml/preprocess/parser_raw.mly" +# 4766 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_object ([], Closed) ) -# 42639 "src/ocaml/preprocess/parser_raw.ml" +# 42638 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 42648 "src/ocaml/preprocess/parser_raw.ml" +# 42647 "src/ocaml/preprocess/parser_raw.ml" in -# 4749 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42654 "src/ocaml/preprocess/parser_raw.ml" +# 42653 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42695,45 +42694,45 @@ module Tables = struct let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let me : (Parsetree.module_expr) = Obj.magic me in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = let attrs2 = + let _v : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined2 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42709 "src/ocaml/preprocess/parser_raw.ml" +# 42708 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42718 "src/ocaml/preprocess/parser_raw.ml" +# 42717 "src/ocaml/preprocess/parser_raw.ml" in let override = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 42724 "src/ocaml/preprocess/parser_raw.ml" +# 42723 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1974 "src/ocaml/preprocess/parser_raw.mly" +# 2015 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 42737 "src/ocaml/preprocess/parser_raw.ml" +# 42736 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42784,46 +42783,46 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let me : (Parsetree.module_expr) = Obj.magic me in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = let attrs2 = + let _v : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42799 "src/ocaml/preprocess/parser_raw.ml" +# 42798 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let attrs1 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42808 "src/ocaml/preprocess/parser_raw.ml" +# 42807 "src/ocaml/preprocess/parser_raw.ml" in let override = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 42814 "src/ocaml/preprocess/parser_raw.ml" +# 42813 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1974 "src/ocaml/preprocess/parser_raw.mly" +# 2015 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 42827 "src/ocaml/preprocess/parser_raw.ml" +# 42826 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42868,17 +42867,17 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = let attrs2 = + let _v : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42882 "src/ocaml/preprocess/parser_raw.ml" +# 42881 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -42888,36 +42887,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42894 "src/ocaml/preprocess/parser_raw.ml" +# 42893 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42902 "src/ocaml/preprocess/parser_raw.ml" +# 42901 "src/ocaml/preprocess/parser_raw.ml" in let override = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 42908 "src/ocaml/preprocess/parser_raw.ml" +# 42907 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1989 "src/ocaml/preprocess/parser_raw.mly" +# 2030 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 42921 "src/ocaml/preprocess/parser_raw.ml" +# 42920 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42968,18 +42967,18 @@ module Tables = struct let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = let attrs2 = + let _v : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 42983 "src/ocaml/preprocess/parser_raw.ml" +# 42982 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -42989,36 +42988,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 42995 "src/ocaml/preprocess/parser_raw.ml" +# 42994 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43003 "src/ocaml/preprocess/parser_raw.ml" +# 43002 "src/ocaml/preprocess/parser_raw.ml" in let override = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 43009 "src/ocaml/preprocess/parser_raw.ml" +# 43008 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1989 "src/ocaml/preprocess/parser_raw.mly" +# 2030 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 43022 "src/ocaml/preprocess/parser_raw.ml" +# 43021 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43037,17 +43036,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1068 "src/ocaml/preprocess/parser_raw.mly" +# 1112 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43043 "src/ocaml/preprocess/parser_raw.ml" +# 43042 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4962 "src/ocaml/preprocess/parser_raw.mly" +# 4977 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43051 "src/ocaml/preprocess/parser_raw.ml" +# 43050 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43066,17 +43065,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1019 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43072 "src/ocaml/preprocess/parser_raw.ml" +# 43071 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4963 "src/ocaml/preprocess/parser_raw.mly" +# 4978 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43080 "src/ocaml/preprocess/parser_raw.ml" +# 43079 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43095,17 +43094,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1020 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43101 "src/ocaml/preprocess/parser_raw.ml" +# 43100 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4964 "src/ocaml/preprocess/parser_raw.mly" +# 4979 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43109 "src/ocaml/preprocess/parser_raw.ml" +# 43108 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43145,17 +43144,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43151 "src/ocaml/preprocess/parser_raw.ml" +# 43150 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (string) = -# 4965 "src/ocaml/preprocess/parser_raw.mly" +# 4980 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"(" ^ _3 ^ ")" ) -# 43159 "src/ocaml/preprocess/parser_raw.ml" +# 43158 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43202,17 +43201,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43208 "src/ocaml/preprocess/parser_raw.ml" +# 43207 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (string) = -# 4966 "src/ocaml/preprocess/parser_raw.mly" +# 4981 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "(" ^ _3 ^ ")<-" ) -# 43216 "src/ocaml/preprocess/parser_raw.ml" +# 43215 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43252,17 +43251,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43258 "src/ocaml/preprocess/parser_raw.ml" +# 43257 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (string) = -# 4967 "src/ocaml/preprocess/parser_raw.mly" +# 4982 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"[" ^ _3 ^ "]" ) -# 43266 "src/ocaml/preprocess/parser_raw.ml" +# 43265 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43309,17 +43308,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43315 "src/ocaml/preprocess/parser_raw.ml" +# 43314 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (string) = -# 4968 "src/ocaml/preprocess/parser_raw.mly" +# 4983 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "[" ^ _3 ^ "]<-" ) -# 43323 "src/ocaml/preprocess/parser_raw.ml" +# 43322 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43359,17 +43358,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43365 "src/ocaml/preprocess/parser_raw.ml" +# 43364 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (string) = -# 4969 "src/ocaml/preprocess/parser_raw.mly" +# 4984 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"{" ^ _3 ^ "}" ) -# 43373 "src/ocaml/preprocess/parser_raw.ml" +# 43372 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43416,17 +43415,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43422 "src/ocaml/preprocess/parser_raw.ml" +# 43421 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (string) = -# 4970 "src/ocaml/preprocess/parser_raw.mly" +# 4985 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "{" ^ _3 ^ "}<-" ) -# 43430 "src/ocaml/preprocess/parser_raw.ml" +# 43429 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43445,17 +43444,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1081 "src/ocaml/preprocess/parser_raw.mly" +# 1125 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43451 "src/ocaml/preprocess/parser_raw.ml" +# 43450 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4971 "src/ocaml/preprocess/parser_raw.mly" +# 4986 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43459 "src/ocaml/preprocess/parser_raw.ml" +# 43458 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43478,9 +43477,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4972 "src/ocaml/preprocess/parser_raw.mly" +# 4987 "src/ocaml/preprocess/parser_raw.mly" ( "!" ) -# 43484 "src/ocaml/preprocess/parser_raw.ml" +# 43483 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43499,22 +43498,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1011 "src/ocaml/preprocess/parser_raw.mly" +# 1055 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43505 "src/ocaml/preprocess/parser_raw.ml" +# 43504 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (string) = let _1 = -# 4980 "src/ocaml/preprocess/parser_raw.mly" +# 4995 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 43513 "src/ocaml/preprocess/parser_raw.ml" +# 43512 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43518 "src/ocaml/preprocess/parser_raw.ml" +# 43517 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43537,14 +43536,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4982 "src/ocaml/preprocess/parser_raw.mly" +# 4997 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 43543 "src/ocaml/preprocess/parser_raw.ml" +# 43542 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43548 "src/ocaml/preprocess/parser_raw.ml" +# 43547 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43567,14 +43566,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4983 "src/ocaml/preprocess/parser_raw.mly" +# 4998 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 43573 "src/ocaml/preprocess/parser_raw.ml" +# 43572 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43578 "src/ocaml/preprocess/parser_raw.ml" +# 43577 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43593,22 +43592,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1014 "src/ocaml/preprocess/parser_raw.mly" +# 1058 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43599 "src/ocaml/preprocess/parser_raw.ml" +# 43598 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (string) = let _1 = -# 4984 "src/ocaml/preprocess/parser_raw.mly" +# 4999 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 43607 "src/ocaml/preprocess/parser_raw.ml" +# 43606 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43612 "src/ocaml/preprocess/parser_raw.ml" +# 43611 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43627,22 +43626,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1015 "src/ocaml/preprocess/parser_raw.mly" +# 1059 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43633 "src/ocaml/preprocess/parser_raw.ml" +# 43632 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (string) = let _1 = -# 4985 "src/ocaml/preprocess/parser_raw.mly" +# 5000 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 43641 "src/ocaml/preprocess/parser_raw.ml" +# 43640 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43646 "src/ocaml/preprocess/parser_raw.ml" +# 43645 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43661,29 +43660,29 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1016 "src/ocaml/preprocess/parser_raw.mly" +# 1060 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43667 "src/ocaml/preprocess/parser_raw.ml" +# 43666 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (string) = let _1 = let op = -# 4976 "src/ocaml/preprocess/parser_raw.mly" +# 4991 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 43676 "src/ocaml/preprocess/parser_raw.ml" +# 43675 "src/ocaml/preprocess/parser_raw.ml" in -# 4986 "src/ocaml/preprocess/parser_raw.mly" +# 5001 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 43681 "src/ocaml/preprocess/parser_raw.ml" +# 43680 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43687 "src/ocaml/preprocess/parser_raw.ml" +# 43686 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43707,20 +43706,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (string) = let _1 = let op = -# 4977 "src/ocaml/preprocess/parser_raw.mly" +# 4992 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 43713 "src/ocaml/preprocess/parser_raw.ml" +# 43712 "src/ocaml/preprocess/parser_raw.ml" in -# 4986 "src/ocaml/preprocess/parser_raw.mly" +# 5001 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 43718 "src/ocaml/preprocess/parser_raw.ml" +# 43717 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43724 "src/ocaml/preprocess/parser_raw.ml" +# 43723 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43739,22 +43738,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1017 "src/ocaml/preprocess/parser_raw.mly" +# 1061 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43745 "src/ocaml/preprocess/parser_raw.ml" +# 43744 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (string) = let _1 = -# 4987 "src/ocaml/preprocess/parser_raw.mly" +# 5002 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 43753 "src/ocaml/preprocess/parser_raw.ml" +# 43752 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43758 "src/ocaml/preprocess/parser_raw.ml" +# 43757 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43777,14 +43776,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4988 "src/ocaml/preprocess/parser_raw.mly" +# 5003 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 43783 "src/ocaml/preprocess/parser_raw.ml" +# 43782 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43788 "src/ocaml/preprocess/parser_raw.ml" +# 43787 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43807,14 +43806,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4989 "src/ocaml/preprocess/parser_raw.mly" +# 5004 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 43813 "src/ocaml/preprocess/parser_raw.ml" +# 43812 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43818 "src/ocaml/preprocess/parser_raw.ml" +# 43817 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43837,14 +43836,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4990 "src/ocaml/preprocess/parser_raw.mly" +# 5005 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 43843 "src/ocaml/preprocess/parser_raw.ml" +# 43842 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43848 "src/ocaml/preprocess/parser_raw.ml" +# 43847 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43867,14 +43866,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4991 "src/ocaml/preprocess/parser_raw.mly" +# 5006 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 43873 "src/ocaml/preprocess/parser_raw.ml" +# 43872 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43878 "src/ocaml/preprocess/parser_raw.ml" +# 43877 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43897,14 +43896,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4992 "src/ocaml/preprocess/parser_raw.mly" +# 5007 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 43903 "src/ocaml/preprocess/parser_raw.ml" +# 43902 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43908 "src/ocaml/preprocess/parser_raw.ml" +# 43907 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43927,14 +43926,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4993 "src/ocaml/preprocess/parser_raw.mly" +# 5008 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 43933 "src/ocaml/preprocess/parser_raw.ml" +# 43932 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43938 "src/ocaml/preprocess/parser_raw.ml" +# 43937 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43957,14 +43956,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4994 "src/ocaml/preprocess/parser_raw.mly" +# 5009 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 43963 "src/ocaml/preprocess/parser_raw.ml" +# 43962 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43968 "src/ocaml/preprocess/parser_raw.ml" +# 43967 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43987,14 +43986,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4995 "src/ocaml/preprocess/parser_raw.mly" +# 5010 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 43993 "src/ocaml/preprocess/parser_raw.ml" +# 43992 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 43998 "src/ocaml/preprocess/parser_raw.ml" +# 43997 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44017,14 +44016,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4996 "src/ocaml/preprocess/parser_raw.mly" +# 5011 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 44023 "src/ocaml/preprocess/parser_raw.ml" +# 44022 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44028 "src/ocaml/preprocess/parser_raw.ml" +# 44027 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44047,14 +44046,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4997 "src/ocaml/preprocess/parser_raw.mly" +# 5012 "src/ocaml/preprocess/parser_raw.mly" (">") -# 44053 "src/ocaml/preprocess/parser_raw.ml" +# 44052 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44058 "src/ocaml/preprocess/parser_raw.ml" +# 44057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44077,14 +44076,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4998 "src/ocaml/preprocess/parser_raw.mly" +# 5013 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 44083 "src/ocaml/preprocess/parser_raw.ml" +# 44082 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44088 "src/ocaml/preprocess/parser_raw.ml" +# 44087 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44107,14 +44106,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 4999 "src/ocaml/preprocess/parser_raw.mly" +# 5014 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 44113 "src/ocaml/preprocess/parser_raw.ml" +# 44112 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44118 "src/ocaml/preprocess/parser_raw.ml" +# 44117 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44137,14 +44136,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 5000 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 44143 "src/ocaml/preprocess/parser_raw.ml" +# 44142 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44148 "src/ocaml/preprocess/parser_raw.ml" +# 44147 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44167,14 +44166,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 5001 "src/ocaml/preprocess/parser_raw.mly" +# 5016 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 44173 "src/ocaml/preprocess/parser_raw.ml" +# 44172 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44178 "src/ocaml/preprocess/parser_raw.ml" +# 44177 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44197,14 +44196,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = let _1 = -# 5002 "src/ocaml/preprocess/parser_raw.mly" +# 5017 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 44203 "src/ocaml/preprocess/parser_raw.ml" +# 44202 "src/ocaml/preprocess/parser_raw.ml" in -# 4973 "src/ocaml/preprocess/parser_raw.mly" +# 4988 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44208 "src/ocaml/preprocess/parser_raw.ml" +# 44207 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44227,9 +44226,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (bool) = -# 4858 "src/ocaml/preprocess/parser_raw.mly" +# 4873 "src/ocaml/preprocess/parser_raw.mly" ( true ) -# 44233 "src/ocaml/preprocess/parser_raw.ml" +# 44232 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44245,9 +44244,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (bool) = -# 4859 "src/ocaml/preprocess/parser_raw.mly" +# 4874 "src/ocaml/preprocess/parser_raw.mly" ( false ) -# 44251 "src/ocaml/preprocess/parser_raw.ml" +# 44250 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44265,7 +44264,7 @@ module Tables = struct let _v : (unit option) = # 114 "" ( None ) -# 44269 "src/ocaml/preprocess/parser_raw.ml" +# 44268 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44290,7 +44289,7 @@ module Tables = struct let _v : (unit option) = # 116 "" ( Some x ) -# 44294 "src/ocaml/preprocess/parser_raw.ml" +# 44293 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44308,7 +44307,7 @@ module Tables = struct let _v : (unit option) = # 114 "" ( None ) -# 44312 "src/ocaml/preprocess/parser_raw.ml" +# 44311 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44333,7 +44332,7 @@ module Tables = struct let _v : (unit option) = # 116 "" ( Some x ) -# 44337 "src/ocaml/preprocess/parser_raw.ml" +# 44336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44348,10 +44347,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) = + let _v : (Parsetree.jkind_annotation option) = # 114 "" ( None ) -# 44355 "src/ocaml/preprocess/parser_raw.ml" +# 44354 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44369,14 +44368,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic x in + let x : (Parsetree.jkind_annotation) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) = + let _v : (Parsetree.jkind_annotation option) = # 116 "" ( Some x ) -# 44380 "src/ocaml/preprocess/parser_raw.ml" +# 44379 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44391,10 +44390,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (string Location.loc option) = + let _v : (string Asttypes.loc option) = # 114 "" ( None ) -# 44398 "src/ocaml/preprocess/parser_raw.ml" +# 44397 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44419,36 +44418,36 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44425 "src/ocaml/preprocess/parser_raw.ml" +# 44424 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (string Location.loc option) = let x = + let _v : (string Asttypes.loc option) = let x = let x = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 44440 "src/ocaml/preprocess/parser_raw.ml" +# 44439 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 44446 "src/ocaml/preprocess/parser_raw.ml" +# 44445 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 44452 "src/ocaml/preprocess/parser_raw.ml" +# 44451 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44466,7 +44465,7 @@ module Tables = struct let _v : (Parsetree.core_type option) = # 114 "" ( None ) -# 44470 "src/ocaml/preprocess/parser_raw.ml" +# 44469 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44498,12 +44497,12 @@ module Tables = struct let _v : (Parsetree.core_type option) = let x = # 183 "" ( x ) -# 44502 "src/ocaml/preprocess/parser_raw.ml" +# 44501 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 44507 "src/ocaml/preprocess/parser_raw.ml" +# 44506 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44521,7 +44520,7 @@ module Tables = struct let _v : (Parsetree.core_type option) = # 114 "" ( None ) -# 44525 "src/ocaml/preprocess/parser_raw.ml" +# 44524 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44553,12 +44552,12 @@ module Tables = struct let _v : (Parsetree.core_type option) = let x = # 183 "" ( x ) -# 44557 "src/ocaml/preprocess/parser_raw.ml" +# 44556 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 44562 "src/ocaml/preprocess/parser_raw.ml" +# 44561 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44576,7 +44575,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 114 "" ( None ) -# 44580 "src/ocaml/preprocess/parser_raw.ml" +# 44579 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44609,26 +44608,26 @@ module Tables = struct let x = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44615 "src/ocaml/preprocess/parser_raw.ml" +# 44614 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44620 "src/ocaml/preprocess/parser_raw.ml" +# 44619 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 44626 "src/ocaml/preprocess/parser_raw.ml" +# 44625 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 44632 "src/ocaml/preprocess/parser_raw.ml" +# 44631 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44672,7 +44671,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -44687,18 +44686,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 44691 "src/ocaml/preprocess/parser_raw.ml" +# 44690 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 44696 "src/ocaml/preprocess/parser_raw.ml" +# 44695 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 44702 "src/ocaml/preprocess/parser_raw.ml" +# 44701 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -44707,22 +44706,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44713 "src/ocaml/preprocess/parser_raw.ml" +# 44712 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 44719 "src/ocaml/preprocess/parser_raw.ml" +# 44718 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -44735,25 +44734,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 44739 "src/ocaml/preprocess/parser_raw.ml" +# 44738 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 44745 "src/ocaml/preprocess/parser_raw.ml" +# 44744 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 44751 "src/ocaml/preprocess/parser_raw.ml" +# 44750 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 44757 "src/ocaml/preprocess/parser_raw.ml" +# 44756 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44771,7 +44770,7 @@ module Tables = struct let _v : (Parsetree.module_type option) = # 114 "" ( None ) -# 44775 "src/ocaml/preprocess/parser_raw.ml" +# 44774 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44803,12 +44802,12 @@ module Tables = struct let _v : (Parsetree.module_type option) = let x = # 183 "" ( x ) -# 44807 "src/ocaml/preprocess/parser_raw.ml" +# 44806 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 44812 "src/ocaml/preprocess/parser_raw.ml" +# 44811 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44826,7 +44825,7 @@ module Tables = struct let _v : (Parsetree.pattern option) = # 114 "" ( None ) -# 44830 "src/ocaml/preprocess/parser_raw.ml" +# 44829 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44858,12 +44857,12 @@ module Tables = struct let _v : (Parsetree.pattern option) = let x = # 183 "" ( x ) -# 44862 "src/ocaml/preprocess/parser_raw.ml" +# 44861 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 44867 "src/ocaml/preprocess/parser_raw.ml" +# 44866 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44881,7 +44880,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 114 "" ( None ) -# 44885 "src/ocaml/preprocess/parser_raw.ml" +# 44884 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44913,12 +44912,12 @@ module Tables = struct let _v : (Parsetree.expression option) = let x = # 183 "" ( x ) -# 44917 "src/ocaml/preprocess/parser_raw.ml" +# 44916 "src/ocaml/preprocess/parser_raw.ml" in # 116 "" ( Some x ) -# 44922 "src/ocaml/preprocess/parser_raw.ml" +# 44921 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44936,7 +44935,7 @@ module Tables = struct let _v : (Parsetree.type_constraint option) = # 114 "" ( None ) -# 44940 "src/ocaml/preprocess/parser_raw.ml" +# 44939 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44961,7 +44960,7 @@ module Tables = struct let _v : (Parsetree.type_constraint option) = # 116 "" ( Some x ) -# 44965 "src/ocaml/preprocess/parser_raw.ml" +# 44964 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44977,9 +44976,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.modalities) = -# 4617 "src/ocaml/preprocess/parser_raw.mly" +# 4636 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 44983 "src/ocaml/preprocess/parser_raw.ml" +# 44982 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45011,15 +45010,15 @@ module Tables = struct let _v : (Parsetree.modalities) = let _2 = let _1 = _1_inlined1 in -# 4613 "src/ocaml/preprocess/parser_raw.mly" +# 4632 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45017 "src/ocaml/preprocess/parser_raw.ml" +# 45016 "src/ocaml/preprocess/parser_raw.ml" in -# 4618 "src/ocaml/preprocess/parser_raw.mly" +# 4637 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 45023 "src/ocaml/preprocess/parser_raw.ml" +# 45022 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45038,17 +45037,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1061 "src/ocaml/preprocess/parser_raw.mly" +# 1105 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45044 "src/ocaml/preprocess/parser_raw.ml" +# 45043 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5213 "src/ocaml/preprocess/parser_raw.mly" +# 5228 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45052 "src/ocaml/preprocess/parser_raw.ml" +# 45051 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45080,18 +45079,18 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 45086 "src/ocaml/preprocess/parser_raw.ml" +# 45085 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (string) = -# 5214 "src/ocaml/preprocess/parser_raw.mly" +# 5229 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 45095 "src/ocaml/preprocess/parser_raw.ml" +# 45094 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45145,9 +45144,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1724 "src/ocaml/preprocess/parser_raw.mly" +# 1770 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, mty)) ) -# 45151 "src/ocaml/preprocess/parser_raw.ml" +# 45150 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45184,9 +45183,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.module_expr) = -# 1731 "src/ocaml/preprocess/parser_raw.mly" +# 1777 "src/ocaml/preprocess/parser_raw.mly" ( me (* TODO consider reloc *) ) -# 45190 "src/ocaml/preprocess/parser_raw.ml" +# 45189 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45240,37 +45239,37 @@ module Tables = struct let _1 = _1_inlined2 in let e = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45246 "src/ocaml/preprocess/parser_raw.ml" +# 45245 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45251 "src/ocaml/preprocess/parser_raw.ml" +# 45250 "src/ocaml/preprocess/parser_raw.ml" in -# 1754 "src/ocaml/preprocess/parser_raw.mly" +# 1800 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 45257 "src/ocaml/preprocess/parser_raw.ml" +# 45256 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45265 "src/ocaml/preprocess/parser_raw.ml" +# 45264 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1739 "src/ocaml/preprocess/parser_raw.mly" +# 1785 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 45274 "src/ocaml/preprocess/parser_raw.ml" +# 45273 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45333,7 +45332,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -45350,18 +45349,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 45354 "src/ocaml/preprocess/parser_raw.ml" +# 45353 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 45359 "src/ocaml/preprocess/parser_raw.ml" +# 45358 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 45365 "src/ocaml/preprocess/parser_raw.ml" +# 45364 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -45370,22 +45369,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45376 "src/ocaml/preprocess/parser_raw.ml" +# 45375 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 45382 "src/ocaml/preprocess/parser_raw.ml" +# 45381 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -45398,36 +45397,36 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 45402 "src/ocaml/preprocess/parser_raw.ml" +# 45401 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45408 "src/ocaml/preprocess/parser_raw.ml" +# 45407 "src/ocaml/preprocess/parser_raw.ml" in -# 1754 "src/ocaml/preprocess/parser_raw.mly" +# 1800 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 45414 "src/ocaml/preprocess/parser_raw.ml" +# 45413 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45422 "src/ocaml/preprocess/parser_raw.ml" +# 45421 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1739 "src/ocaml/preprocess/parser_raw.mly" +# 1785 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 45431 "src/ocaml/preprocess/parser_raw.ml" +# 45430 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45499,24 +45498,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 45507 "src/ocaml/preprocess/parser_raw.ml" +# 45506 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos__1_inlined1_ in let e = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45515 "src/ocaml/preprocess/parser_raw.ml" +# 45514 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45520 "src/ocaml/preprocess/parser_raw.ml" +# 45519 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -45524,26 +45523,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1756 "src/ocaml/preprocess/parser_raw.mly" +# 1802 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_with_modes ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 45530 "src/ocaml/preprocess/parser_raw.ml" +# 45529 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45538 "src/ocaml/preprocess/parser_raw.ml" +# 45537 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1739 "src/ocaml/preprocess/parser_raw.mly" +# 1785 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 45547 "src/ocaml/preprocess/parser_raw.ml" +# 45546 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45620,7 +45619,7 @@ module Tables = struct let _2_inlined1 : unit = Obj.magic _2_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -45636,11 +45635,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 45644 "src/ocaml/preprocess/parser_raw.ml" +# 45643 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos__1_inlined3_ in @@ -45651,18 +45650,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 45655 "src/ocaml/preprocess/parser_raw.ml" +# 45654 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 45660 "src/ocaml/preprocess/parser_raw.ml" +# 45659 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 45666 "src/ocaml/preprocess/parser_raw.ml" +# 45665 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -45671,22 +45670,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45677 "src/ocaml/preprocess/parser_raw.ml" +# 45676 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 45683 "src/ocaml/preprocess/parser_raw.ml" +# 45682 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -45699,13 +45698,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 45703 "src/ocaml/preprocess/parser_raw.ml" +# 45702 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45709 "src/ocaml/preprocess/parser_raw.ml" +# 45708 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -45713,26 +45712,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1756 "src/ocaml/preprocess/parser_raw.mly" +# 1802 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_with_modes ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 45719 "src/ocaml/preprocess/parser_raw.ml" +# 45718 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45727 "src/ocaml/preprocess/parser_raw.ml" +# 45726 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1739 "src/ocaml/preprocess/parser_raw.mly" +# 1785 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 45736 "src/ocaml/preprocess/parser_raw.ml" +# 45735 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45818,11 +45817,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 45826 "src/ocaml/preprocess/parser_raw.ml" +# 45825 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined2_ in @@ -45832,23 +45831,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 45840 "src/ocaml/preprocess/parser_raw.ml" +# 45839 "src/ocaml/preprocess/parser_raw.ml" in let e = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45847 "src/ocaml/preprocess/parser_raw.ml" +# 45846 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45852 "src/ocaml/preprocess/parser_raw.ml" +# 45851 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -45856,26 +45855,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1758 "src/ocaml/preprocess/parser_raw.mly" +# 1804 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 45862 "src/ocaml/preprocess/parser_raw.ml" +# 45861 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45870 "src/ocaml/preprocess/parser_raw.ml" +# 45869 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1739 "src/ocaml/preprocess/parser_raw.mly" +# 1785 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 45879 "src/ocaml/preprocess/parser_raw.ml" +# 45878 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45966,7 +45965,7 @@ module Tables = struct let _2_inlined1 : unit = Obj.magic _2_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -45982,11 +45981,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 45990 "src/ocaml/preprocess/parser_raw.ml" +# 45989 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined4_ in @@ -45996,11 +45995,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 46004 "src/ocaml/preprocess/parser_raw.ml" +# 46003 "src/ocaml/preprocess/parser_raw.ml" in let e = @@ -46010,18 +46009,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 46014 "src/ocaml/preprocess/parser_raw.ml" +# 46013 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 46019 "src/ocaml/preprocess/parser_raw.ml" +# 46018 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 46025 "src/ocaml/preprocess/parser_raw.ml" +# 46024 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -46030,22 +46029,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46036 "src/ocaml/preprocess/parser_raw.ml" +# 46035 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 46042 "src/ocaml/preprocess/parser_raw.ml" +# 46041 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -46058,13 +46057,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 46062 "src/ocaml/preprocess/parser_raw.ml" +# 46061 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46068 "src/ocaml/preprocess/parser_raw.ml" +# 46067 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -46072,26 +46071,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1758 "src/ocaml/preprocess/parser_raw.mly" +# 1804 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 46078 "src/ocaml/preprocess/parser_raw.ml" +# 46077 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46086 "src/ocaml/preprocess/parser_raw.ml" +# 46085 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1739 "src/ocaml/preprocess/parser_raw.mly" +# 1785 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 46095 "src/ocaml/preprocess/parser_raw.ml" +# 46094 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46163,24 +46162,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 46171 "src/ocaml/preprocess/parser_raw.ml" +# 46170 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined1_ in let e = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46179 "src/ocaml/preprocess/parser_raw.ml" +# 46178 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46184 "src/ocaml/preprocess/parser_raw.ml" +# 46183 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -46188,26 +46187,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1760 "src/ocaml/preprocess/parser_raw.mly" +# 1806 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 46194 "src/ocaml/preprocess/parser_raw.ml" +# 46193 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46202 "src/ocaml/preprocess/parser_raw.ml" +# 46201 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1739 "src/ocaml/preprocess/parser_raw.mly" +# 1785 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 46211 "src/ocaml/preprocess/parser_raw.ml" +# 46210 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46284,7 +46283,7 @@ module Tables = struct let _2_inlined1 : unit = Obj.magic _2_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -46300,11 +46299,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 46308 "src/ocaml/preprocess/parser_raw.ml" +# 46307 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined3_ in @@ -46315,18 +46314,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 46319 "src/ocaml/preprocess/parser_raw.ml" +# 46318 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 46324 "src/ocaml/preprocess/parser_raw.ml" +# 46323 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 46330 "src/ocaml/preprocess/parser_raw.ml" +# 46329 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -46335,22 +46334,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46341 "src/ocaml/preprocess/parser_raw.ml" +# 46340 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 46347 "src/ocaml/preprocess/parser_raw.ml" +# 46346 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -46363,13 +46362,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 46367 "src/ocaml/preprocess/parser_raw.ml" +# 46366 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46373 "src/ocaml/preprocess/parser_raw.ml" +# 46372 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -46377,26 +46376,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1760 "src/ocaml/preprocess/parser_raw.mly" +# 1806 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 46383 "src/ocaml/preprocess/parser_raw.ml" +# 46382 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46391 "src/ocaml/preprocess/parser_raw.ml" +# 46390 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1739 "src/ocaml/preprocess/parser_raw.mly" +# 1785 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 46400 "src/ocaml/preprocess/parser_raw.ml" +# 46399 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46419,9 +46418,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = -# 4104 "src/ocaml/preprocess/parser_raw.mly" +# 4135 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46425 "src/ocaml/preprocess/parser_raw.ml" +# 46424 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46469,7 +46468,7 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _2 : (string) = Obj.magic _2 in @@ -46483,29 +46482,30 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46489 "src/ocaml/preprocess/parser_raw.ml" +# 46488 "src/ocaml/preprocess/parser_raw.ml" in let name = -# 4125 "src/ocaml/preprocess/parser_raw.mly" +# 4156 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 46495 "src/ocaml/preprocess/parser_raw.ml" +# 46494 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_name_ = _startpos__1_ in let _endpos = _endpos_jkind_ in let _symbolstartpos = _startpos_name_ in let _sloc = (_symbolstartpos, _endpos) in -# 4099 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Core_type.core_type_of ~loc:(make_loc _sloc) ~attrs - (Jtyp_layout (Ltyp_var { name; jkind })) ) +# 4129 "src/ocaml/preprocess/parser_raw.mly" + ( match name with + | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) + | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) # 46505 "src/ocaml/preprocess/parser_raw.ml" in -# 4106 "src/ocaml/preprocess/parser_raw.mly" +# 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) # 46511 "src/ocaml/preprocess/parser_raw.ml" in @@ -46549,7 +46549,7 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -46562,13 +46562,13 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 46568 "src/ocaml/preprocess/parser_raw.ml" in let name = -# 4127 "src/ocaml/preprocess/parser_raw.mly" +# 4158 "src/ocaml/preprocess/parser_raw.mly" ( None ) # 46574 "src/ocaml/preprocess/parser_raw.ml" in @@ -46577,16 +46577,17 @@ module Tables = struct let _symbolstartpos = _startpos_name_ in let _sloc = (_symbolstartpos, _endpos) in -# 4099 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Core_type.core_type_of ~loc:(make_loc _sloc) ~attrs - (Jtyp_layout (Ltyp_var { name; jkind })) ) -# 46584 "src/ocaml/preprocess/parser_raw.ml" +# 4129 "src/ocaml/preprocess/parser_raw.mly" + ( match name with + | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) + | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) +# 46585 "src/ocaml/preprocess/parser_raw.ml" in -# 4106 "src/ocaml/preprocess/parser_raw.mly" +# 4137 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 46590 "src/ocaml/preprocess/parser_raw.ml" +# 46591 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46616,9 +46617,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1633 "src/ocaml/preprocess/parser_raw.mly" +# 1674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46622 "src/ocaml/preprocess/parser_raw.ml" +# 46623 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46648,9 +46649,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1618 "src/ocaml/preprocess/parser_raw.mly" +# 1659 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46654 "src/ocaml/preprocess/parser_raw.ml" +# 46655 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46680,9 +46681,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = -# 1593 "src/ocaml/preprocess/parser_raw.mly" +# 1634 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46686 "src/ocaml/preprocess/parser_raw.ml" +# 46687 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46712,9 +46713,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 1598 "src/ocaml/preprocess/parser_raw.mly" +# 1639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46718 "src/ocaml/preprocess/parser_raw.ml" +# 46719 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46744,9 +46745,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1623 "src/ocaml/preprocess/parser_raw.mly" +# 1664 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46750 "src/ocaml/preprocess/parser_raw.ml" +# 46751 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46776,9 +46777,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1628 "src/ocaml/preprocess/parser_raw.mly" +# 1669 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46782 "src/ocaml/preprocess/parser_raw.ml" +# 46783 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46808,9 +46809,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_expr) = -# 1588 "src/ocaml/preprocess/parser_raw.mly" +# 1629 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46814 "src/ocaml/preprocess/parser_raw.ml" +# 46815 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46840,9 +46841,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_type) = -# 1583 "src/ocaml/preprocess/parser_raw.mly" +# 1624 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46846 "src/ocaml/preprocess/parser_raw.ml" +# 46847 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46872,9 +46873,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1608 "src/ocaml/preprocess/parser_raw.mly" +# 1649 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46878 "src/ocaml/preprocess/parser_raw.ml" +# 46879 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46904,9 +46905,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = -# 1603 "src/ocaml/preprocess/parser_raw.mly" +# 1644 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46910 "src/ocaml/preprocess/parser_raw.ml" +# 46911 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46936,9 +46937,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1613 "src/ocaml/preprocess/parser_raw.mly" +# 1654 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46942 "src/ocaml/preprocess/parser_raw.ml" +# 46943 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46980,17 +46981,17 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 3642 "src/ocaml/preprocess/parser_raw.mly" +# 3673 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 46988 "src/ocaml/preprocess/parser_raw.ml" +# 46989 "src/ocaml/preprocess/parser_raw.ml" in -# 3630 "src/ocaml/preprocess/parser_raw.mly" +# 3661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 46994 "src/ocaml/preprocess/parser_raw.ml" +# 46995 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47020,14 +47021,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = -# 3646 "src/ocaml/preprocess/parser_raw.mly" +# 3677 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 47026 "src/ocaml/preprocess/parser_raw.ml" +# 47027 "src/ocaml/preprocess/parser_raw.ml" in -# 3630 "src/ocaml/preprocess/parser_raw.mly" +# 3661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47031 "src/ocaml/preprocess/parser_raw.ml" +# 47032 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47050,14 +47051,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = -# 3648 "src/ocaml/preprocess/parser_raw.mly" +# 3679 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47056 "src/ocaml/preprocess/parser_raw.ml" +# 47057 "src/ocaml/preprocess/parser_raw.ml" in -# 3630 "src/ocaml/preprocess/parser_raw.mly" +# 3661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47061 "src/ocaml/preprocess/parser_raw.ml" +# 47062 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47102,15 +47103,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47108 "src/ocaml/preprocess/parser_raw.ml" +# 47109 "src/ocaml/preprocess/parser_raw.ml" in -# 3651 "src/ocaml/preprocess/parser_raw.mly" +# 3682 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_alias(_1, _3) ) -# 47114 "src/ocaml/preprocess/parser_raw.ml" +# 47115 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -47118,21 +47119,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47124 "src/ocaml/preprocess/parser_raw.ml" +# 47125 "src/ocaml/preprocess/parser_raw.ml" in -# 3660 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47130 "src/ocaml/preprocess/parser_raw.ml" +# 47131 "src/ocaml/preprocess/parser_raw.ml" in -# 3630 "src/ocaml/preprocess/parser_raw.mly" +# 3661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47136 "src/ocaml/preprocess/parser_raw.ml" +# 47137 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47171,30 +47172,30 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3657 "src/ocaml/preprocess/parser_raw.mly" +# 3688 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 47177 "src/ocaml/preprocess/parser_raw.ml" +# 47178 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47186 "src/ocaml/preprocess/parser_raw.ml" +# 47187 "src/ocaml/preprocess/parser_raw.ml" in -# 3660 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47192 "src/ocaml/preprocess/parser_raw.ml" +# 47193 "src/ocaml/preprocess/parser_raw.ml" in -# 3630 "src/ocaml/preprocess/parser_raw.mly" +# 3661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47198 "src/ocaml/preprocess/parser_raw.ml" +# 47199 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47221,17 +47222,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3662 "src/ocaml/preprocess/parser_raw.mly" +# 3693 "src/ocaml/preprocess/parser_raw.mly" ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 47229 "src/ocaml/preprocess/parser_raw.ml" +# 47230 "src/ocaml/preprocess/parser_raw.ml" in -# 3630 "src/ocaml/preprocess/parser_raw.mly" +# 3661 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47235 "src/ocaml/preprocess/parser_raw.ml" +# 47236 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47269,7 +47270,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.pattern) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -47279,24 +47280,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47285 "src/ocaml/preprocess/parser_raw.ml" +# 47286 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47291 "src/ocaml/preprocess/parser_raw.ml" +# 47292 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3632 "src/ocaml/preprocess/parser_raw.mly" +# 3663 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2) -# 47300 "src/ocaml/preprocess/parser_raw.ml" +# 47301 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47319,9 +47320,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3726 "src/ocaml/preprocess/parser_raw.mly" +# 3757 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47325 "src/ocaml/preprocess/parser_raw.ml" +# 47326 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47357,15 +47358,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47363 "src/ocaml/preprocess/parser_raw.ml" +# 47364 "src/ocaml/preprocess/parser_raw.ml" in -# 3729 "src/ocaml/preprocess/parser_raw.mly" +# 3760 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, Some ([], _2)) ) -# 47369 "src/ocaml/preprocess/parser_raw.ml" +# 47370 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -47373,15 +47374,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47379 "src/ocaml/preprocess/parser_raw.ml" +# 47380 "src/ocaml/preprocess/parser_raw.ml" in -# 3735 "src/ocaml/preprocess/parser_raw.mly" +# 3766 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47385 "src/ocaml/preprocess/parser_raw.ml" +# 47386 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47431,7 +47432,7 @@ module Tables = struct } = _menhir_stack in let pat : (Parsetree.pattern) = Obj.magic pat in let _5 : unit = Obj.magic _5 in - let xs : (string Location.loc list) = Obj.magic xs in + let xs : (string Asttypes.loc list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -47441,24 +47442,24 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let newtypes = -# 3229 "src/ocaml/preprocess/parser_raw.mly" +# 3264 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 47447 "src/ocaml/preprocess/parser_raw.ml" +# 47448 "src/ocaml/preprocess/parser_raw.ml" in let constr = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47456 "src/ocaml/preprocess/parser_raw.ml" +# 47457 "src/ocaml/preprocess/parser_raw.ml" in -# 3732 "src/ocaml/preprocess/parser_raw.mly" +# 3763 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(constr, Some (newtypes, pat)) ) -# 47462 "src/ocaml/preprocess/parser_raw.ml" +# 47463 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_pat_ in @@ -47466,15 +47467,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47472 "src/ocaml/preprocess/parser_raw.ml" +# 47473 "src/ocaml/preprocess/parser_raw.ml" in -# 3735 "src/ocaml/preprocess/parser_raw.mly" +# 3766 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47478 "src/ocaml/preprocess/parser_raw.ml" +# 47479 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47505,24 +47506,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3734 "src/ocaml/preprocess/parser_raw.mly" +# 3765 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, Some _2) ) -# 47511 "src/ocaml/preprocess/parser_raw.ml" +# 47512 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47520 "src/ocaml/preprocess/parser_raw.ml" +# 47521 "src/ocaml/preprocess/parser_raw.ml" in -# 3735 "src/ocaml/preprocess/parser_raw.mly" +# 3766 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47526 "src/ocaml/preprocess/parser_raw.ml" +# 47527 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47560,7 +47561,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.pattern) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -47570,24 +47571,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47576 "src/ocaml/preprocess/parser_raw.ml" +# 47577 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 47582 "src/ocaml/preprocess/parser_raw.ml" +# 47583 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3737 "src/ocaml/preprocess/parser_raw.mly" +# 3768 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2) -# 47591 "src/ocaml/preprocess/parser_raw.ml" +# 47592 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47629,17 +47630,17 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 3642 "src/ocaml/preprocess/parser_raw.mly" +# 3673 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 47637 "src/ocaml/preprocess/parser_raw.ml" +# 47638 "src/ocaml/preprocess/parser_raw.ml" in -# 3637 "src/ocaml/preprocess/parser_raw.mly" +# 3668 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47643 "src/ocaml/preprocess/parser_raw.ml" +# 47644 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47669,14 +47670,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = -# 3646 "src/ocaml/preprocess/parser_raw.mly" +# 3677 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 47675 "src/ocaml/preprocess/parser_raw.ml" +# 47676 "src/ocaml/preprocess/parser_raw.ml" in -# 3637 "src/ocaml/preprocess/parser_raw.mly" +# 3668 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47680 "src/ocaml/preprocess/parser_raw.ml" +# 47681 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47699,14 +47700,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = -# 3648 "src/ocaml/preprocess/parser_raw.mly" +# 3679 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47705 "src/ocaml/preprocess/parser_raw.ml" +# 47706 "src/ocaml/preprocess/parser_raw.ml" in -# 3637 "src/ocaml/preprocess/parser_raw.mly" +# 3668 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47710 "src/ocaml/preprocess/parser_raw.ml" +# 47711 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47751,15 +47752,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47757 "src/ocaml/preprocess/parser_raw.ml" +# 47758 "src/ocaml/preprocess/parser_raw.ml" in -# 3651 "src/ocaml/preprocess/parser_raw.mly" +# 3682 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_alias(_1, _3) ) -# 47763 "src/ocaml/preprocess/parser_raw.ml" +# 47764 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -47767,21 +47768,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47773 "src/ocaml/preprocess/parser_raw.ml" +# 47774 "src/ocaml/preprocess/parser_raw.ml" in -# 3660 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47779 "src/ocaml/preprocess/parser_raw.ml" +# 47780 "src/ocaml/preprocess/parser_raw.ml" in -# 3637 "src/ocaml/preprocess/parser_raw.mly" +# 3668 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47785 "src/ocaml/preprocess/parser_raw.ml" +# 47786 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47820,30 +47821,30 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3657 "src/ocaml/preprocess/parser_raw.mly" +# 3688 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 47826 "src/ocaml/preprocess/parser_raw.ml" +# 47827 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47835 "src/ocaml/preprocess/parser_raw.ml" +# 47836 "src/ocaml/preprocess/parser_raw.ml" in -# 3660 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47841 "src/ocaml/preprocess/parser_raw.ml" +# 47842 "src/ocaml/preprocess/parser_raw.ml" in -# 3637 "src/ocaml/preprocess/parser_raw.mly" +# 3668 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47847 "src/ocaml/preprocess/parser_raw.ml" +# 47848 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47870,17 +47871,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3662 "src/ocaml/preprocess/parser_raw.mly" +# 3693 "src/ocaml/preprocess/parser_raw.mly" ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 47878 "src/ocaml/preprocess/parser_raw.ml" +# 47879 "src/ocaml/preprocess/parser_raw.ml" in -# 3637 "src/ocaml/preprocess/parser_raw.mly" +# 3668 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47884 "src/ocaml/preprocess/parser_raw.ml" +# 47885 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47899,9 +47900,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 47905 "src/ocaml/preprocess/parser_raw.ml" +# 47906 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -47913,30 +47914,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47919 "src/ocaml/preprocess/parser_raw.ml" +# 47920 "src/ocaml/preprocess/parser_raw.ml" in -# 2746 "src/ocaml/preprocess/parser_raw.mly" +# 2785 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var _1 ) -# 47925 "src/ocaml/preprocess/parser_raw.ml" +# 47926 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47934 "src/ocaml/preprocess/parser_raw.ml" +# 47935 "src/ocaml/preprocess/parser_raw.ml" in -# 2748 "src/ocaml/preprocess/parser_raw.mly" +# 2787 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47940 "src/ocaml/preprocess/parser_raw.ml" +# 47941 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47960,23 +47961,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2747 "src/ocaml/preprocess/parser_raw.mly" +# 2786 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 47966 "src/ocaml/preprocess/parser_raw.ml" +# 47967 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 47974 "src/ocaml/preprocess/parser_raw.ml" +# 47975 "src/ocaml/preprocess/parser_raw.ml" in -# 2748 "src/ocaml/preprocess/parser_raw.mly" +# 2787 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47980 "src/ocaml/preprocess/parser_raw.ml" +# 47981 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47999,9 +48000,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.payload) = -# 5326 "src/ocaml/preprocess/parser_raw.mly" +# 5341 "src/ocaml/preprocess/parser_raw.mly" ( PStr _1 ) -# 48005 "src/ocaml/preprocess/parser_raw.ml" +# 48006 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48031,9 +48032,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5327 "src/ocaml/preprocess/parser_raw.mly" +# 5342 "src/ocaml/preprocess/parser_raw.mly" ( PSig _2 ) -# 48037 "src/ocaml/preprocess/parser_raw.ml" +# 48038 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48063,9 +48064,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5328 "src/ocaml/preprocess/parser_raw.mly" +# 5343 "src/ocaml/preprocess/parser_raw.mly" ( PTyp _2 ) -# 48069 "src/ocaml/preprocess/parser_raw.ml" +# 48070 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48095,9 +48096,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5329 "src/ocaml/preprocess/parser_raw.mly" +# 5344 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, None) ) -# 48101 "src/ocaml/preprocess/parser_raw.ml" +# 48102 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48141,9 +48142,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.payload) = -# 5330 "src/ocaml/preprocess/parser_raw.mly" +# 5345 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, Some _4) ) -# 48147 "src/ocaml/preprocess/parser_raw.ml" +# 48148 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48166,9 +48167,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4391 "src/ocaml/preprocess/parser_raw.mly" +# 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48172 "src/ocaml/preprocess/parser_raw.ml" +# 48173 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48200,8 +48201,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.core_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in @@ -48214,19 +48214,19 @@ module Tables = struct # 48215 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) # 48220 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 48226 "src/ocaml/preprocess/parser_raw.ml" in -# 4387 "src/ocaml/preprocess/parser_raw.mly" +# 4408 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) # 48232 "src/ocaml/preprocess/parser_raw.ml" @@ -48236,11 +48236,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4393 "src/ocaml/preprocess/parser_raw.mly" +# 4414 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _1 in - Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) - (Ltyp_poly { bound_vars; inner_type }) ) -# 48244 "src/ocaml/preprocess/parser_raw.ml" + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 48243 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48263,14 +48262,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = -# 4424 "src/ocaml/preprocess/parser_raw.mly" +# 4444 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48269 "src/ocaml/preprocess/parser_raw.ml" +# 48268 "src/ocaml/preprocess/parser_raw.ml" in -# 4391 "src/ocaml/preprocess/parser_raw.mly" +# 4412 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48274 "src/ocaml/preprocess/parser_raw.ml" +# 48273 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48302,40 +48301,39 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.core_type) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = let _3 = -# 4424 "src/ocaml/preprocess/parser_raw.mly" +# 4444 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48315 "src/ocaml/preprocess/parser_raw.ml" +# 48313 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = let xs = # 253 "" ( List.rev xs ) -# 48322 "src/ocaml/preprocess/parser_raw.ml" +# 48320 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48327 "src/ocaml/preprocess/parser_raw.ml" +# 48325 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48333 "src/ocaml/preprocess/parser_raw.ml" +# 48331 "src/ocaml/preprocess/parser_raw.ml" in -# 4387 "src/ocaml/preprocess/parser_raw.mly" +# 4408 "src/ocaml/preprocess/parser_raw.mly" ( (_1, _3) ) -# 48339 "src/ocaml/preprocess/parser_raw.ml" +# 48337 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_xs_ in @@ -48343,11 +48341,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4393 "src/ocaml/preprocess/parser_raw.mly" +# 4414 "src/ocaml/preprocess/parser_raw.mly" ( let bound_vars, inner_type = _1 in - Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) - (Ltyp_poly { bound_vars; inner_type }) ) -# 48351 "src/ocaml/preprocess/parser_raw.ml" + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 48348 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48385,7 +48382,7 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Location.loc) = Obj.magic _2 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -48394,9 +48391,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5287 "src/ocaml/preprocess/parser_raw.mly" +# 5302 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 48400 "src/ocaml/preprocess/parser_raw.ml" +# 48397 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48476,17 +48473,17 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.value_description * string Location.loc option) = let attrs2 = + let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48490 "src/ocaml/preprocess/parser_raw.ml" +# 48487 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -48496,30 +48493,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 48502 "src/ocaml/preprocess/parser_raw.ml" +# 48499 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48510 "src/ocaml/preprocess/parser_raw.ml" +# 48507 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3909 "src/ocaml/preprocess/parser_raw.mly" +# 3940 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~prim ~attrs ~modalities ~loc ~docs, ext ) -# 48523 "src/ocaml/preprocess/parser_raw.ml" +# 48520 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48535,14 +48532,14 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.private_flag) = let _1 = -# 5142 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 48541 "src/ocaml/preprocess/parser_raw.ml" +# 48538 "src/ocaml/preprocess/parser_raw.ml" in -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5154 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48546 "src/ocaml/preprocess/parser_raw.ml" +# 48543 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48565,14 +48562,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = let _1 = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5158 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 48571 "src/ocaml/preprocess/parser_raw.ml" +# 48568 "src/ocaml/preprocess/parser_raw.ml" in -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5154 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48576 "src/ocaml/preprocess/parser_raw.ml" +# 48573 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48588,9 +48585,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5177 "src/ocaml/preprocess/parser_raw.mly" +# 5192 "src/ocaml/preprocess/parser_raw.mly" ( Public, Concrete ) -# 48594 "src/ocaml/preprocess/parser_raw.ml" +# 48591 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48613,9 +48610,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5178 "src/ocaml/preprocess/parser_raw.mly" +# 5193 "src/ocaml/preprocess/parser_raw.mly" ( Private, Concrete ) -# 48619 "src/ocaml/preprocess/parser_raw.ml" +# 48616 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48638,9 +48635,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5179 "src/ocaml/preprocess/parser_raw.mly" +# 5194 "src/ocaml/preprocess/parser_raw.mly" ( Public, Virtual ) -# 48644 "src/ocaml/preprocess/parser_raw.ml" +# 48641 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48670,9 +48667,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5180 "src/ocaml/preprocess/parser_raw.mly" +# 5195 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 48676 "src/ocaml/preprocess/parser_raw.ml" +# 48673 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48702,9 +48699,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5181 "src/ocaml/preprocess/parser_raw.mly" +# 5196 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 48708 "src/ocaml/preprocess/parser_raw.ml" +# 48705 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48720,9 +48717,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.rec_flag) = -# 5120 "src/ocaml/preprocess/parser_raw.mly" +# 5135 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 48726 "src/ocaml/preprocess/parser_raw.ml" +# 48723 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48745,9 +48742,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.rec_flag) = -# 5121 "src/ocaml/preprocess/parser_raw.mly" +# 5136 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 48751 "src/ocaml/preprocess/parser_raw.ml" +# 48748 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48765,20 +48762,20 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_fields_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let fields : ((Longident.t Location.loc * Parsetree.expression) list) = Obj.magic fields in + let fields : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic fields in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_fields_ in let _endpos = _endpos_fields_ in let _v : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list) = let eo = + (Longident.t Asttypes.loc * Parsetree.expression) list) = let eo = # 124 "" ( None ) -# 48777 "src/ocaml/preprocess/parser_raw.ml" +# 48774 "src/ocaml/preprocess/parser_raw.ml" in -# 3538 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 48782 "src/ocaml/preprocess/parser_raw.ml" +# 48779 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48808,29 +48805,29 @@ module Tables = struct }; }; } = _menhir_stack in - let fields : ((Longident.t Location.loc * Parsetree.expression) list) = Obj.magic fields in + let fields : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic fields in let _2 : unit = Obj.magic _2 in let x : (Parsetree.expression) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_fields_ in let _v : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list) = let eo = + (Longident.t Asttypes.loc * Parsetree.expression) list) = let eo = let x = # 191 "" ( x ) -# 48823 "src/ocaml/preprocess/parser_raw.ml" +# 48820 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 48828 "src/ocaml/preprocess/parser_raw.ml" +# 48825 "src/ocaml/preprocess/parser_raw.ml" in -# 3538 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 48834 "src/ocaml/preprocess/parser_raw.ml" +# 48831 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48867,9 +48864,9 @@ module Tables = struct let _startpos = _startpos_jkind1_ in let _endpos = _endpos_jkind2_ in let _v : (Parsetree.jkind_annotation list) = -# 4074 "src/ocaml/preprocess/parser_raw.mly" +# 4104 "src/ocaml/preprocess/parser_raw.mly" ( [jkind2; jkind1] ) -# 48873 "src/ocaml/preprocess/parser_raw.ml" +# 48870 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48906,9 +48903,9 @@ module Tables = struct let _startpos = _startpos_jkinds_ in let _endpos = _endpos_jkind_ in let _v : (Parsetree.jkind_annotation list) = -# 4078 "src/ocaml/preprocess/parser_raw.mly" +# 4108 "src/ocaml/preprocess/parser_raw.mly" ( jkind :: jkinds ) -# 48912 "src/ocaml/preprocess/parser_raw.ml" +# 48909 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48927,25 +48924,24 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 4179 "src/ocaml/preprocess/parser_raw.mly" +# 4210 "src/ocaml/preprocess/parser_raw.mly" ( - let cid, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Layouts.constructor_declaration_of - cid ~vars_jkinds ~args ~res ~attrs ~loc ~info + let cid, vars, args, res, attrs, loc, info = d in + Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 48944 "src/ocaml/preprocess/parser_raw.ml" +# 48940 "src/ocaml/preprocess/parser_raw.ml" in -# 1475 "src/ocaml/preprocess/parser_raw.mly" +# 1516 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 48949 "src/ocaml/preprocess/parser_raw.ml" +# 48945 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48964,25 +48960,24 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 4179 "src/ocaml/preprocess/parser_raw.mly" +# 4210 "src/ocaml/preprocess/parser_raw.mly" ( - let cid, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Layouts.constructor_declaration_of - cid ~vars_jkinds ~args ~res ~attrs ~loc ~info + let cid, vars, args, res, attrs, loc, info = d in + Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 48981 "src/ocaml/preprocess/parser_raw.ml" +# 48976 "src/ocaml/preprocess/parser_raw.ml" in -# 1478 "src/ocaml/preprocess/parser_raw.mly" +# 1519 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 48986 "src/ocaml/preprocess/parser_raw.ml" +# 48981 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49007,26 +49002,25 @@ module Tables = struct }; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let xs : (Parsetree.constructor_declaration list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 4179 "src/ocaml/preprocess/parser_raw.mly" +# 4210 "src/ocaml/preprocess/parser_raw.mly" ( - let cid, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Layouts.constructor_declaration_of - cid ~vars_jkinds ~args ~res ~attrs ~loc ~info + let cid, vars, args, res, attrs, loc, info = d in + Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 49025 "src/ocaml/preprocess/parser_raw.ml" +# 49019 "src/ocaml/preprocess/parser_raw.ml" in -# 1482 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49030 "src/ocaml/preprocess/parser_raw.ml" +# 49024 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49045,33 +49039,31 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 4316 "src/ocaml/preprocess/parser_raw.mly" +# 4339 "src/ocaml/preprocess/parser_raw.mly" ( - let name, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~attrs ~info ~name - (Jext_layout (Lext_decl(vars_jkinds, args, res))) + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 49064 "src/ocaml/preprocess/parser_raw.ml" +# 49056 "src/ocaml/preprocess/parser_raw.ml" in -# 4310 "src/ocaml/preprocess/parser_raw.mly" +# 4333 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49069 "src/ocaml/preprocess/parser_raw.ml" +# 49061 "src/ocaml/preprocess/parser_raw.ml" in -# 1475 "src/ocaml/preprocess/parser_raw.mly" +# 1516 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 49075 "src/ocaml/preprocess/parser_raw.ml" +# 49067 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49094,14 +49086,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 4312 "src/ocaml/preprocess/parser_raw.mly" +# 4335 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49100 "src/ocaml/preprocess/parser_raw.ml" +# 49092 "src/ocaml/preprocess/parser_raw.ml" in -# 1475 "src/ocaml/preprocess/parser_raw.mly" +# 1516 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 49105 "src/ocaml/preprocess/parser_raw.ml" +# 49097 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49120,33 +49112,31 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 4316 "src/ocaml/preprocess/parser_raw.mly" +# 4339 "src/ocaml/preprocess/parser_raw.mly" ( - let name, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~attrs ~info ~name - (Jext_layout (Lext_decl(vars_jkinds, args, res))) + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 49139 "src/ocaml/preprocess/parser_raw.ml" +# 49129 "src/ocaml/preprocess/parser_raw.ml" in -# 4310 "src/ocaml/preprocess/parser_raw.mly" +# 4333 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49144 "src/ocaml/preprocess/parser_raw.ml" +# 49134 "src/ocaml/preprocess/parser_raw.ml" in -# 1478 "src/ocaml/preprocess/parser_raw.mly" +# 1519 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 49150 "src/ocaml/preprocess/parser_raw.ml" +# 49140 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49169,14 +49159,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 4312 "src/ocaml/preprocess/parser_raw.mly" +# 4335 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49175 "src/ocaml/preprocess/parser_raw.ml" +# 49165 "src/ocaml/preprocess/parser_raw.ml" in -# 1478 "src/ocaml/preprocess/parser_raw.mly" +# 1519 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 49180 "src/ocaml/preprocess/parser_raw.ml" +# 49170 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49201,34 +49191,32 @@ module Tables = struct }; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let xs : (Parsetree.extension_constructor list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 4316 "src/ocaml/preprocess/parser_raw.mly" +# 4339 "src/ocaml/preprocess/parser_raw.mly" ( - let name, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~attrs ~info ~name - (Jext_layout (Lext_decl(vars_jkinds, args, res))) + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 49221 "src/ocaml/preprocess/parser_raw.ml" +# 49209 "src/ocaml/preprocess/parser_raw.ml" in -# 4310 "src/ocaml/preprocess/parser_raw.mly" +# 4333 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49226 "src/ocaml/preprocess/parser_raw.ml" +# 49214 "src/ocaml/preprocess/parser_raw.ml" in -# 1482 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49232 "src/ocaml/preprocess/parser_raw.ml" +# 49220 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49258,14 +49246,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 4312 "src/ocaml/preprocess/parser_raw.mly" +# 4335 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49264 "src/ocaml/preprocess/parser_raw.ml" +# 49252 "src/ocaml/preprocess/parser_raw.ml" in -# 1482 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49269 "src/ocaml/preprocess/parser_raw.ml" +# 49257 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49284,26 +49272,24 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 4316 "src/ocaml/preprocess/parser_raw.mly" +# 4339 "src/ocaml/preprocess/parser_raw.mly" ( - let name, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~attrs ~info ~name - (Jext_layout (Lext_decl(vars_jkinds, args, res))) + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 49302 "src/ocaml/preprocess/parser_raw.ml" +# 49288 "src/ocaml/preprocess/parser_raw.ml" in -# 1475 "src/ocaml/preprocess/parser_raw.mly" +# 1516 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 49307 "src/ocaml/preprocess/parser_raw.ml" +# 49293 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49322,26 +49308,24 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 4316 "src/ocaml/preprocess/parser_raw.mly" +# 4339 "src/ocaml/preprocess/parser_raw.mly" ( - let name, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~attrs ~info ~name - (Jext_layout (Lext_decl(vars_jkinds, args, res))) + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 49340 "src/ocaml/preprocess/parser_raw.ml" +# 49324 "src/ocaml/preprocess/parser_raw.ml" in -# 1478 "src/ocaml/preprocess/parser_raw.mly" +# 1519 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 49345 "src/ocaml/preprocess/parser_raw.ml" +# 49329 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49366,27 +49350,25 @@ module Tables = struct }; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in let xs : (Parsetree.extension_constructor list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 4316 "src/ocaml/preprocess/parser_raw.mly" +# 4339 "src/ocaml/preprocess/parser_raw.mly" ( - let name, vars_jkinds, args, res, attrs, loc, info = d in - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~attrs ~info ~name - (Jext_layout (Lext_decl(vars_jkinds, args, res))) + let name, vars, args, res, attrs, loc, info = d in + Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 49385 "src/ocaml/preprocess/parser_raw.ml" +# 49367 "src/ocaml/preprocess/parser_raw.ml" in -# 1482 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49390 "src/ocaml/preprocess/parser_raw.ml" +# 49372 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49425,26 +49407,26 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x = let _1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49431 "src/ocaml/preprocess/parser_raw.ml" +# 49413 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49436 "src/ocaml/preprocess/parser_raw.ml" +# 49418 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 49442 "src/ocaml/preprocess/parser_raw.ml" +# 49424 "src/ocaml/preprocess/parser_raw.ml" in -# 3506 "src/ocaml/preprocess/parser_raw.mly" +# 3537 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49448 "src/ocaml/preprocess/parser_raw.ml" +# 49430 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49494,7 +49476,7 @@ module Tables = struct } = _menhir_stack in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.expression) list) = Obj.magic xs in @@ -49510,18 +49492,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49514 "src/ocaml/preprocess/parser_raw.ml" +# 49496 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49519 "src/ocaml/preprocess/parser_raw.ml" +# 49501 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49525 "src/ocaml/preprocess/parser_raw.ml" +# 49507 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -49530,22 +49512,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49536 "src/ocaml/preprocess/parser_raw.ml" +# 49518 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 49542 "src/ocaml/preprocess/parser_raw.ml" +# 49524 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -49558,25 +49540,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 49562 "src/ocaml/preprocess/parser_raw.ml" +# 49544 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49568 "src/ocaml/preprocess/parser_raw.ml" +# 49550 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 49574 "src/ocaml/preprocess/parser_raw.ml" +# 49556 "src/ocaml/preprocess/parser_raw.ml" in -# 3506 "src/ocaml/preprocess/parser_raw.mly" +# 3537 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49580 "src/ocaml/preprocess/parser_raw.ml" +# 49562 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49614,9 +49596,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 49620 "src/ocaml/preprocess/parser_raw.ml" +# 49602 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.expression) list) = Obj.magic xs in @@ -49626,15 +49608,15 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x = let _2 = _2_inlined1 in -# 3492 "src/ocaml/preprocess/parser_raw.mly" +# 3523 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 49632 "src/ocaml/preprocess/parser_raw.ml" +# 49614 "src/ocaml/preprocess/parser_raw.ml" in -# 3506 "src/ocaml/preprocess/parser_raw.mly" +# 3537 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49638 "src/ocaml/preprocess/parser_raw.ml" +# 49620 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49671,9 +49653,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 49677 "src/ocaml/preprocess/parser_raw.ml" +# 49659 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -49684,16 +49666,16 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3494 "src/ocaml/preprocess/parser_raw.mly" +# 3525 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 49691 "src/ocaml/preprocess/parser_raw.ml" +# 49673 "src/ocaml/preprocess/parser_raw.ml" in -# 3506 "src/ocaml/preprocess/parser_raw.mly" +# 3537 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49697 "src/ocaml/preprocess/parser_raw.ml" +# 49679 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49750,9 +49732,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 49756 "src/ocaml/preprocess/parser_raw.ml" +# 49738 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -49766,17 +49748,17 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3497 "src/ocaml/preprocess/parser_raw.mly" +# 3528 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 49774 "src/ocaml/preprocess/parser_raw.ml" +# 49756 "src/ocaml/preprocess/parser_raw.ml" in -# 3506 "src/ocaml/preprocess/parser_raw.mly" +# 3537 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 49780 "src/ocaml/preprocess/parser_raw.ml" +# 49762 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49816,38 +49798,38 @@ module Tables = struct let _1 = _1_inlined1 in let _1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49822 "src/ocaml/preprocess/parser_raw.ml" +# 49804 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49827 "src/ocaml/preprocess/parser_raw.ml" +# 49809 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 49833 "src/ocaml/preprocess/parser_raw.ml" +# 49815 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49840 "src/ocaml/preprocess/parser_raw.ml" +# 49822 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49845 "src/ocaml/preprocess/parser_raw.ml" +# 49827 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 49851 "src/ocaml/preprocess/parser_raw.ml" +# 49833 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49897,7 +49879,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -49913,18 +49895,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49917 "src/ocaml/preprocess/parser_raw.ml" +# 49899 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49922 "src/ocaml/preprocess/parser_raw.ml" +# 49904 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 49928 "src/ocaml/preprocess/parser_raw.ml" +# 49910 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -49933,22 +49915,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49939 "src/ocaml/preprocess/parser_raw.ml" +# 49921 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 49945 "src/ocaml/preprocess/parser_raw.ml" +# 49927 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -49961,37 +49943,37 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 49965 "src/ocaml/preprocess/parser_raw.ml" +# 49947 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49971 "src/ocaml/preprocess/parser_raw.ml" +# 49953 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 49977 "src/ocaml/preprocess/parser_raw.ml" +# 49959 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49984 "src/ocaml/preprocess/parser_raw.ml" +# 49966 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49989 "src/ocaml/preprocess/parser_raw.ml" +# 49971 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 49995 "src/ocaml/preprocess/parser_raw.ml" +# 49977 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50029,9 +50011,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50035 "src/ocaml/preprocess/parser_raw.ml" +# 50017 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -50041,27 +50023,27 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3492 "src/ocaml/preprocess/parser_raw.mly" +# 3523 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 50047 "src/ocaml/preprocess/parser_raw.ml" +# 50029 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50054 "src/ocaml/preprocess/parser_raw.ml" +# 50036 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50059 "src/ocaml/preprocess/parser_raw.ml" +# 50041 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 50065 "src/ocaml/preprocess/parser_raw.ml" +# 50047 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50098,9 +50080,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50104 "src/ocaml/preprocess/parser_raw.ml" +# 50086 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -50111,28 +50093,28 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3494 "src/ocaml/preprocess/parser_raw.mly" +# 3525 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 50118 "src/ocaml/preprocess/parser_raw.ml" +# 50100 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50125 "src/ocaml/preprocess/parser_raw.ml" +# 50107 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50130 "src/ocaml/preprocess/parser_raw.ml" +# 50112 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 50136 "src/ocaml/preprocess/parser_raw.ml" +# 50118 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50189,9 +50171,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50195 "src/ocaml/preprocess/parser_raw.ml" +# 50177 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -50205,29 +50187,29 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3497 "src/ocaml/preprocess/parser_raw.mly" +# 3528 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 50213 "src/ocaml/preprocess/parser_raw.ml" +# 50195 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50220 "src/ocaml/preprocess/parser_raw.ml" +# 50202 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50225 "src/ocaml/preprocess/parser_raw.ml" +# 50207 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 50231 "src/ocaml/preprocess/parser_raw.ml" +# 50213 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50279,7 +50261,7 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50288,20 +50270,20 @@ module Tables = struct let _1 = _1_inlined3 in let _1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50294 "src/ocaml/preprocess/parser_raw.ml" +# 50276 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50299 "src/ocaml/preprocess/parser_raw.ml" +# 50281 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 50305 "src/ocaml/preprocess/parser_raw.ml" +# 50287 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -50311,18 +50293,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50315 "src/ocaml/preprocess/parser_raw.ml" +# 50297 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50320 "src/ocaml/preprocess/parser_raw.ml" +# 50302 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50326 "src/ocaml/preprocess/parser_raw.ml" +# 50308 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -50331,22 +50313,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50337 "src/ocaml/preprocess/parser_raw.ml" +# 50319 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 50343 "src/ocaml/preprocess/parser_raw.ml" +# 50325 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -50359,19 +50341,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 50363 "src/ocaml/preprocess/parser_raw.ml" +# 50345 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50369 "src/ocaml/preprocess/parser_raw.ml" +# 50351 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 50375 "src/ocaml/preprocess/parser_raw.ml" +# 50357 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50439,12 +50421,12 @@ module Tables = struct } = _menhir_stack in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let _1_inlined4 : (string Location.loc option) = Obj.magic _1_inlined4 in + let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50458,18 +50440,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50462 "src/ocaml/preprocess/parser_raw.ml" +# 50444 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50467 "src/ocaml/preprocess/parser_raw.ml" +# 50449 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50473 "src/ocaml/preprocess/parser_raw.ml" +# 50455 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -50478,22 +50460,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50484 "src/ocaml/preprocess/parser_raw.ml" +# 50466 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 50490 "src/ocaml/preprocess/parser_raw.ml" +# 50472 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -50506,19 +50488,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 50510 "src/ocaml/preprocess/parser_raw.ml" +# 50492 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50516 "src/ocaml/preprocess/parser_raw.ml" +# 50498 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 50522 "src/ocaml/preprocess/parser_raw.ml" +# 50504 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -50528,18 +50510,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50532 "src/ocaml/preprocess/parser_raw.ml" +# 50514 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50537 "src/ocaml/preprocess/parser_raw.ml" +# 50519 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50543 "src/ocaml/preprocess/parser_raw.ml" +# 50525 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -50548,22 +50530,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50554 "src/ocaml/preprocess/parser_raw.ml" +# 50536 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 50560 "src/ocaml/preprocess/parser_raw.ml" +# 50542 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -50576,19 +50558,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 50580 "src/ocaml/preprocess/parser_raw.ml" +# 50562 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50586 "src/ocaml/preprocess/parser_raw.ml" +# 50568 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 50592 "src/ocaml/preprocess/parser_raw.ml" +# 50574 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50644,14 +50626,14 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1_inlined3 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50650 "src/ocaml/preprocess/parser_raw.ml" +# 50632 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50659,9 +50641,9 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let (_2, _1) = (_2_inlined1, _1_inlined3) in -# 3492 "src/ocaml/preprocess/parser_raw.mly" +# 3523 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 50665 "src/ocaml/preprocess/parser_raw.ml" +# 50647 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -50671,18 +50653,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50675 "src/ocaml/preprocess/parser_raw.ml" +# 50657 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50680 "src/ocaml/preprocess/parser_raw.ml" +# 50662 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50686 "src/ocaml/preprocess/parser_raw.ml" +# 50668 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -50691,22 +50673,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50697 "src/ocaml/preprocess/parser_raw.ml" +# 50679 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 50703 "src/ocaml/preprocess/parser_raw.ml" +# 50685 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -50719,19 +50701,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 50723 "src/ocaml/preprocess/parser_raw.ml" +# 50705 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50729 "src/ocaml/preprocess/parser_raw.ml" +# 50711 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 50735 "src/ocaml/preprocess/parser_raw.ml" +# 50717 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50786,15 +50768,15 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50792 "src/ocaml/preprocess/parser_raw.ml" +# 50774 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50802,10 +50784,10 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3494 "src/ocaml/preprocess/parser_raw.mly" +# 3525 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 50809 "src/ocaml/preprocess/parser_raw.ml" +# 50791 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -50815,18 +50797,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50819 "src/ocaml/preprocess/parser_raw.ml" +# 50801 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50824 "src/ocaml/preprocess/parser_raw.ml" +# 50806 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50830 "src/ocaml/preprocess/parser_raw.ml" +# 50812 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -50835,22 +50817,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50841 "src/ocaml/preprocess/parser_raw.ml" +# 50823 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 50847 "src/ocaml/preprocess/parser_raw.ml" +# 50829 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -50863,19 +50845,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 50867 "src/ocaml/preprocess/parser_raw.ml" +# 50849 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50873 "src/ocaml/preprocess/parser_raw.ml" +# 50855 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 50879 "src/ocaml/preprocess/parser_raw.ml" +# 50861 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50950,16 +50932,16 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50956 "src/ocaml/preprocess/parser_raw.ml" +# 50938 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50969,11 +50951,11 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3497 "src/ocaml/preprocess/parser_raw.mly" +# 3528 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 50977 "src/ocaml/preprocess/parser_raw.ml" +# 50959 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -50983,18 +50965,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50987 "src/ocaml/preprocess/parser_raw.ml" +# 50969 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50992 "src/ocaml/preprocess/parser_raw.ml" +# 50974 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 50998 "src/ocaml/preprocess/parser_raw.ml" +# 50980 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -51003,22 +50985,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51009 "src/ocaml/preprocess/parser_raw.ml" +# 50991 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 51015 "src/ocaml/preprocess/parser_raw.ml" +# 50997 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -51031,19 +51013,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 51035 "src/ocaml/preprocess/parser_raw.ml" +# 51017 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51041 "src/ocaml/preprocess/parser_raw.ml" +# 51023 "src/ocaml/preprocess/parser_raw.ml" in -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3542 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 51047 "src/ocaml/preprocess/parser_raw.ml" +# 51029 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51083,9 +51065,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51089 "src/ocaml/preprocess/parser_raw.ml" +# 51071 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -51093,26 +51075,26 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let _1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51099 "src/ocaml/preprocess/parser_raw.ml" +# 51081 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51104 "src/ocaml/preprocess/parser_raw.ml" +# 51086 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 51110 "src/ocaml/preprocess/parser_raw.ml" +# 51092 "src/ocaml/preprocess/parser_raw.ml" in -# 3515 "src/ocaml/preprocess/parser_raw.mly" +# 3546 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 51116 "src/ocaml/preprocess/parser_raw.ml" +# 51098 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51168,14 +51150,14 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51179 "src/ocaml/preprocess/parser_raw.ml" +# 51161 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -51188,18 +51170,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 51192 "src/ocaml/preprocess/parser_raw.ml" +# 51174 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51197 "src/ocaml/preprocess/parser_raw.ml" +# 51179 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51203 "src/ocaml/preprocess/parser_raw.ml" +# 51185 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -51208,22 +51190,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51214 "src/ocaml/preprocess/parser_raw.ml" +# 51196 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 51220 "src/ocaml/preprocess/parser_raw.ml" +# 51202 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -51236,25 +51218,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 51240 "src/ocaml/preprocess/parser_raw.ml" +# 51222 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51246 "src/ocaml/preprocess/parser_raw.ml" +# 51228 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 51252 "src/ocaml/preprocess/parser_raw.ml" +# 51234 "src/ocaml/preprocess/parser_raw.ml" in -# 3515 "src/ocaml/preprocess/parser_raw.mly" +# 3546 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 51258 "src/ocaml/preprocess/parser_raw.ml" +# 51240 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51298,29 +51280,29 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51304 "src/ocaml/preprocess/parser_raw.ml" +# 51286 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51311 "src/ocaml/preprocess/parser_raw.ml" +# 51293 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos__2_ in let _v : ((string option * Parsetree.expression) list) = let x2 = -# 3492 "src/ocaml/preprocess/parser_raw.mly" +# 3523 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 51319 "src/ocaml/preprocess/parser_raw.ml" +# 51301 "src/ocaml/preprocess/parser_raw.ml" in -# 3515 "src/ocaml/preprocess/parser_raw.mly" +# 3546 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 51324 "src/ocaml/preprocess/parser_raw.ml" +# 51306 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51363,17 +51345,17 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51369 "src/ocaml/preprocess/parser_raw.ml" +# 51351 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51377 "src/ocaml/preprocess/parser_raw.ml" +# 51359 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -51381,16 +51363,16 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3494 "src/ocaml/preprocess/parser_raw.mly" +# 3525 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 51388 "src/ocaml/preprocess/parser_raw.ml" +# 51370 "src/ocaml/preprocess/parser_raw.ml" in -# 3515 "src/ocaml/preprocess/parser_raw.mly" +# 3546 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 51394 "src/ocaml/preprocess/parser_raw.ml" +# 51376 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51453,18 +51435,18 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51459 "src/ocaml/preprocess/parser_raw.ml" +# 51441 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51468 "src/ocaml/preprocess/parser_raw.ml" +# 51450 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -51473,17 +51455,17 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3497 "src/ocaml/preprocess/parser_raw.mly" +# 3528 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 51481 "src/ocaml/preprocess/parser_raw.ml" +# 51463 "src/ocaml/preprocess/parser_raw.ml" in -# 3515 "src/ocaml/preprocess/parser_raw.mly" +# 3546 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 51487 "src/ocaml/preprocess/parser_raw.ml" +# 51469 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51522,9 +51504,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51528 "src/ocaml/preprocess/parser_raw.ml" +# 51510 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -51534,28 +51516,28 @@ module Tables = struct let _1 = _1_inlined1 in let _1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51540 "src/ocaml/preprocess/parser_raw.ml" +# 51522 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51545 "src/ocaml/preprocess/parser_raw.ml" +# 51527 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 51551 "src/ocaml/preprocess/parser_raw.ml" +# 51533 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3519 "src/ocaml/preprocess/parser_raw.mly" +# 3550 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 51559 "src/ocaml/preprocess/parser_raw.ml" +# 51541 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51611,13 +51593,13 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51621 "src/ocaml/preprocess/parser_raw.ml" +# 51603 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -51632,18 +51614,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 51636 "src/ocaml/preprocess/parser_raw.ml" +# 51618 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51641 "src/ocaml/preprocess/parser_raw.ml" +# 51623 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 51647 "src/ocaml/preprocess/parser_raw.ml" +# 51629 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -51652,22 +51634,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51658 "src/ocaml/preprocess/parser_raw.ml" +# 51640 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 51664 "src/ocaml/preprocess/parser_raw.ml" +# 51646 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -51680,27 +51662,27 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 51684 "src/ocaml/preprocess/parser_raw.ml" +# 51666 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51690 "src/ocaml/preprocess/parser_raw.ml" +# 51672 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 51696 "src/ocaml/preprocess/parser_raw.ml" +# 51678 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3519 "src/ocaml/preprocess/parser_raw.mly" +# 3550 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 51704 "src/ocaml/preprocess/parser_raw.ml" +# 51686 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51744,15 +51726,15 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51750 "src/ocaml/preprocess/parser_raw.ml" +# 51732 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51756 "src/ocaml/preprocess/parser_raw.ml" +# 51738 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -51761,17 +51743,17 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let _1 = _1_inlined1 in -# 3492 "src/ocaml/preprocess/parser_raw.mly" +# 3523 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 51767 "src/ocaml/preprocess/parser_raw.ml" +# 51749 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3519 "src/ocaml/preprocess/parser_raw.mly" +# 3550 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 51775 "src/ocaml/preprocess/parser_raw.ml" +# 51757 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51814,16 +51796,16 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51820 "src/ocaml/preprocess/parser_raw.ml" +# 51802 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51827 "src/ocaml/preprocess/parser_raw.ml" +# 51809 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -51832,18 +51814,18 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3494 "src/ocaml/preprocess/parser_raw.mly" +# 3525 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 51839 "src/ocaml/preprocess/parser_raw.ml" +# 51821 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3519 "src/ocaml/preprocess/parser_raw.mly" +# 3550 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 51847 "src/ocaml/preprocess/parser_raw.ml" +# 51829 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51906,17 +51888,17 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51912 "src/ocaml/preprocess/parser_raw.ml" +# 51894 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51920 "src/ocaml/preprocess/parser_raw.ml" +# 51902 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -51926,19 +51908,19 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3497 "src/ocaml/preprocess/parser_raw.mly" +# 3528 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 51934 "src/ocaml/preprocess/parser_raw.ml" +# 51916 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3519 "src/ocaml/preprocess/parser_raw.mly" +# 3550 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 51942 "src/ocaml/preprocess/parser_raw.ml" +# 51924 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51997,9 +51979,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52003 "src/ocaml/preprocess/parser_raw.ml" +# 51985 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -52010,33 +51992,33 @@ module Tables = struct let _1 = _1_inlined1 in let _1 = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52016 "src/ocaml/preprocess/parser_raw.ml" +# 51998 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52021 "src/ocaml/preprocess/parser_raw.ml" +# 52003 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52027 "src/ocaml/preprocess/parser_raw.ml" +# 52009 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__1_inlined1_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3524 "src/ocaml/preprocess/parser_raw.mly" +# 3555 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 52040 "src/ocaml/preprocess/parser_raw.ml" +# 52022 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52110,15 +52092,15 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52122 "src/ocaml/preprocess/parser_raw.ml" +# 52104 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -52134,18 +52116,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52138 "src/ocaml/preprocess/parser_raw.ml" +# 52120 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52143 "src/ocaml/preprocess/parser_raw.ml" +# 52125 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 52149 "src/ocaml/preprocess/parser_raw.ml" +# 52131 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -52154,22 +52136,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52160 "src/ocaml/preprocess/parser_raw.ml" +# 52142 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 52166 "src/ocaml/preprocess/parser_raw.ml" +# 52148 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -52182,32 +52164,32 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 52186 "src/ocaml/preprocess/parser_raw.ml" +# 52168 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52192 "src/ocaml/preprocess/parser_raw.ml" +# 52174 "src/ocaml/preprocess/parser_raw.ml" in -# 3490 "src/ocaml/preprocess/parser_raw.mly" +# 3521 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52198 "src/ocaml/preprocess/parser_raw.ml" +# 52180 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos_xs_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3524 "src/ocaml/preprocess/parser_raw.mly" +# 3555 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 52211 "src/ocaml/preprocess/parser_raw.ml" +# 52193 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52269,17 +52251,17 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52275 "src/ocaml/preprocess/parser_raw.ml" +# 52257 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52283 "src/ocaml/preprocess/parser_raw.ml" +# 52265 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -52289,22 +52271,22 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3492 "src/ocaml/preprocess/parser_raw.mly" +# 3523 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 52295 "src/ocaml/preprocess/parser_raw.ml" +# 52277 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__2_inlined1_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3524 "src/ocaml/preprocess/parser_raw.mly" +# 3555 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 52308 "src/ocaml/preprocess/parser_raw.ml" +# 52290 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52365,18 +52347,18 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52371 "src/ocaml/preprocess/parser_raw.ml" +# 52353 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52380 "src/ocaml/preprocess/parser_raw.ml" +# 52362 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -52386,23 +52368,23 @@ module Tables = struct let _v : ((string option * Parsetree.expression) list) = let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3494 "src/ocaml/preprocess/parser_raw.mly" +# 3525 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 52393 "src/ocaml/preprocess/parser_raw.ml" +# 52375 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos_label_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3524 "src/ocaml/preprocess/parser_raw.mly" +# 3555 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 52406 "src/ocaml/preprocess/parser_raw.ml" +# 52388 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52483,9 +52465,9 @@ module Tables = struct let _5_inlined1 : unit = Obj.magic _5_inlined1 in let c_inlined1 : (Parsetree.type_constraint) = Obj.magic c_inlined1 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52489 "src/ocaml/preprocess/parser_raw.ml" +# 52471 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -52493,9 +52475,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52499 "src/ocaml/preprocess/parser_raw.ml" +# 52481 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -52507,24 +52489,24 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3497 "src/ocaml/preprocess/parser_raw.mly" +# 3528 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 52515 "src/ocaml/preprocess/parser_raw.ml" +# 52497 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__5_inlined1_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in -# 3524 "src/ocaml/preprocess/parser_raw.mly" +# 3555 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 52528 "src/ocaml/preprocess/parser_raw.ml" +# 52510 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52547,9 +52529,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3718 "src/ocaml/preprocess/parser_raw.mly" +# 3749 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 52553 "src/ocaml/preprocess/parser_raw.ml" +# 52535 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52586,9 +52568,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3720 "src/ocaml/preprocess/parser_raw.mly" +# 3751 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 52592 "src/ocaml/preprocess/parser_raw.ml" +# 52574 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52625,14 +52607,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52631 "src/ocaml/preprocess/parser_raw.ml" +# 52613 "src/ocaml/preprocess/parser_raw.ml" in -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 3753 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 52636 "src/ocaml/preprocess/parser_raw.ml" +# 52618 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52672,9 +52654,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52678 "src/ocaml/preprocess/parser_raw.ml" +# 52660 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -52682,15 +52664,15 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 52688 "src/ocaml/preprocess/parser_raw.ml" +# 52670 "src/ocaml/preprocess/parser_raw.ml" in -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 3753 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 52694 "src/ocaml/preprocess/parser_raw.ml" +# 52676 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52729,9 +52711,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52735 "src/ocaml/preprocess/parser_raw.ml" +# 52717 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -52740,16 +52722,16 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 52747 "src/ocaml/preprocess/parser_raw.ml" +# 52729 "src/ocaml/preprocess/parser_raw.ml" in -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 3753 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 52753 "src/ocaml/preprocess/parser_raw.ml" +# 52735 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52815,9 +52797,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52821 "src/ocaml/preprocess/parser_raw.ml" +# 52803 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -52829,18 +52811,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 52838 "src/ocaml/preprocess/parser_raw.ml" +# 52820 "src/ocaml/preprocess/parser_raw.ml" in -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 3753 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 52844 "src/ocaml/preprocess/parser_raw.ml" +# 52826 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52863,9 +52845,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3718 "src/ocaml/preprocess/parser_raw.mly" +# 3749 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 52869 "src/ocaml/preprocess/parser_raw.ml" +# 52851 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52902,9 +52884,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3720 "src/ocaml/preprocess/parser_raw.mly" +# 3751 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 52908 "src/ocaml/preprocess/parser_raw.ml" +# 52890 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52941,14 +52923,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = -# 3695 "src/ocaml/preprocess/parser_raw.mly" +# 3726 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 52947 "src/ocaml/preprocess/parser_raw.ml" +# 52929 "src/ocaml/preprocess/parser_raw.ml" in -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 3753 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 52952 "src/ocaml/preprocess/parser_raw.ml" +# 52934 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52988,9 +52970,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52994 "src/ocaml/preprocess/parser_raw.ml" +# 52976 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -52998,15 +52980,15 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = let _2 = _2_inlined1 in -# 3697 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 53004 "src/ocaml/preprocess/parser_raw.ml" +# 52986 "src/ocaml/preprocess/parser_raw.ml" in -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 3753 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 53010 "src/ocaml/preprocess/parser_raw.ml" +# 52992 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53045,9 +53027,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53051 "src/ocaml/preprocess/parser_raw.ml" +# 53033 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -53056,16 +53038,16 @@ module Tables = struct let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3730 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 53063 "src/ocaml/preprocess/parser_raw.ml" +# 53045 "src/ocaml/preprocess/parser_raw.ml" in -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 3753 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 53069 "src/ocaml/preprocess/parser_raw.ml" +# 53051 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53131,9 +53113,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53137 "src/ocaml/preprocess/parser_raw.ml" +# 53119 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -53145,18 +53127,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3702 "src/ocaml/preprocess/parser_raw.mly" +# 3733 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 53154 "src/ocaml/preprocess/parser_raw.ml" +# 53136 "src/ocaml/preprocess/parser_raw.ml" in -# 3722 "src/ocaml/preprocess/parser_raw.mly" +# 3753 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 53160 "src/ocaml/preprocess/parser_raw.ml" +# 53142 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53171,10 +53153,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = -# 1321 "src/ocaml/preprocess/parser_raw.mly" + let _v : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = +# 1362 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 53178 "src/ocaml/preprocess/parser_raw.ml" +# 53160 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53220,32 +53202,32 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in - let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = let x = + let _v : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = let x = let x = let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2545 "src/ocaml/preprocess/parser_raw.mly" +# 2584 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3, make_loc _sloc ) -# 53237 "src/ocaml/preprocess/parser_raw.ml" +# 53219 "src/ocaml/preprocess/parser_raw.ml" in # 183 "" ( x ) -# 53243 "src/ocaml/preprocess/parser_raw.ml" +# 53225 "src/ocaml/preprocess/parser_raw.ml" in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53249 "src/ocaml/preprocess/parser_raw.ml" +# 53231 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53268,9 +53250,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.function_param list) = -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1395 "src/ocaml/preprocess/parser_raw.mly" ( List.rev x ) -# 53274 "src/ocaml/preprocess/parser_raw.ml" +# 53256 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53300,9 +53282,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.function_param list) = -# 1356 "src/ocaml/preprocess/parser_raw.mly" +# 1397 "src/ocaml/preprocess/parser_raw.mly" ( List.rev_append x xs ) -# 53306 "src/ocaml/preprocess/parser_raw.ml" +# 53288 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53320,14 +53302,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : (Jane_syntax.Comprehensions.clause) = Obj.magic x in + let x : (Parsetree.comprehension_clause) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Jane_syntax.Comprehensions.clause list) = -# 1335 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.comprehension_clause list) = +# 1376 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 53331 "src/ocaml/preprocess/parser_raw.ml" +# 53313 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53351,15 +53333,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let x : (Jane_syntax.Comprehensions.clause) = Obj.magic x in - let xs : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs in + let x : (Parsetree.comprehension_clause) = Obj.magic x in + let xs : (Parsetree.comprehension_clause list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v : (Jane_syntax.Comprehensions.clause list) = -# 1337 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.comprehension_clause list) = +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53363 "src/ocaml/preprocess/parser_raw.ml" +# 53345 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53382,9 +53364,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1335 "src/ocaml/preprocess/parser_raw.mly" +# 1376 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 53388 "src/ocaml/preprocess/parser_raw.ml" +# 53370 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53414,9 +53396,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1337 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53420 "src/ocaml/preprocess/parser_raw.ml" +# 53402 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53439,9 +53421,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.arg_label * Parsetree.expression) list) = -# 1335 "src/ocaml/preprocess/parser_raw.mly" +# 1376 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 53445 "src/ocaml/preprocess/parser_raw.ml" +# 53427 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53471,9 +53453,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.arg_label * Parsetree.expression) list) = -# 1337 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53477 "src/ocaml/preprocess/parser_raw.ml" +# 53459 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53496,9 +53478,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (string list) = -# 1335 "src/ocaml/preprocess/parser_raw.mly" +# 1376 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 53502 "src/ocaml/preprocess/parser_raw.ml" +# 53484 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53528,9 +53510,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (string list) = -# 1337 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53534 "src/ocaml/preprocess/parser_raw.ml" +# 53516 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53559,29 +53541,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = let x = + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = let x = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53573 "src/ocaml/preprocess/parser_raw.ml" +# 53554 "src/ocaml/preprocess/parser_raw.ml" in -# 4376 "src/ocaml/preprocess/parser_raw.mly" +# 4397 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 53579 "src/ocaml/preprocess/parser_raw.ml" +# 53560 "src/ocaml/preprocess/parser_raw.ml" in -# 1335 "src/ocaml/preprocess/parser_raw.mly" +# 1376 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 53585 "src/ocaml/preprocess/parser_raw.ml" +# 53566 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53630,7 +53611,7 @@ module Tables = struct }; } = _menhir_stack in let _6 : unit = Obj.magic _6 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _4 : unit = Obj.magic _4 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -53638,29 +53619,28 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = let x = + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = let x = let tyvar = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53652 "src/ocaml/preprocess/parser_raw.ml" +# 53632 "src/ocaml/preprocess/parser_raw.ml" in -# 4378 "src/ocaml/preprocess/parser_raw.mly" +# 4399 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 53658 "src/ocaml/preprocess/parser_raw.ml" +# 53638 "src/ocaml/preprocess/parser_raw.ml" in -# 1335 "src/ocaml/preprocess/parser_raw.mly" +# 1376 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 53664 "src/ocaml/preprocess/parser_raw.ml" +# 53644 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53692,34 +53672,32 @@ module Tables = struct } = _menhir_stack in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = let x = + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = let x = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53711 "src/ocaml/preprocess/parser_raw.ml" +# 53689 "src/ocaml/preprocess/parser_raw.ml" in -# 4376 "src/ocaml/preprocess/parser_raw.mly" +# 4397 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 53717 "src/ocaml/preprocess/parser_raw.ml" +# 53695 "src/ocaml/preprocess/parser_raw.ml" in -# 1337 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53723 "src/ocaml/preprocess/parser_raw.ml" +# 53701 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53774,39 +53752,37 @@ module Tables = struct }; } = _menhir_stack in let _6 : unit = Obj.magic _6 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _4 : unit = Obj.magic _4 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = let x = + let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = let x = let tyvar = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53798 "src/ocaml/preprocess/parser_raw.ml" +# 53774 "src/ocaml/preprocess/parser_raw.ml" in -# 4378 "src/ocaml/preprocess/parser_raw.mly" +# 4399 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 53804 "src/ocaml/preprocess/parser_raw.ml" +# 53780 "src/ocaml/preprocess/parser_raw.ml" in -# 1337 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53810 "src/ocaml/preprocess/parser_raw.ml" +# 53786 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53831,12 +53807,12 @@ module Tables = struct let _v : (Parsetree.case list) = let _1 = # 124 "" ( None ) -# 53835 "src/ocaml/preprocess/parser_raw.ml" +# 53811 "src/ocaml/preprocess/parser_raw.ml" in -# 1446 "src/ocaml/preprocess/parser_raw.mly" +# 1487 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 53840 "src/ocaml/preprocess/parser_raw.ml" +# 53816 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53870,13 +53846,13 @@ module Tables = struct # 126 "" ( Some x ) -# 53874 "src/ocaml/preprocess/parser_raw.ml" +# 53850 "src/ocaml/preprocess/parser_raw.ml" in -# 1446 "src/ocaml/preprocess/parser_raw.mly" +# 1487 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 53880 "src/ocaml/preprocess/parser_raw.ml" +# 53856 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53913,9 +53889,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.case list) = -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1491 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 53919 "src/ocaml/preprocess/parser_raw.ml" +# 53895 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53939,20 +53915,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type list) = let xs = let x = -# 4424 "src/ocaml/preprocess/parser_raw.mly" +# 4444 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53945 "src/ocaml/preprocess/parser_raw.ml" +# 53921 "src/ocaml/preprocess/parser_raw.ml" in -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 53950 "src/ocaml/preprocess/parser_raw.ml" +# 53926 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 53956 "src/ocaml/preprocess/parser_raw.ml" +# 53932 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53990,20 +53966,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type list) = let xs = let x = -# 4424 "src/ocaml/preprocess/parser_raw.mly" +# 4444 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53996 "src/ocaml/preprocess/parser_raw.ml" +# 53972 "src/ocaml/preprocess/parser_raw.ml" in -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54001 "src/ocaml/preprocess/parser_raw.ml" +# 53977 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54007 "src/ocaml/preprocess/parser_raw.ml" +# 53983 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54021,19 +53997,19 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : (Jane_syntax.Comprehensions.clause_binding) = Obj.magic x in + let x : (Parsetree.comprehension_clause_binding) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (Jane_syntax.Comprehensions.clause_binding list) = let xs = -# 1381 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.comprehension_clause_binding list) = let xs = +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54032 "src/ocaml/preprocess/parser_raw.ml" +# 54008 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54037 "src/ocaml/preprocess/parser_raw.ml" +# 54013 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54063,21 +54039,21 @@ module Tables = struct }; }; } = _menhir_stack in - let x : (Jane_syntax.Comprehensions.clause_binding) = Obj.magic x in + let x : (Parsetree.comprehension_clause_binding) = Obj.magic x in let _2 : unit = Obj.magic _2 in - let xs : (Jane_syntax.Comprehensions.clause_binding list) = Obj.magic xs in + let xs : (Parsetree.comprehension_clause_binding list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in - let _v : (Jane_syntax.Comprehensions.clause_binding list) = let xs = -# 1385 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.comprehension_clause_binding list) = let xs = +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54076 "src/ocaml/preprocess/parser_raw.ml" +# 54052 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54081 "src/ocaml/preprocess/parser_raw.ml" +# 54057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54100,14 +54076,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.with_constraint list) = let xs = -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54106 "src/ocaml/preprocess/parser_raw.ml" +# 54082 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54111 "src/ocaml/preprocess/parser_raw.ml" +# 54087 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54144,14 +54120,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.with_constraint list) = let xs = -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54150 "src/ocaml/preprocess/parser_raw.ml" +# 54126 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54155 "src/ocaml/preprocess/parser_raw.ml" +# 54131 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54174,14 +54150,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.row_field list) = let xs = -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54180 "src/ocaml/preprocess/parser_raw.ml" +# 54156 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54185 "src/ocaml/preprocess/parser_raw.ml" +# 54161 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54218,14 +54194,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.row_field list) = let xs = -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54224 "src/ocaml/preprocess/parser_raw.ml" +# 54200 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54229 "src/ocaml/preprocess/parser_raw.ml" +# 54205 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54248,14 +54224,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = let xs = -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54254 "src/ocaml/preprocess/parser_raw.ml" +# 54230 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54259 "src/ocaml/preprocess/parser_raw.ml" +# 54235 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54292,14 +54268,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = let xs = -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54298 "src/ocaml/preprocess/parser_raw.ml" +# 54274 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54303 "src/ocaml/preprocess/parser_raw.ml" +# 54279 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54322,14 +54298,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54328 "src/ocaml/preprocess/parser_raw.ml" +# 54304 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54333 "src/ocaml/preprocess/parser_raw.ml" +# 54309 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54366,14 +54342,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54372 "src/ocaml/preprocess/parser_raw.ml" +# 54348 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54377 "src/ocaml/preprocess/parser_raw.ml" +# 54353 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54396,14 +54372,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54402 "src/ocaml/preprocess/parser_raw.ml" +# 54378 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54407 "src/ocaml/preprocess/parser_raw.ml" +# 54383 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54440,14 +54416,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54446 "src/ocaml/preprocess/parser_raw.ml" +# 54422 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54451 "src/ocaml/preprocess/parser_raw.ml" +# 54427 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54479,9 +54455,9 @@ module Tables = struct let _v : (Parsetree.constructor_argument list) = let xs = let x = let gbl = -# 5158 "src/ocaml/preprocess/parser_raw.mly" +# 5173 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 54485 "src/ocaml/preprocess/parser_raw.ml" +# 54461 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -54491,24 +54467,24 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4268 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 54500 "src/ocaml/preprocess/parser_raw.ml" +# 54476 "src/ocaml/preprocess/parser_raw.ml" in -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54506 "src/ocaml/preprocess/parser_raw.ml" +# 54482 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54512 "src/ocaml/preprocess/parser_raw.ml" +# 54488 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54551,9 +54527,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5159 "src/ocaml/preprocess/parser_raw.mly" +# 5174 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 54557 "src/ocaml/preprocess/parser_raw.ml" +# 54533 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -54564,24 +54540,24 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4268 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 54573 "src/ocaml/preprocess/parser_raw.ml" +# 54549 "src/ocaml/preprocess/parser_raw.ml" in -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54579 "src/ocaml/preprocess/parser_raw.ml" +# 54555 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54585 "src/ocaml/preprocess/parser_raw.ml" +# 54561 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54628,9 +54604,9 @@ module Tables = struct let x = let _endpos__0_ = _endpos__2_ in let gbl = -# 5158 "src/ocaml/preprocess/parser_raw.mly" +# 5173 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 54634 "src/ocaml/preprocess/parser_raw.ml" +# 54610 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -54640,24 +54616,24 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4268 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 54649 "src/ocaml/preprocess/parser_raw.ml" +# 54625 "src/ocaml/preprocess/parser_raw.ml" in -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54655 "src/ocaml/preprocess/parser_raw.ml" +# 54631 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54661 "src/ocaml/preprocess/parser_raw.ml" +# 54637 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54714,9 +54690,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5159 "src/ocaml/preprocess/parser_raw.mly" +# 5174 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 54720 "src/ocaml/preprocess/parser_raw.ml" +# 54696 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -54727,24 +54703,24 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4268 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 54736 "src/ocaml/preprocess/parser_raw.ml" +# 54712 "src/ocaml/preprocess/parser_raw.ml" in -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54742 "src/ocaml/preprocess/parser_raw.ml" +# 54718 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54748 "src/ocaml/preprocess/parser_raw.ml" +# 54724 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54768,20 +54744,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : ((string option * Parsetree.core_type) list) = let xs = let x = -# 4678 "src/ocaml/preprocess/parser_raw.mly" +# 4697 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54774 "src/ocaml/preprocess/parser_raw.ml" +# 54750 "src/ocaml/preprocess/parser_raw.ml" in -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54779 "src/ocaml/preprocess/parser_raw.ml" +# 54755 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54785 "src/ocaml/preprocess/parser_raw.ml" +# 54761 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54814,29 +54790,29 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54820 "src/ocaml/preprocess/parser_raw.ml" +# 54796 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in let _endpos = _endpos_ty_ in let _v : ((string option * Parsetree.core_type) list) = let xs = let x = -# 4680 "src/ocaml/preprocess/parser_raw.mly" +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 54829 "src/ocaml/preprocess/parser_raw.ml" +# 54805 "src/ocaml/preprocess/parser_raw.ml" in -# 1381 "src/ocaml/preprocess/parser_raw.mly" +# 1422 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 54834 "src/ocaml/preprocess/parser_raw.ml" +# 54810 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54840 "src/ocaml/preprocess/parser_raw.ml" +# 54816 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54874,20 +54850,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : ((string option * Parsetree.core_type) list) = let xs = let x = -# 4678 "src/ocaml/preprocess/parser_raw.mly" +# 4697 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 54880 "src/ocaml/preprocess/parser_raw.ml" +# 54856 "src/ocaml/preprocess/parser_raw.ml" in -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54885 "src/ocaml/preprocess/parser_raw.ml" +# 54861 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54891 "src/ocaml/preprocess/parser_raw.ml" +# 54867 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54932,9 +54908,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 54938 "src/ocaml/preprocess/parser_raw.ml" +# 54914 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.core_type) list) = Obj.magic xs in @@ -54943,20 +54919,20 @@ module Tables = struct let _endpos = _endpos_ty_ in let _v : ((string option * Parsetree.core_type) list) = let xs = let x = -# 4680 "src/ocaml/preprocess/parser_raw.mly" +# 4699 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 54949 "src/ocaml/preprocess/parser_raw.ml" +# 54925 "src/ocaml/preprocess/parser_raw.ml" in -# 1385 "src/ocaml/preprocess/parser_raw.mly" +# 1426 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 54954 "src/ocaml/preprocess/parser_raw.ml" +# 54930 "src/ocaml/preprocess/parser_raw.ml" in -# 1389 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54960 "src/ocaml/preprocess/parser_raw.ml" +# 54936 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54993,14 +54969,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type list) = let x = -# 4824 "src/ocaml/preprocess/parser_raw.mly" +# 4841 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54999 "src/ocaml/preprocess/parser_raw.ml" +# 54975 "src/ocaml/preprocess/parser_raw.ml" in -# 1412 "src/ocaml/preprocess/parser_raw.mly" +# 1453 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55004 "src/ocaml/preprocess/parser_raw.ml" +# 54980 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55048,7 +55024,7 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let id : (string) = Obj.magic id in let _1 : unit = Obj.magic _1 in @@ -55062,16 +55038,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4826 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = Some id; jkind } ) -# 55069 "src/ocaml/preprocess/parser_raw.ml" +# 4843 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) +# 55044 "src/ocaml/preprocess/parser_raw.ml" in -# 1412 "src/ocaml/preprocess/parser_raw.mly" +# 1453 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55075 "src/ocaml/preprocess/parser_raw.ml" +# 55050 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55113,7 +55088,7 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -55126,16 +55101,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4829 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = None; jkind } ) -# 55133 "src/ocaml/preprocess/parser_raw.ml" +# 4845 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) +# 55107 "src/ocaml/preprocess/parser_raw.ml" in -# 1412 "src/ocaml/preprocess/parser_raw.mly" +# 1453 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 55139 "src/ocaml/preprocess/parser_raw.ml" +# 55113 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55174,20 +55148,20 @@ module Tables = struct let _v : (Parsetree.core_type list) = let x2 = let _1 = _1_inlined1 in -# 4824 "src/ocaml/preprocess/parser_raw.mly" +# 4841 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55180 "src/ocaml/preprocess/parser_raw.ml" +# 55154 "src/ocaml/preprocess/parser_raw.ml" in let x1 = -# 4824 "src/ocaml/preprocess/parser_raw.mly" +# 4841 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55186 "src/ocaml/preprocess/parser_raw.ml" +# 55160 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55191 "src/ocaml/preprocess/parser_raw.ml" +# 55165 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55235,7 +55209,7 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let id : (string) = Obj.magic id in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -55250,21 +55224,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4826 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = Some id; jkind } ) -# 55257 "src/ocaml/preprocess/parser_raw.ml" +# 4843 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) +# 55230 "src/ocaml/preprocess/parser_raw.ml" in let x1 = -# 4824 "src/ocaml/preprocess/parser_raw.mly" +# 4841 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55263 "src/ocaml/preprocess/parser_raw.ml" +# 55236 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55268 "src/ocaml/preprocess/parser_raw.ml" +# 55241 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55306,7 +55279,7 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -55320,21 +55293,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4829 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = None; jkind } ) -# 55327 "src/ocaml/preprocess/parser_raw.ml" +# 4845 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) +# 55299 "src/ocaml/preprocess/parser_raw.ml" in let x1 = -# 4824 "src/ocaml/preprocess/parser_raw.mly" +# 4841 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55333 "src/ocaml/preprocess/parser_raw.ml" +# 55305 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55338 "src/ocaml/preprocess/parser_raw.ml" +# 55310 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55384,7 +55356,7 @@ module Tables = struct } = _menhir_stack in let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let id : (string) = Obj.magic id in let _1 : unit = Obj.magic _1 in @@ -55394,9 +55366,9 @@ module Tables = struct let _v : (Parsetree.core_type list) = let x2 = let _1 = _1_inlined1 in -# 4824 "src/ocaml/preprocess/parser_raw.mly" +# 4841 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55400 "src/ocaml/preprocess/parser_raw.ml" +# 55372 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -55404,16 +55376,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4826 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = Some id; jkind } ) -# 55411 "src/ocaml/preprocess/parser_raw.ml" +# 4843 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) +# 55382 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55417 "src/ocaml/preprocess/parser_raw.ml" +# 55388 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55479,12 +55450,12 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind_inlined1 : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind_inlined1 in + let jkind_inlined1 : (Parsetree.jkind_annotation) = Obj.magic jkind_inlined1 in let _3_inlined1 : unit = Obj.magic _3_inlined1 in let id_inlined1 : (string) = Obj.magic id_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let id : (string) = Obj.magic id in let _1 : unit = Obj.magic _1 in @@ -55497,10 +55468,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4826 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = Some id; jkind } ) -# 55504 "src/ocaml/preprocess/parser_raw.ml" +# 4843 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) +# 55474 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -55508,16 +55478,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4826 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = Some id; jkind } ) -# 55515 "src/ocaml/preprocess/parser_raw.ml" +# 4843 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) +# 55484 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55521 "src/ocaml/preprocess/parser_raw.ml" +# 55490 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55577,11 +55546,11 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind_inlined1 : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind_inlined1 in + let jkind_inlined1 : (Parsetree.jkind_annotation) = Obj.magic jkind_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let id : (string) = Obj.magic id in let _1 : unit = Obj.magic _1 in @@ -55594,10 +55563,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4829 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = None; jkind } ) -# 55601 "src/ocaml/preprocess/parser_raw.ml" +# 4845 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) +# 55569 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -55605,16 +55573,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4826 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = Some id; jkind } ) -# 55612 "src/ocaml/preprocess/parser_raw.ml" +# 4843 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) +# 55579 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55618 "src/ocaml/preprocess/parser_raw.ml" +# 55585 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55658,7 +55625,7 @@ module Tables = struct } = _menhir_stack in let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -55667,9 +55634,9 @@ module Tables = struct let _v : (Parsetree.core_type list) = let x2 = let _1 = _1_inlined1 in -# 4824 "src/ocaml/preprocess/parser_raw.mly" +# 4841 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55673 "src/ocaml/preprocess/parser_raw.ml" +# 55640 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -55677,16 +55644,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4829 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = None; jkind } ) -# 55684 "src/ocaml/preprocess/parser_raw.ml" +# 4845 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) +# 55650 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55690 "src/ocaml/preprocess/parser_raw.ml" +# 55656 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55746,12 +55712,12 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind_inlined1 : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind_inlined1 in + let jkind_inlined1 : (Parsetree.jkind_annotation) = Obj.magic jkind_inlined1 in let _3 : unit = Obj.magic _3 in let id : (string) = Obj.magic id in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -55763,10 +55729,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4826 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = Some id; jkind } ) -# 55770 "src/ocaml/preprocess/parser_raw.ml" +# 4843 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) +# 55735 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -55774,16 +55739,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4829 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = None; jkind } ) -# 55781 "src/ocaml/preprocess/parser_raw.ml" +# 4845 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) +# 55745 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55787 "src/ocaml/preprocess/parser_raw.ml" +# 55751 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55837,11 +55801,11 @@ module Tables = struct }; }; } = _menhir_stack in - let jkind_inlined1 : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind_inlined1 in + let jkind_inlined1 : (Parsetree.jkind_annotation) = Obj.magic jkind_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let jkind : (Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic jkind in + let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -55853,10 +55817,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4829 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = None; jkind } ) -# 55860 "src/ocaml/preprocess/parser_raw.ml" +# 4845 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) +# 55823 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -55864,16 +55827,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4829 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) @@ - Ltyp_var { name = None; jkind } ) -# 55871 "src/ocaml/preprocess/parser_raw.ml" +# 4845 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) +# 55833 "src/ocaml/preprocess/parser_raw.ml" in -# 1416 "src/ocaml/preprocess/parser_raw.mly" +# 1457 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 55877 "src/ocaml/preprocess/parser_raw.ml" +# 55839 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55896,9 +55858,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.row_field) = -# 4843 "src/ocaml/preprocess/parser_raw.mly" +# 4858 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55902 "src/ocaml/preprocess/parser_raw.ml" +# 55864 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55924,9 +55886,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4845 "src/ocaml/preprocess/parser_raw.mly" +# 4860 "src/ocaml/preprocess/parser_raw.mly" ( Rf.inherit_ ~loc:(make_loc _sloc) _1 ) -# 55930 "src/ocaml/preprocess/parser_raw.ml" +# 55892 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55951,24 +55913,24 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 124 "" ( None ) -# 55955 "src/ocaml/preprocess/parser_raw.ml" +# 55917 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55961 "src/ocaml/preprocess/parser_raw.ml" +# 55923 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55966 "src/ocaml/preprocess/parser_raw.ml" +# 55928 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 55972 "src/ocaml/preprocess/parser_raw.ml" +# 55934 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56000,24 +55962,24 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 126 "" ( Some x ) -# 56004 "src/ocaml/preprocess/parser_raw.ml" +# 55966 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56010 "src/ocaml/preprocess/parser_raw.ml" +# 55972 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56015 "src/ocaml/preprocess/parser_raw.ml" +# 55977 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56021 "src/ocaml/preprocess/parser_raw.ml" +# 55983 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56055,7 +56017,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -56063,7 +56025,7 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 124 "" ( None ) -# 56067 "src/ocaml/preprocess/parser_raw.ml" +# 56029 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -56072,18 +56034,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 56076 "src/ocaml/preprocess/parser_raw.ml" +# 56038 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56081 "src/ocaml/preprocess/parser_raw.ml" +# 56043 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56087 "src/ocaml/preprocess/parser_raw.ml" +# 56049 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -56092,22 +56054,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56098 "src/ocaml/preprocess/parser_raw.ml" +# 56060 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 56104 "src/ocaml/preprocess/parser_raw.ml" +# 56066 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -56120,19 +56082,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 56124 "src/ocaml/preprocess/parser_raw.ml" +# 56086 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56130 "src/ocaml/preprocess/parser_raw.ml" +# 56092 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56136 "src/ocaml/preprocess/parser_raw.ml" +# 56098 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56177,7 +56139,7 @@ module Tables = struct let x : unit = Obj.magic x in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -56185,7 +56147,7 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 126 "" ( Some x ) -# 56189 "src/ocaml/preprocess/parser_raw.ml" +# 56151 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -56194,18 +56156,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 56198 "src/ocaml/preprocess/parser_raw.ml" +# 56160 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56203 "src/ocaml/preprocess/parser_raw.ml" +# 56165 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56209 "src/ocaml/preprocess/parser_raw.ml" +# 56171 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -56214,22 +56176,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56220 "src/ocaml/preprocess/parser_raw.ml" +# 56182 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 56226 "src/ocaml/preprocess/parser_raw.ml" +# 56188 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -56242,19 +56204,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 56246 "src/ocaml/preprocess/parser_raw.ml" +# 56208 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56252 "src/ocaml/preprocess/parser_raw.ml" +# 56214 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56258 "src/ocaml/preprocess/parser_raw.ml" +# 56220 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56292,20 +56254,20 @@ module Tables = struct let _endpos = _endpos_xs_ in let _v : (Parsetree.expression list) = let x = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56298 "src/ocaml/preprocess/parser_raw.ml" +# 56260 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56303 "src/ocaml/preprocess/parser_raw.ml" +# 56265 "src/ocaml/preprocess/parser_raw.ml" in -# 1437 "src/ocaml/preprocess/parser_raw.mly" +# 1478 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56309 "src/ocaml/preprocess/parser_raw.ml" +# 56271 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56357,7 +56319,7 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -56370,18 +56332,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 56374 "src/ocaml/preprocess/parser_raw.ml" +# 56336 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56379 "src/ocaml/preprocess/parser_raw.ml" +# 56341 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 56385 "src/ocaml/preprocess/parser_raw.ml" +# 56347 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -56390,22 +56352,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56396 "src/ocaml/preprocess/parser_raw.ml" +# 56358 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 56402 "src/ocaml/preprocess/parser_raw.ml" +# 56364 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -56418,19 +56380,19 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 56422 "src/ocaml/preprocess/parser_raw.ml" +# 56384 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56428 "src/ocaml/preprocess/parser_raw.ml" +# 56390 "src/ocaml/preprocess/parser_raw.ml" in -# 1437 "src/ocaml/preprocess/parser_raw.mly" +# 1478 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56434 "src/ocaml/preprocess/parser_raw.ml" +# 56396 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56456,36 +56418,36 @@ module Tables = struct } = _menhir_stack in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56462 "src/ocaml/preprocess/parser_raw.ml" +# 56424 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_oe_ in - let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = + let _v : ((string Asttypes.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) -# 56470 "src/ocaml/preprocess/parser_raw.ml" +# 56432 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56477 "src/ocaml/preprocess/parser_raw.ml" +# 56439 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 56485 "src/ocaml/preprocess/parser_raw.ml" +# 56447 "src/ocaml/preprocess/parser_raw.ml" in -# 3561 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -56495,13 +56457,13 @@ module Tables = struct label, e in label, e ) -# 56499 "src/ocaml/preprocess/parser_raw.ml" +# 56461 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56505 "src/ocaml/preprocess/parser_raw.ml" +# 56467 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56534,36 +56496,36 @@ module Tables = struct let x : unit = Obj.magic x in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56540 "src/ocaml/preprocess/parser_raw.ml" +# 56502 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = + let _v : ((string Asttypes.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 56548 "src/ocaml/preprocess/parser_raw.ml" +# 56510 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56555 "src/ocaml/preprocess/parser_raw.ml" +# 56517 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 56563 "src/ocaml/preprocess/parser_raw.ml" +# 56525 "src/ocaml/preprocess/parser_raw.ml" in -# 3561 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -56573,13 +56535,13 @@ module Tables = struct label, e in label, e ) -# 56577 "src/ocaml/preprocess/parser_raw.ml" +# 56539 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56583 "src/ocaml/preprocess/parser_raw.ml" +# 56545 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56615,35 +56577,35 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : ((string Location.loc * Parsetree.expression) list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 56625 "src/ocaml/preprocess/parser_raw.ml" +# 56587 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((string Location.loc * Parsetree.expression) list) = let x = + let _v : ((string Asttypes.loc * Parsetree.expression) list) = let x = let label = let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56635 "src/ocaml/preprocess/parser_raw.ml" +# 56597 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 56643 "src/ocaml/preprocess/parser_raw.ml" +# 56605 "src/ocaml/preprocess/parser_raw.ml" in -# 3561 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -56653,13 +56615,13 @@ module Tables = struct label, e in label, e ) -# 56657 "src/ocaml/preprocess/parser_raw.ml" +# 56619 "src/ocaml/preprocess/parser_raw.ml" in -# 1437 "src/ocaml/preprocess/parser_raw.mly" +# 1478 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56663 "src/ocaml/preprocess/parser_raw.ml" +# 56625 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56684,12 +56646,12 @@ module Tables = struct let _v : (Parsetree.pattern list) = let _2 = # 124 "" ( None ) -# 56688 "src/ocaml/preprocess/parser_raw.ml" +# 56650 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56693 "src/ocaml/preprocess/parser_raw.ml" +# 56655 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56723,13 +56685,13 @@ module Tables = struct # 126 "" ( Some x ) -# 56727 "src/ocaml/preprocess/parser_raw.ml" +# 56689 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56733 "src/ocaml/preprocess/parser_raw.ml" +# 56695 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56766,9 +56728,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.pattern list) = -# 1437 "src/ocaml/preprocess/parser_raw.mly" +# 1478 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 56772 "src/ocaml/preprocess/parser_raw.ml" +# 56734 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56804,10 +56766,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_eo_ in - let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = + let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) -# 56811 "src/ocaml/preprocess/parser_raw.ml" +# 56773 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -56815,9 +56777,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 56821 "src/ocaml/preprocess/parser_raw.ml" +# 56783 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -56825,7 +56787,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3544 "src/ocaml/preprocess/parser_raw.mly" +# 3575 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -56835,13 +56797,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint ~loc:constraint_loc ~modes:[] e c ) -# 56839 "src/ocaml/preprocess/parser_raw.ml" +# 56801 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56845 "src/ocaml/preprocess/parser_raw.ml" +# 56807 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56884,10 +56846,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = + let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 56891 "src/ocaml/preprocess/parser_raw.ml" +# 56853 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -56895,9 +56857,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 56901 "src/ocaml/preprocess/parser_raw.ml" +# 56863 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -56905,7 +56867,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3544 "src/ocaml/preprocess/parser_raw.mly" +# 3575 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -56915,13 +56877,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint ~loc:constraint_loc ~modes:[] e c ) -# 56919 "src/ocaml/preprocess/parser_raw.ml" +# 56881 "src/ocaml/preprocess/parser_raw.ml" in -# 1433 "src/ocaml/preprocess/parser_raw.mly" +# 1474 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 56925 "src/ocaml/preprocess/parser_raw.ml" +# 56887 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56963,7 +56925,7 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : ((Longident.t Location.loc * Parsetree.expression) list) = Obj.magic xs in + let xs : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let eo : (Parsetree.expression option) = Obj.magic eo in let c : (Parsetree.type_constraint option) = Obj.magic c in @@ -56971,15 +56933,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let x = + let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let x = let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 56983 "src/ocaml/preprocess/parser_raw.ml" +# 56945 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -56987,7 +56949,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3544 "src/ocaml/preprocess/parser_raw.mly" +# 3575 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -56997,13 +56959,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint ~loc:constraint_loc ~modes:[] e c ) -# 57001 "src/ocaml/preprocess/parser_raw.ml" +# 56963 "src/ocaml/preprocess/parser_raw.ml" in -# 1437 "src/ocaml/preprocess/parser_raw.mly" +# 1478 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 57007 "src/ocaml/preprocess/parser_raw.ml" +# 56969 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57026,14 +56988,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57032 "src/ocaml/preprocess/parser_raw.ml" +# 56994 "src/ocaml/preprocess/parser_raw.ml" in -# 2671 "src/ocaml/preprocess/parser_raw.mly" +# 2710 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57037 "src/ocaml/preprocess/parser_raw.ml" +# 56999 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57071,7 +57033,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -57082,18 +57044,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 57086 "src/ocaml/preprocess/parser_raw.ml" +# 57048 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57091 "src/ocaml/preprocess/parser_raw.ml" +# 57053 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 57097 "src/ocaml/preprocess/parser_raw.ml" +# 57059 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -57102,22 +57064,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57108 "src/ocaml/preprocess/parser_raw.ml" +# 57070 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 57114 "src/ocaml/preprocess/parser_raw.ml" +# 57076 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -57130,13 +57092,13 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 57134 "src/ocaml/preprocess/parser_raw.ml" +# 57096 "src/ocaml/preprocess/parser_raw.ml" in -# 2671 "src/ocaml/preprocess/parser_raw.mly" +# 2710 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57140 "src/ocaml/preprocess/parser_raw.ml" +# 57102 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57192,30 +57154,30 @@ module Tables = struct } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let vars_args_res : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in + let vars_args_res : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.type_exception * string Location.loc option) = let attrs = + let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57210 "src/ocaml/preprocess/parser_raw.ml" +# 57172 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined4_ in let attrs2 = let _1 = _1_inlined3 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57219 "src/ocaml/preprocess/parser_raw.ml" +# 57181 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -57225,17 +57187,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57231 "src/ocaml/preprocess/parser_raw.ml" +# 57193 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57239 "src/ocaml/preprocess/parser_raw.ml" +# 57201 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in @@ -57243,17 +57205,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4210 "src/ocaml/preprocess/parser_raw.mly" - ( let vars_jkinds, args, res = vars_args_res in +# 4240 "src/ocaml/preprocess/parser_raw.mly" + ( let vars, args, res = vars_args_res in let loc = make_loc (_startpos, _endpos_attrs2_) in let docs = symbol_docs _sloc in - let ext_ctor = - Jane_syntax.Extension_constructor.extension_constructor_of - ~loc ~name:id ~attrs:(attrs1 @ attrs2) ~docs - (Jext_layout (Lext_decl (vars_jkinds, args, res))) - in - Te.mk_exception ~attrs ext_ctor, ext ) -# 57257 "src/ocaml/preprocess/parser_raw.ml" + Te.mk_exception ~attrs + (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs) + , ext ) +# 57216 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57265,35 +57224,54 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = xss; MenhirLib.EngineTypes.startp = _startpos_xss_; MenhirLib.EngineTypes.endp = _endpos_xss_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in let xss : (Parsetree.signature_item list list) = Obj.magic xss in + let _1 : (Parsetree.modalities) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_xss_ in + let _startpos = _startpos__1_ in let _endpos = _endpos_xss_ in - let _v : (Parsetree.signature) = let _1 = + let _v : (Parsetree.signature) = let _2 = let _1 = # 260 "" ( List.flatten xss ) -# 57283 "src/ocaml/preprocess/parser_raw.ml" +# 57249 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1233 "src/ocaml/preprocess/parser_raw.mly" +# 1277 "src/ocaml/preprocess/parser_raw.mly" ( extra_sig _startpos _endpos _1 ) -# 57291 "src/ocaml/preprocess/parser_raw.ml" +# 57257 "src/ocaml/preprocess/parser_raw.ml" in + let (_endpos__2_, _startpos__2_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__2_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + if _startpos__2_ != _endpos__2_ then + _startpos__2_ + else + _endpos in + let _sloc = (_symbolstartpos, _endpos) in -# 2060 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 57297 "src/ocaml/preprocess/parser_raw.ml" +# 2100 "src/ocaml/preprocess/parser_raw.mly" + ( { psg_modalities = _1; + psg_items = _2; + psg_loc = make_loc _sloc; } ) +# 57275 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57325,9 +57303,9 @@ module Tables = struct let _v : (Parsetree.signature_item) = let _2 = let _1 = _1_inlined1 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57331 "src/ocaml/preprocess/parser_raw.ml" +# 57309 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -57335,10 +57313,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2075 "src/ocaml/preprocess/parser_raw.mly" +# 2117 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) ) -# 57342 "src/ocaml/preprocess/parser_raw.ml" +# 57320 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57362,23 +57340,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2079 "src/ocaml/preprocess/parser_raw.mly" +# 2121 "src/ocaml/preprocess/parser_raw.mly" ( Psig_attribute _1 ) -# 57368 "src/ocaml/preprocess/parser_raw.ml" +# 57346 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1281 "src/ocaml/preprocess/parser_raw.mly" +# 1325 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 57376 "src/ocaml/preprocess/parser_raw.ml" +# 57354 "src/ocaml/preprocess/parser_raw.ml" in -# 2081 "src/ocaml/preprocess/parser_raw.mly" +# 2127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57382 "src/ocaml/preprocess/parser_raw.ml" +# 57360 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57396,29 +57374,71 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.value_description * string Location.loc option) = Obj.magic _1 in + let _1 : (string Asttypes.loc * Parsetree.jkind_annotation) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2084 "src/ocaml/preprocess/parser_raw.mly" +# 2123 "src/ocaml/preprocess/parser_raw.mly" + ( let name, jkind = _1 in + Psig_kind_abbrev (name, jkind) + ) +# 57388 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1325 "src/ocaml/preprocess/parser_raw.mly" + ( mksig ~loc:_sloc _1 ) +# 57396 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2127 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 57402 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.value_description * string Asttypes.loc option) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.signature_item) = let _1 = + let _1 = +# 2130 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 57408 "src/ocaml/preprocess/parser_raw.ml" +# 57428 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 57416 "src/ocaml/preprocess/parser_raw.ml" +# 57436 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57422 "src/ocaml/preprocess/parser_raw.ml" +# 57442 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57436,29 +57456,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.value_description * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.value_description * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2086 "src/ocaml/preprocess/parser_raw.mly" +# 2132 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 57448 "src/ocaml/preprocess/parser_raw.ml" +# 57468 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 57456 "src/ocaml/preprocess/parser_raw.ml" +# 57476 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57462 "src/ocaml/preprocess/parser_raw.ml" +# 57482 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57483,7 +57503,7 @@ module Tables = struct }; } = _menhir_stack in let bs : (Parsetree.type_declaration list) = Obj.magic bs in - let a : ((Asttypes.rec_flag * string Location.loc option) * + let a : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) = Obj.magic a in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in @@ -57493,26 +57513,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1494 "src/ocaml/preprocess/parser_raw.mly" +# 1535 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 57499 "src/ocaml/preprocess/parser_raw.ml" +# 57519 "src/ocaml/preprocess/parser_raw.ml" in -# 3945 "src/ocaml/preprocess/parser_raw.mly" +# 3976 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57504 "src/ocaml/preprocess/parser_raw.ml" +# 57524 "src/ocaml/preprocess/parser_raw.ml" in -# 3928 "src/ocaml/preprocess/parser_raw.mly" +# 3959 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57510 "src/ocaml/preprocess/parser_raw.ml" +# 57530 "src/ocaml/preprocess/parser_raw.ml" in -# 2088 "src/ocaml/preprocess/parser_raw.mly" +# 2134 "src/ocaml/preprocess/parser_raw.mly" ( psig_type _1 ) -# 57516 "src/ocaml/preprocess/parser_raw.ml" +# 57536 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -57520,15 +57540,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 57526 "src/ocaml/preprocess/parser_raw.ml" +# 57546 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57532 "src/ocaml/preprocess/parser_raw.ml" +# 57552 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57553,7 +57573,7 @@ module Tables = struct }; } = _menhir_stack in let bs : (Parsetree.type_declaration list) = Obj.magic bs in - let a : ((Asttypes.rec_flag * string Location.loc option) * + let a : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) = Obj.magic a in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in @@ -57563,26 +57583,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1494 "src/ocaml/preprocess/parser_raw.mly" +# 1535 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 57569 "src/ocaml/preprocess/parser_raw.ml" +# 57589 "src/ocaml/preprocess/parser_raw.ml" in -# 3945 "src/ocaml/preprocess/parser_raw.mly" +# 3976 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57574 "src/ocaml/preprocess/parser_raw.ml" +# 57594 "src/ocaml/preprocess/parser_raw.ml" in -# 3933 "src/ocaml/preprocess/parser_raw.mly" +# 3964 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57580 "src/ocaml/preprocess/parser_raw.ml" +# 57600 "src/ocaml/preprocess/parser_raw.ml" in -# 2090 "src/ocaml/preprocess/parser_raw.mly" +# 2136 "src/ocaml/preprocess/parser_raw.mly" ( psig_typesubst _1 ) -# 57586 "src/ocaml/preprocess/parser_raw.ml" +# 57606 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -57590,15 +57610,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 57596 "src/ocaml/preprocess/parser_raw.ml" +# 57616 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57602 "src/ocaml/preprocess/parser_raw.ml" +# 57622 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57671,7 +57691,7 @@ module Tables = struct let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -57683,16 +57703,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57689 "src/ocaml/preprocess/parser_raw.ml" +# 57709 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1527 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 57696 "src/ocaml/preprocess/parser_raw.ml" +# 57716 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -57700,46 +57720,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57706 "src/ocaml/preprocess/parser_raw.ml" +# 57726 "src/ocaml/preprocess/parser_raw.ml" in let _4 = -# 5128 "src/ocaml/preprocess/parser_raw.mly" +# 5143 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 57712 "src/ocaml/preprocess/parser_raw.ml" +# 57732 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57719 "src/ocaml/preprocess/parser_raw.ml" +# 57739 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4303 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 57731 "src/ocaml/preprocess/parser_raw.ml" +# 57751 "src/ocaml/preprocess/parser_raw.ml" in -# 4290 "src/ocaml/preprocess/parser_raw.mly" +# 4313 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57737 "src/ocaml/preprocess/parser_raw.ml" +# 57757 "src/ocaml/preprocess/parser_raw.ml" in -# 2092 "src/ocaml/preprocess/parser_raw.mly" +# 2138 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 57743 "src/ocaml/preprocess/parser_raw.ml" +# 57763 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -57747,15 +57767,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 57753 "src/ocaml/preprocess/parser_raw.ml" +# 57773 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57759 "src/ocaml/preprocess/parser_raw.ml" +# 57779 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57835,7 +57855,7 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -57847,16 +57867,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57853 "src/ocaml/preprocess/parser_raw.ml" +# 57873 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1527 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 57860 "src/ocaml/preprocess/parser_raw.ml" +# 57880 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -57864,9 +57884,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57870 "src/ocaml/preprocess/parser_raw.ml" +# 57890 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -57875,41 +57895,41 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 5130 "src/ocaml/preprocess/parser_raw.mly" +# 5145 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 57881 "src/ocaml/preprocess/parser_raw.ml" +# 57901 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57889 "src/ocaml/preprocess/parser_raw.ml" +# 57909 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4303 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 57901 "src/ocaml/preprocess/parser_raw.ml" +# 57921 "src/ocaml/preprocess/parser_raw.ml" in -# 4290 "src/ocaml/preprocess/parser_raw.mly" +# 4313 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57907 "src/ocaml/preprocess/parser_raw.ml" +# 57927 "src/ocaml/preprocess/parser_raw.ml" in -# 2092 "src/ocaml/preprocess/parser_raw.mly" +# 2138 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 57913 "src/ocaml/preprocess/parser_raw.ml" +# 57933 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -57917,15 +57937,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 57923 "src/ocaml/preprocess/parser_raw.ml" +# 57943 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57929 "src/ocaml/preprocess/parser_raw.ml" +# 57949 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57943,29 +57963,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.type_exception * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.type_exception * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2094 "src/ocaml/preprocess/parser_raw.mly" +# 2140 "src/ocaml/preprocess/parser_raw.mly" ( psig_exception _1 ) -# 57955 "src/ocaml/preprocess/parser_raw.ml" +# 57975 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 57963 "src/ocaml/preprocess/parser_raw.ml" +# 57983 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57969 "src/ocaml/preprocess/parser_raw.ml" +# 57989 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58017,7 +58037,7 @@ module Tables = struct let body : (Parsetree.module_type) = Obj.magic body in let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58028,9 +58048,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58034 "src/ocaml/preprocess/parser_raw.ml" +# 58054 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -58040,37 +58060,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58046 "src/ocaml/preprocess/parser_raw.ml" +# 58066 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58054 "src/ocaml/preprocess/parser_raw.ml" +# 58074 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2135 "src/ocaml/preprocess/parser_raw.mly" +# 2174 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Md.mk name body ~attrs ~loc ~docs, ext ) -# 58068 "src/ocaml/preprocess/parser_raw.ml" +# 58088 "src/ocaml/preprocess/parser_raw.ml" in -# 2096 "src/ocaml/preprocess/parser_raw.mly" +# 2142 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 58074 "src/ocaml/preprocess/parser_raw.ml" +# 58094 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -58078,15 +58098,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58084 "src/ocaml/preprocess/parser_raw.ml" +# 58104 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58090 "src/ocaml/preprocess/parser_raw.ml" +# 58110 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58145,7 +58165,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58156,9 +58176,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58162 "src/ocaml/preprocess/parser_raw.ml" +# 58182 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -58169,9 +58189,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58175 "src/ocaml/preprocess/parser_raw.ml" +# 58195 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in @@ -58179,9 +58199,9 @@ module Tables = struct let _symbolstartpos = _startpos_id_ in let _sloc = (_symbolstartpos, _endpos) in -# 2176 "src/ocaml/preprocess/parser_raw.mly" +# 2215 "src/ocaml/preprocess/parser_raw.mly" ( Mty.alias ~loc:(make_loc _sloc) id ) -# 58185 "src/ocaml/preprocess/parser_raw.ml" +# 58205 "src/ocaml/preprocess/parser_raw.ml" in let name = @@ -58190,37 +58210,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58196 "src/ocaml/preprocess/parser_raw.ml" +# 58216 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58204 "src/ocaml/preprocess/parser_raw.ml" +# 58224 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2167 "src/ocaml/preprocess/parser_raw.mly" +# 2206 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Md.mk name body ~attrs ~loc ~docs, ext ) -# 58218 "src/ocaml/preprocess/parser_raw.ml" +# 58238 "src/ocaml/preprocess/parser_raw.ml" in -# 2098 "src/ocaml/preprocess/parser_raw.mly" +# 2144 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 58224 "src/ocaml/preprocess/parser_raw.ml" +# 58244 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -58228,15 +58248,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58234 "src/ocaml/preprocess/parser_raw.ml" +# 58254 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58240 "src/ocaml/preprocess/parser_raw.ml" +# 58260 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58254,29 +58274,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_substitution * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_substitution * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2100 "src/ocaml/preprocess/parser_raw.mly" +# 2146 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modsubst body, ext) ) -# 58266 "src/ocaml/preprocess/parser_raw.ml" +# 58286 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58274 "src/ocaml/preprocess/parser_raw.ml" +# 58294 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58280 "src/ocaml/preprocess/parser_raw.ml" +# 58300 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58349,7 +58369,7 @@ module Tables = struct let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58362,9 +58382,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58368 "src/ocaml/preprocess/parser_raw.ml" +# 58388 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -58374,49 +58394,49 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58380 "src/ocaml/preprocess/parser_raw.ml" +# 58400 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58388 "src/ocaml/preprocess/parser_raw.ml" +# 58408 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2212 "src/ocaml/preprocess/parser_raw.mly" +# 2251 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in ext, Md.mk name mty ~attrs ~loc ~docs ) -# 58402 "src/ocaml/preprocess/parser_raw.ml" +# 58422 "src/ocaml/preprocess/parser_raw.ml" in -# 1494 "src/ocaml/preprocess/parser_raw.mly" +# 1535 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 58408 "src/ocaml/preprocess/parser_raw.ml" +# 58428 "src/ocaml/preprocess/parser_raw.ml" in -# 2201 "src/ocaml/preprocess/parser_raw.mly" +# 2240 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58414 "src/ocaml/preprocess/parser_raw.ml" +# 58434 "src/ocaml/preprocess/parser_raw.ml" in -# 2102 "src/ocaml/preprocess/parser_raw.mly" +# 2148 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_recmodule l, ext) ) -# 58420 "src/ocaml/preprocess/parser_raw.ml" +# 58440 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -58424,15 +58444,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58430 "src/ocaml/preprocess/parser_raw.ml" +# 58450 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58436 "src/ocaml/preprocess/parser_raw.ml" +# 58456 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58450,29 +58470,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_type_declaration * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_type_declaration * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2104 "src/ocaml/preprocess/parser_raw.mly" +# 2150 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtype body, ext) ) -# 58462 "src/ocaml/preprocess/parser_raw.ml" +# 58482 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58470 "src/ocaml/preprocess/parser_raw.ml" +# 58490 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58476 "src/ocaml/preprocess/parser_raw.ml" +# 58496 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58490,29 +58510,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_type_declaration * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_type_declaration * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2106 "src/ocaml/preprocess/parser_raw.mly" +# 2152 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtypesubst body, ext) ) -# 58502 "src/ocaml/preprocess/parser_raw.ml" +# 58522 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58510 "src/ocaml/preprocess/parser_raw.ml" +# 58530 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58516 "src/ocaml/preprocess/parser_raw.ml" +# 58536 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58530,29 +58550,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = Obj.magic _1 in + let _1 : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2108 "src/ocaml/preprocess/parser_raw.mly" +# 2154 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_open body, ext) ) -# 58542 "src/ocaml/preprocess/parser_raw.ml" +# 58562 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58550 "src/ocaml/preprocess/parser_raw.ml" +# 58570 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58556 "src/ocaml/preprocess/parser_raw.ml" +# 58576 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58629,14 +58649,14 @@ module Tables = struct let cty : (Parsetree.class_type) = Obj.magic cty in let _7 : unit = Obj.magic _7 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58635 "src/ocaml/preprocess/parser_raw.ml" +# 58655 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58649,9 +58669,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58655 "src/ocaml/preprocess/parser_raw.ml" +# 58675 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -58661,24 +58681,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 58667 "src/ocaml/preprocess/parser_raw.ml" +# 58687 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58675 "src/ocaml/preprocess/parser_raw.ml" +# 58695 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2566 "src/ocaml/preprocess/parser_raw.mly" +# 2605 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -58686,25 +58706,25 @@ module Tables = struct ext, Ci.mk id cty ~virt ~params ~attrs ~loc ~docs ) -# 58690 "src/ocaml/preprocess/parser_raw.ml" +# 58710 "src/ocaml/preprocess/parser_raw.ml" in -# 1494 "src/ocaml/preprocess/parser_raw.mly" +# 1535 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 58696 "src/ocaml/preprocess/parser_raw.ml" +# 58716 "src/ocaml/preprocess/parser_raw.ml" in -# 2554 "src/ocaml/preprocess/parser_raw.mly" +# 2593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58702 "src/ocaml/preprocess/parser_raw.ml" +# 58722 "src/ocaml/preprocess/parser_raw.ml" in -# 2110 "src/ocaml/preprocess/parser_raw.mly" +# 2156 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class l, ext) ) -# 58708 "src/ocaml/preprocess/parser_raw.ml" +# 58728 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -58712,15 +58732,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58718 "src/ocaml/preprocess/parser_raw.ml" +# 58738 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58724 "src/ocaml/preprocess/parser_raw.ml" +# 58744 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58738,29 +58758,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (string Location.loc option * Parsetree.class_type_declaration list) = Obj.magic _1 in + let _1 : (string Asttypes.loc option * Parsetree.class_type_declaration list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 2112 "src/ocaml/preprocess/parser_raw.mly" +# 2158 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class_type l, ext) ) -# 58750 "src/ocaml/preprocess/parser_raw.ml" +# 58770 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1298 "src/ocaml/preprocess/parser_raw.mly" +# 1342 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 58758 "src/ocaml/preprocess/parser_raw.ml" +# 58778 "src/ocaml/preprocess/parser_raw.ml" in -# 2114 "src/ocaml/preprocess/parser_raw.mly" +# 2160 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58764 "src/ocaml/preprocess/parser_raw.ml" +# 58784 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58812,7 +58832,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let thing : (Parsetree.module_type) = Obj.magic thing in let _1 : (Parsetree.attributes) = Obj.magic _1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let kind : (Parsetree.include_kind) = Obj.magic kind in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_kind_ in @@ -58821,22 +58841,22 @@ module Tables = struct let attrs2 = let _1 = _1_inlined1 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58827 "src/ocaml/preprocess/parser_raw.ml" +# 58847 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58834 "src/ocaml/preprocess/parser_raw.ml" +# 58854 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_kind_ in let _sloc = (_symbolstartpos, _endpos) in -# 1938 "src/ocaml/preprocess/parser_raw.mly" +# 1979 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -58844,7 +58864,7 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 58848 "src/ocaml/preprocess/parser_raw.ml" +# 58868 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_kind_ in @@ -58852,45 +58872,12 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2116 "src/ocaml/preprocess/parser_raw.mly" +# 2162 "src/ocaml/preprocess/parser_raw.mly" ( let incl, ext = _1 in let item = mksig ~loc:_sloc (Psig_include (incl, modalities)) in wrap_sig_ext ~loc:_sloc item ext ) -# 58861 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.signature_item) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2121 "src/ocaml/preprocess/parser_raw.mly" - ( - let name, jkind = _1 in - Jane_syntax.Layouts.(sig_item_of - ~loc:(make_loc _sloc) - (Lsig_kind_abbrev (name, jkind))) - ) -# 58894 "src/ocaml/preprocess/parser_raw.ml" +# 58881 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58912,10 +58899,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parser_types.Constant.t) = -# 4935 "src/ocaml/preprocess/parser_raw.mly" - ( Constant.value _1 ) -# 58919 "src/ocaml/preprocess/parser_raw.ml" + let _v : (Parsetree.constant) = +# 4950 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 58906 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58933,14 +58920,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parser_types.Constant.t) = Obj.magic _1 in + let _1 : (Parsetree.constant) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parser_types.Constant.t) = -# 4936 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.constant) = +# 4951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58944 "src/ocaml/preprocess/parser_raw.ml" +# 58931 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58965,22 +58952,22 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1024 "src/ocaml/preprocess/parser_raw.mly" +# 1068 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 58971 "src/ocaml/preprocess/parser_raw.ml" +# 58958 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parser_types.Constant.t) = let _endpos = _endpos__2_ in + let _v : (Parsetree.constant) = let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 4937 "src/ocaml/preprocess/parser_raw.mly" +# 4952 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Negative _2 ) -# 58984 "src/ocaml/preprocess/parser_raw.ml" +# 58971 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59005,18 +58992,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 998 "src/ocaml/preprocess/parser_raw.mly" +# 1042 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 59011 "src/ocaml/preprocess/parser_raw.ml" +# 58998 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parser_types.Constant.t) = -# 4938 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.constant) = +# 4953 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Negative _2 ) -# 59020 "src/ocaml/preprocess/parser_raw.ml" +# 59007 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59041,22 +59028,22 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1024 "src/ocaml/preprocess/parser_raw.mly" +# 1068 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 59047 "src/ocaml/preprocess/parser_raw.ml" +# 59034 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parser_types.Constant.t) = let _endpos = _endpos__2_ in + let _v : (Parsetree.constant) = let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 4939 "src/ocaml/preprocess/parser_raw.mly" +# 4954 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Positive _2 ) -# 59060 "src/ocaml/preprocess/parser_raw.ml" +# 59047 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59081,18 +59068,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 998 "src/ocaml/preprocess/parser_raw.mly" +# 1042 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 59087 "src/ocaml/preprocess/parser_raw.ml" +# 59074 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parser_types.Constant.t) = -# 4940 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.constant) = +# 4955 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _2 ) -# 59096 "src/ocaml/preprocess/parser_raw.ml" +# 59083 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59115,9 +59102,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 4928 "src/ocaml/preprocess/parser_raw.mly" +# 4943 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59121 "src/ocaml/preprocess/parser_raw.ml" +# 59108 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59142,18 +59129,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1023 "src/ocaml/preprocess/parser_raw.mly" +# 1067 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 59148 "src/ocaml/preprocess/parser_raw.ml" +# 59135 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 4929 "src/ocaml/preprocess/parser_raw.mly" +# 4944 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer("-" ^ n, m) ) -# 59157 "src/ocaml/preprocess/parser_raw.ml" +# 59144 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59178,18 +59165,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 997 "src/ocaml/preprocess/parser_raw.mly" +# 1041 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 59184 "src/ocaml/preprocess/parser_raw.ml" +# 59171 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 4930 "src/ocaml/preprocess/parser_raw.mly" +# 4945 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float("-" ^ f, m) ) -# 59193 "src/ocaml/preprocess/parser_raw.ml" +# 59180 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59214,18 +59201,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1023 "src/ocaml/preprocess/parser_raw.mly" +# 1067 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 59220 "src/ocaml/preprocess/parser_raw.ml" +# 59207 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 4931 "src/ocaml/preprocess/parser_raw.mly" +# 4946 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer (n, m) ) -# 59229 "src/ocaml/preprocess/parser_raw.ml" +# 59216 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59250,18 +59237,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 997 "src/ocaml/preprocess/parser_raw.mly" +# 1041 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 59256 "src/ocaml/preprocess/parser_raw.ml" +# 59243 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 4932 "src/ocaml/preprocess/parser_raw.mly" +# 4947 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float(f, m) ) -# 59265 "src/ocaml/preprocess/parser_raw.ml" +# 59252 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59292,7 +59279,7 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let _1_inlined1 : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = Obj.magic _1_inlined1 in + let _1_inlined1 : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -59302,161 +59289,18 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 3855 "src/ocaml/preprocess/parser_raw.mly" +# 3886 "src/ocaml/preprocess/parser_raw.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 59310 "src/ocaml/preprocess/parser_raw.ml" +# 59297 "src/ocaml/preprocess/parser_raw.ml" in -# 3822 "src/ocaml/preprocess/parser_raw.mly" +# 3853 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record(fields, closed) ) -# 59317 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1275 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 59327 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3839 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 59333 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ps; - MenhirLib.EngineTypes.startp = _startpos_ps_; - MenhirLib.EngineTypes.endp = _endpos_ps_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let ps : (Parsetree.pattern list) = Obj.magic ps in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = - let _2 = -# 3849 "src/ocaml/preprocess/parser_raw.mly" - ( ps ) -# 59374 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 3827 "src/ocaml/preprocess/parser_raw.mly" - ( fst (mktailpat _loc__3_ _2) ) -# 59380 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1275 "src/ocaml/preprocess/parser_raw.mly" - ( mkpat ~loc:_sloc _1 ) -# 59390 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3839 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 59396 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ps; - MenhirLib.EngineTypes.startp = _startpos_ps_; - MenhirLib.EngineTypes.endp = _endpos_ps_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let ps : (Parsetree.pattern list) = Obj.magic ps in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = - let _1 = - let _1 = - let _2 = -# 3849 "src/ocaml/preprocess/parser_raw.mly" - ( ps ) -# 59439 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3074 "src/ocaml/preprocess/parser_raw.mly" - ( Generic_array.Simple.Literal _2 ) -# 59444 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3101 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 59450 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 3831 "src/ocaml/preprocess/parser_raw.mly" - ( Generic_array.Pattern.to_ast - "[|" "|]" - (fun elts -> Ppat_array elts) - _1 - ) -# 59460 "src/ocaml/preprocess/parser_raw.ml" +# 59304 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -59464,15 +59308,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 59470 "src/ocaml/preprocess/parser_raw.ml" +# 59314 "src/ocaml/preprocess/parser_raw.ml" in -# 3839 "src/ocaml/preprocess/parser_raw.mly" +# 3876 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59476 "src/ocaml/preprocess/parser_raw.ml" +# 59320 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59485,60 +59329,57 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ps; + MenhirLib.EngineTypes.startp = _startpos_ps_; + MenhirLib.EngineTypes.endp = _endpos_ps_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in + let _3 : unit = Obj.magic _3 in + let ps : (Parsetree.pattern list) = Obj.magic ps in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in + let _endpos = _endpos__3_ in let _v : (Parsetree.pattern) = let _1 = let _1 = - let _1 = - let _1 = -# 3080 "src/ocaml/preprocess/parser_raw.mly" - ( Generic_array.Simple.Literal [] ) -# 59511 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3101 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 59516 "src/ocaml/preprocess/parser_raw.ml" - - in + let _2 = +# 3880 "src/ocaml/preprocess/parser_raw.mly" + ( ps ) +# 59361 "src/ocaml/preprocess/parser_raw.ml" + in + let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3831 "src/ocaml/preprocess/parser_raw.mly" - ( Generic_array.Pattern.to_ast - "[|" "|]" - (fun elts -> Ppat_array elts) - _1 - ) -# 59526 "src/ocaml/preprocess/parser_raw.ml" +# 3858 "src/ocaml/preprocess/parser_raw.mly" + ( fst (mktailpat _loc__3_ _2) ) +# 59367 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__2_ in + let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 59536 "src/ocaml/preprocess/parser_raw.ml" +# 59377 "src/ocaml/preprocess/parser_raw.ml" in -# 3839 "src/ocaml/preprocess/parser_raw.mly" +# 3876 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59542 "src/ocaml/preprocess/parser_raw.ml" +# 59383 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59556,9 +59397,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ps; + MenhirLib.EngineTypes.startp = _startpos_ps_; + MenhirLib.EngineTypes.endp = _endpos_ps_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -59569,32 +59410,122 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let _2 : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = Obj.magic _2 in + let ps : (Parsetree.pattern list) = Obj.magic ps in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern) = let _1 = - let _1 = -# 3837 "src/ocaml/preprocess/parser_raw.mly" - ( let (closed, fields) = _2 in - Ppat_unboxed_tuple (List.rev fields, closed) ) -# 59583 "src/ocaml/preprocess/parser_raw.ml" - in + let _1 = + let _1 = + let _1 = + let _2 = +# 3880 "src/ocaml/preprocess/parser_raw.mly" + ( ps ) +# 59426 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3109 "src/ocaml/preprocess/parser_raw.mly" + ( Generic_array.Simple.Literal _2 ) +# 59431 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3136 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 59437 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3862 "src/ocaml/preprocess/parser_raw.mly" + ( Generic_array.Pattern.to_ast + "[|" "|]" + Mutable + _1 + ) +# 59447 "src/ocaml/preprocess/parser_raw.ml" + + in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 59457 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3876 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 59463 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.pattern) = let _1 = + let _1 = + let _1 = + let _1 = +# 3115 "src/ocaml/preprocess/parser_raw.mly" + ( Generic_array.Simple.Literal [] ) +# 59498 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3136 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 59503 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3862 "src/ocaml/preprocess/parser_raw.mly" + ( Generic_array.Pattern.to_ast + "[|" "|]" + Mutable + _1 + ) +# 59513 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 59592 "src/ocaml/preprocess/parser_raw.ml" +# 59523 "src/ocaml/preprocess/parser_raw.ml" in -# 3839 "src/ocaml/preprocess/parser_raw.mly" +# 3876 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59598 "src/ocaml/preprocess/parser_raw.ml" +# 59529 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59632,35 +59563,49 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern) = let _1 = let _1 = - let _2 = -# 3849 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = + let _2 = +# 3880 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 59639 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3074 "src/ocaml/preprocess/parser_raw.mly" +# 59572 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3109 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 59644 "src/ocaml/preprocess/parser_raw.ml" +# 59577 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3136 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 59583 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3868 "src/ocaml/preprocess/parser_raw.mly" + ( Generic_array.Pattern.to_ast + "[:" ":]" + Immutable + _1 + ) +# 59593 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3101 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 59650 "src/ocaml/preprocess/parser_raw.ml" +# 1319 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 59603 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3841 "src/ocaml/preprocess/parser_raw.mly" - ( Generic_array.Pattern.to_ast - "[:" ":]" - (ppat_iarray _sloc) - _1 - ) -# 59664 "src/ocaml/preprocess/parser_raw.ml" +# 3876 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 59609 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59690,29 +59635,99 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = - let _1 = -# 3080 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _1 = + let _1 = +# 3115 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 59697 "src/ocaml/preprocess/parser_raw.ml" - in - -# 3101 "src/ocaml/preprocess/parser_raw.mly" +# 59644 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59702 "src/ocaml/preprocess/parser_raw.ml" +# 59649 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3868 "src/ocaml/preprocess/parser_raw.mly" + ( Generic_array.Pattern.to_ast + "[:" ":]" + Immutable + _1 + ) +# 59659 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1319 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 59669 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3841 "src/ocaml/preprocess/parser_raw.mly" - ( Generic_array.Pattern.to_ast - "[:" ":]" - (ppat_iarray _sloc) - _1 - ) +# 3876 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 59675 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : unit = Obj.magic _3 in + let _2 : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.pattern) = let _1 = + let _1 = +# 3874 "src/ocaml/preprocess/parser_raw.mly" + ( let (closed, fields) = _2 in + Ppat_unboxed_tuple (List.rev fields, closed) ) # 59716 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1319 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat ~loc:_sloc _1 ) +# 59725 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3876 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 59731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59751,22 +59766,22 @@ module Tables = struct let _v : (Parsetree.expression) = let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59757 "src/ocaml/preprocess/parser_raw.ml" +# 59772 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59762 "src/ocaml/preprocess/parser_raw.ml" +# 59777 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _startpos = _startpos__1_ in -# 5341 "src/ocaml/preprocess/parser_raw.mly" +# 5356 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 59770 "src/ocaml/preprocess/parser_raw.ml" +# 59785 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59817,7 +59832,7 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -59831,18 +59846,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 59835 "src/ocaml/preprocess/parser_raw.ml" +# 59850 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59840 "src/ocaml/preprocess/parser_raw.ml" +# 59855 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59846 "src/ocaml/preprocess/parser_raw.ml" +# 59861 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -59851,22 +59866,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59857 "src/ocaml/preprocess/parser_raw.ml" +# 59872 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 59863 "src/ocaml/preprocess/parser_raw.ml" +# 59878 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -59879,21 +59894,21 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 59883 "src/ocaml/preprocess/parser_raw.ml" +# 59898 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59889 "src/ocaml/preprocess/parser_raw.ml" +# 59904 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _startpos = _startpos__1_ in -# 5341 "src/ocaml/preprocess/parser_raw.mly" +# 5356 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 59897 "src/ocaml/preprocess/parser_raw.ml" +# 59912 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59925,9 +59940,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in let _startpos = _startpos__1_ in -# 5343 "src/ocaml/preprocess/parser_raw.mly" +# 5358 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.uncode _startpos _endpos _2 ) -# 59931 "src/ocaml/preprocess/parser_raw.ml" +# 59946 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59967,9 +59982,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2954 "src/ocaml/preprocess/parser_raw.mly" +# 2993 "src/ocaml/preprocess/parser_raw.mly" ( reloc_exp ~loc:_sloc _2 ) -# 59973 "src/ocaml/preprocess/parser_raw.ml" +# 59988 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60015,24 +60030,24 @@ module Tables = struct let _v : (Parsetree.expression) = let _3 = let _1 = _1_inlined1 in let _2 = -# 4603 "src/ocaml/preprocess/parser_raw.mly" +# 4622 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 60021 "src/ocaml/preprocess/parser_raw.ml" +# 60036 "src/ocaml/preprocess/parser_raw.ml" in -# 3585 "src/ocaml/preprocess/parser_raw.mly" +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60026 "src/ocaml/preprocess/parser_raw.ml" +# 60041 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2960 "src/ocaml/preprocess/parser_raw.mly" +# 2999 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 60036 "src/ocaml/preprocess/parser_raw.ml" +# 60051 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60087,25 +60102,25 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4604 "src/ocaml/preprocess/parser_raw.mly" +# 4623 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 60093 "src/ocaml/preprocess/parser_raw.ml" +# 60108 "src/ocaml/preprocess/parser_raw.ml" in -# 3585 "src/ocaml/preprocess/parser_raw.mly" +# 3616 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60099 "src/ocaml/preprocess/parser_raw.ml" +# 60114 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2960 "src/ocaml/preprocess/parser_raw.mly" +# 2999 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 60109 "src/ocaml/preprocess/parser_raw.ml" +# 60124 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60157,14 +60172,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2962 "src/ocaml/preprocess/parser_raw.mly" +# 3001 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60163 "src/ocaml/preprocess/parser_raw.ml" +# 60178 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 60168 "src/ocaml/preprocess/parser_raw.ml" +# 60183 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60172,9 +60187,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2963 "src/ocaml/preprocess/parser_raw.mly" +# 3002 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 60178 "src/ocaml/preprocess/parser_raw.ml" +# 60193 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60226,14 +60241,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2962 "src/ocaml/preprocess/parser_raw.mly" +# 3001 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60232 "src/ocaml/preprocess/parser_raw.ml" +# 60247 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 60237 "src/ocaml/preprocess/parser_raw.ml" +# 60252 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60241,9 +60256,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2963 "src/ocaml/preprocess/parser_raw.mly" +# 3002 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 60247 "src/ocaml/preprocess/parser_raw.ml" +# 60262 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60295,14 +60310,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2962 "src/ocaml/preprocess/parser_raw.mly" +# 3001 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60301 "src/ocaml/preprocess/parser_raw.ml" +# 60316 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 60306 "src/ocaml/preprocess/parser_raw.ml" +# 60321 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60310,9 +60325,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2963 "src/ocaml/preprocess/parser_raw.mly" +# 3002 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 60316 "src/ocaml/preprocess/parser_raw.ml" +# 60331 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60358,9 +60373,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60364 "src/ocaml/preprocess/parser_raw.ml" +# 60379 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -60368,31 +60383,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 3005 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60374 "src/ocaml/preprocess/parser_raw.ml" +# 60389 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 60379 "src/ocaml/preprocess/parser_raw.ml" +# 60394 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 60385 "src/ocaml/preprocess/parser_raw.ml" +# 60400 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60390 "src/ocaml/preprocess/parser_raw.ml" +# 60405 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 60396 "src/ocaml/preprocess/parser_raw.ml" +# 60411 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60400,9 +60415,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2967 "src/ocaml/preprocess/parser_raw.mly" +# 3006 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 60406 "src/ocaml/preprocess/parser_raw.ml" +# 60421 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60460,9 +60475,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60466 "src/ocaml/preprocess/parser_raw.ml" +# 60481 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -60472,39 +60487,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 3005 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60478 "src/ocaml/preprocess/parser_raw.ml" +# 60493 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 60483 "src/ocaml/preprocess/parser_raw.ml" +# 60498 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 60491 "src/ocaml/preprocess/parser_raw.ml" +# 60506 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 60496 "src/ocaml/preprocess/parser_raw.ml" +# 60511 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60502 "src/ocaml/preprocess/parser_raw.ml" +# 60517 "src/ocaml/preprocess/parser_raw.ml" in -# 2822 "src/ocaml/preprocess/parser_raw.mly" +# 2861 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 60508 "src/ocaml/preprocess/parser_raw.ml" +# 60523 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60512,9 +60527,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2967 "src/ocaml/preprocess/parser_raw.mly" +# 3006 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 60518 "src/ocaml/preprocess/parser_raw.ml" +# 60533 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60560,9 +60575,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60566 "src/ocaml/preprocess/parser_raw.ml" +# 60581 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -60570,31 +60585,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 3005 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60576 "src/ocaml/preprocess/parser_raw.ml" +# 60591 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 60581 "src/ocaml/preprocess/parser_raw.ml" +# 60596 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 60587 "src/ocaml/preprocess/parser_raw.ml" +# 60602 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60592 "src/ocaml/preprocess/parser_raw.ml" +# 60607 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 60598 "src/ocaml/preprocess/parser_raw.ml" +# 60613 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60602,9 +60617,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2967 "src/ocaml/preprocess/parser_raw.mly" +# 3006 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 60608 "src/ocaml/preprocess/parser_raw.ml" +# 60623 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60662,9 +60677,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60668 "src/ocaml/preprocess/parser_raw.ml" +# 60683 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -60674,39 +60689,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 3005 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60680 "src/ocaml/preprocess/parser_raw.ml" +# 60695 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 60685 "src/ocaml/preprocess/parser_raw.ml" +# 60700 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 60693 "src/ocaml/preprocess/parser_raw.ml" +# 60708 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 60698 "src/ocaml/preprocess/parser_raw.ml" +# 60713 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60704 "src/ocaml/preprocess/parser_raw.ml" +# 60719 "src/ocaml/preprocess/parser_raw.ml" in -# 2824 "src/ocaml/preprocess/parser_raw.mly" +# 2863 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 60710 "src/ocaml/preprocess/parser_raw.ml" +# 60725 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60714,9 +60729,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2967 "src/ocaml/preprocess/parser_raw.mly" +# 3006 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 60720 "src/ocaml/preprocess/parser_raw.ml" +# 60735 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60762,9 +60777,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60768 "src/ocaml/preprocess/parser_raw.ml" +# 60783 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -60772,31 +60787,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 3005 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60778 "src/ocaml/preprocess/parser_raw.ml" +# 60793 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 60783 "src/ocaml/preprocess/parser_raw.ml" +# 60798 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 124 "" ( None ) -# 60789 "src/ocaml/preprocess/parser_raw.ml" +# 60804 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60794 "src/ocaml/preprocess/parser_raw.ml" +# 60809 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 60800 "src/ocaml/preprocess/parser_raw.ml" +# 60815 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60804,9 +60819,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2967 "src/ocaml/preprocess/parser_raw.mly" +# 3006 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 60810 "src/ocaml/preprocess/parser_raw.ml" +# 60825 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60864,9 +60879,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60870 "src/ocaml/preprocess/parser_raw.ml" +# 60885 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -60876,39 +60891,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 3005 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 60882 "src/ocaml/preprocess/parser_raw.ml" +# 60897 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 60887 "src/ocaml/preprocess/parser_raw.ml" +# 60902 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 60895 "src/ocaml/preprocess/parser_raw.ml" +# 60910 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 60900 "src/ocaml/preprocess/parser_raw.ml" +# 60915 "src/ocaml/preprocess/parser_raw.ml" in -# 2838 "src/ocaml/preprocess/parser_raw.mly" +# 2877 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60906 "src/ocaml/preprocess/parser_raw.ml" +# 60921 "src/ocaml/preprocess/parser_raw.ml" in -# 2826 "src/ocaml/preprocess/parser_raw.mly" +# 2865 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 60912 "src/ocaml/preprocess/parser_raw.ml" +# 60927 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -60916,9 +60931,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2967 "src/ocaml/preprocess/parser_raw.mly" +# 3006 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 60922 "src/ocaml/preprocess/parser_raw.ml" +# 60937 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60963,7 +60978,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let e : (Parsetree.expression) = Obj.magic e in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -60972,15 +60987,15 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60978 "src/ocaml/preprocess/parser_raw.ml" +# 60993 "src/ocaml/preprocess/parser_raw.ml" in -# 2995 "src/ocaml/preprocess/parser_raw.mly" +# 3031 "src/ocaml/preprocess/parser_raw.mly" ( e.pexp_desc, (ext, attrs @ e.pexp_attributes) ) -# 60984 "src/ocaml/preprocess/parser_raw.ml" +# 60999 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -60988,10 +61003,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 3012 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 60995 "src/ocaml/preprocess/parser_raw.ml" +# 61010 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61029,7 +61044,7 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61040,24 +61055,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61046 "src/ocaml/preprocess/parser_raw.ml" +# 61061 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61052 "src/ocaml/preprocess/parser_raw.ml" +# 61067 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2997 "src/ocaml/preprocess/parser_raw.mly" +# 3033 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) -# 61061 "src/ocaml/preprocess/parser_raw.ml" +# 61076 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -61065,10 +61080,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 3012 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 61072 "src/ocaml/preprocess/parser_raw.ml" +# 61087 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61106,7 +61121,7 @@ module Tables = struct } = _menhir_stack in let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61118,9 +61133,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 61124 "src/ocaml/preprocess/parser_raw.ml" +# 61139 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -61128,21 +61143,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61134 "src/ocaml/preprocess/parser_raw.ml" +# 61149 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61140 "src/ocaml/preprocess/parser_raw.ml" +# 61155 "src/ocaml/preprocess/parser_raw.ml" in -# 3003 "src/ocaml/preprocess/parser_raw.mly" +# 3039 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_new(_3), _2 ) -# 61146 "src/ocaml/preprocess/parser_raw.ml" +# 61161 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -61150,10 +61165,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 3012 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 61157 "src/ocaml/preprocess/parser_raw.ml" +# 61172 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61204,7 +61219,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.module_expr) = Obj.magic _4 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61216,21 +61231,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61222 "src/ocaml/preprocess/parser_raw.ml" +# 61237 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61228 "src/ocaml/preprocess/parser_raw.ml" +# 61243 "src/ocaml/preprocess/parser_raw.ml" in -# 3005 "src/ocaml/preprocess/parser_raw.mly" +# 3041 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_pack _4, _3 ) -# 61234 "src/ocaml/preprocess/parser_raw.ml" +# 61249 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -61238,10 +61253,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 3012 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 61245 "src/ocaml/preprocess/parser_raw.ml" +# 61260 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61306,7 +61321,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.module_expr) = Obj.magic _4 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61319,11 +61334,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 61327 "src/ocaml/preprocess/parser_raw.ml" +# 61342 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -61331,24 +61346,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61337 "src/ocaml/preprocess/parser_raw.ml" +# 61352 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61343 "src/ocaml/preprocess/parser_raw.ml" +# 61358 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3007 "src/ocaml/preprocess/parser_raw.mly" +# 3043 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), Some _6, []), _3 ) -# 61352 "src/ocaml/preprocess/parser_raw.ml" +# 61367 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -61356,10 +61371,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 3012 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 61363 "src/ocaml/preprocess/parser_raw.ml" +# 61378 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61411,7 +61426,7 @@ module Tables = struct let xss : (Parsetree.class_field list list) = Obj.magic xss in let _1_inlined3 : (Parsetree.pattern) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61424,27 +61439,27 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 61428 "src/ocaml/preprocess/parser_raw.ml" +# 61443 "src/ocaml/preprocess/parser_raw.ml" in -# 2380 "src/ocaml/preprocess/parser_raw.mly" +# 2419 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61433 "src/ocaml/preprocess/parser_raw.ml" +# 61448 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1234 "src/ocaml/preprocess/parser_raw.mly" +# 1278 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 61442 "src/ocaml/preprocess/parser_raw.ml" +# 61457 "src/ocaml/preprocess/parser_raw.ml" in -# 2368 "src/ocaml/preprocess/parser_raw.mly" +# 2407 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 61448 "src/ocaml/preprocess/parser_raw.ml" +# 61463 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -61452,21 +61467,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61458 "src/ocaml/preprocess/parser_raw.ml" +# 61473 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61464 "src/ocaml/preprocess/parser_raw.ml" +# 61479 "src/ocaml/preprocess/parser_raw.ml" in -# 3013 "src/ocaml/preprocess/parser_raw.mly" +# 3049 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_object _3, _2 ) -# 61470 "src/ocaml/preprocess/parser_raw.ml" +# 61485 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -61474,10 +61489,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 3012 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 61481 "src/ocaml/preprocess/parser_raw.ml" +# 61496 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61506,30 +61521,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 61512 "src/ocaml/preprocess/parser_raw.ml" +# 61527 "src/ocaml/preprocess/parser_raw.ml" in -# 3111 "src/ocaml/preprocess/parser_raw.mly" +# 3146 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ident (_1) ) -# 61518 "src/ocaml/preprocess/parser_raw.ml" +# 61533 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 61527 "src/ocaml/preprocess/parser_raw.ml" +# 61542 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61533 "src/ocaml/preprocess/parser_raw.ml" +# 61548 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61558,30 +61573,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 61564 "src/ocaml/preprocess/parser_raw.ml" +# 61579 "src/ocaml/preprocess/parser_raw.ml" in -# 3113 "src/ocaml/preprocess/parser_raw.mly" +# 3148 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_construct(_1, None) ) -# 61570 "src/ocaml/preprocess/parser_raw.ml" +# 61585 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 61579 "src/ocaml/preprocess/parser_raw.ml" +# 61594 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61585 "src/ocaml/preprocess/parser_raw.ml" +# 61600 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61605,23 +61620,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 3115 "src/ocaml/preprocess/parser_raw.mly" +# 3150 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_variant(_1, None) ) -# 61611 "src/ocaml/preprocess/parser_raw.ml" +# 61626 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 61619 "src/ocaml/preprocess/parser_raw.ml" +# 61634 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61625 "src/ocaml/preprocess/parser_raw.ml" +# 61640 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61647,9 +61662,9 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 1068 "src/ocaml/preprocess/parser_raw.mly" +# 1112 "src/ocaml/preprocess/parser_raw.mly" (string) -# 61653 "src/ocaml/preprocess/parser_raw.ml" +# 61668 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61661,15 +61676,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 61667 "src/ocaml/preprocess/parser_raw.ml" +# 61682 "src/ocaml/preprocess/parser_raw.ml" in -# 3117 "src/ocaml/preprocess/parser_raw.mly" +# 3152 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 61673 "src/ocaml/preprocess/parser_raw.ml" +# 61688 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -61677,15 +61692,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 61683 "src/ocaml/preprocess/parser_raw.ml" +# 61698 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61689 "src/ocaml/preprocess/parser_raw.ml" +# 61704 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61718,23 +61733,23 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3118 "src/ocaml/preprocess/parser_raw.mly" +# 3153 "src/ocaml/preprocess/parser_raw.mly" ("!") -# 61724 "src/ocaml/preprocess/parser_raw.ml" +# 61739 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 61732 "src/ocaml/preprocess/parser_raw.ml" +# 61747 "src/ocaml/preprocess/parser_raw.ml" in -# 3119 "src/ocaml/preprocess/parser_raw.mly" +# 3154 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 61738 "src/ocaml/preprocess/parser_raw.ml" +# 61753 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -61742,15 +61757,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 61748 "src/ocaml/preprocess/parser_raw.ml" +# 61763 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61754 "src/ocaml/preprocess/parser_raw.ml" +# 61769 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61781,7 +61796,7 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let xs : ((string Location.loc * Parsetree.expression) list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61789,14 +61804,14 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 3556 "src/ocaml/preprocess/parser_raw.mly" +# 3587 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61795 "src/ocaml/preprocess/parser_raw.ml" +# 61810 "src/ocaml/preprocess/parser_raw.ml" in -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3156 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override _2 ) -# 61800 "src/ocaml/preprocess/parser_raw.ml" +# 61815 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -61804,15 +61819,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 61810 "src/ocaml/preprocess/parser_raw.ml" +# 61825 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61816 "src/ocaml/preprocess/parser_raw.ml" +# 61831 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61843,24 +61858,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 3127 "src/ocaml/preprocess/parser_raw.mly" +# 3162 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override [] ) -# 61849 "src/ocaml/preprocess/parser_raw.ml" +# 61864 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 61858 "src/ocaml/preprocess/parser_raw.ml" +# 61873 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61864 "src/ocaml/preprocess/parser_raw.ml" +# 61879 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61904,15 +61919,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 61910 "src/ocaml/preprocess/parser_raw.ml" +# 61925 "src/ocaml/preprocess/parser_raw.ml" in -# 3129 "src/ocaml/preprocess/parser_raw.mly" +# 3164 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_field(_1, _3) ) -# 61916 "src/ocaml/preprocess/parser_raw.ml" +# 61931 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -61920,15 +61935,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 61926 "src/ocaml/preprocess/parser_raw.ml" +# 61941 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61932 "src/ocaml/preprocess/parser_raw.ml" +# 61947 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -61986,24 +62001,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 61992 "src/ocaml/preprocess/parser_raw.ml" +# 62007 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 62001 "src/ocaml/preprocess/parser_raw.ml" +# 62016 "src/ocaml/preprocess/parser_raw.ml" in -# 3131 "src/ocaml/preprocess/parser_raw.mly" +# 3166 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _4) ) -# 62007 "src/ocaml/preprocess/parser_raw.ml" +# 62022 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -62011,15 +62026,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62017 "src/ocaml/preprocess/parser_raw.ml" +# 62032 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62023 "src/ocaml/preprocess/parser_raw.ml" +# 62038 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62062,7 +62077,7 @@ module Tables = struct }; } = _menhir_stack in let _5 : unit = Obj.magic _5 in - let xs : ((string Location.loc * Parsetree.expression) list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -62072,9 +62087,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 3556 "src/ocaml/preprocess/parser_raw.mly" +# 3587 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62078 "src/ocaml/preprocess/parser_raw.ml" +# 62093 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -62082,18 +62097,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62088 "src/ocaml/preprocess/parser_raw.ml" +# 62103 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 62097 "src/ocaml/preprocess/parser_raw.ml" +# 62112 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_od_ = _startpos__1_ in @@ -62101,10 +62116,10 @@ module Tables = struct let _symbolstartpos = _startpos_od_ in let _sloc = (_symbolstartpos, _endpos) in -# 3133 "src/ocaml/preprocess/parser_raw.mly" +# 3168 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_override *) Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) ) -# 62108 "src/ocaml/preprocess/parser_raw.ml" +# 62123 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -62112,15 +62127,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62118 "src/ocaml/preprocess/parser_raw.ml" +# 62133 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62124 "src/ocaml/preprocess/parser_raw.ml" +# 62139 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62151,9 +62166,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62157 "src/ocaml/preprocess/parser_raw.ml" +# 62172 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -62165,28 +62180,28 @@ module Tables = struct let _3 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62171 "src/ocaml/preprocess/parser_raw.ml" +# 62186 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62179 "src/ocaml/preprocess/parser_raw.ml" +# 62194 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 62185 "src/ocaml/preprocess/parser_raw.ml" +# 62200 "src/ocaml/preprocess/parser_raw.ml" in -# 3140 "src/ocaml/preprocess/parser_raw.mly" +# 3175 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 62190 "src/ocaml/preprocess/parser_raw.ml" +# 62205 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -62194,15 +62209,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62200 "src/ocaml/preprocess/parser_raw.ml" +# 62215 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62206 "src/ocaml/preprocess/parser_raw.ml" +# 62221 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62233,9 +62248,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62239 "src/ocaml/preprocess/parser_raw.ml" +# 62254 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -62247,28 +62262,28 @@ module Tables = struct let _3 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62253 "src/ocaml/preprocess/parser_raw.ml" +# 62268 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62261 "src/ocaml/preprocess/parser_raw.ml" +# 62276 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 62267 "src/ocaml/preprocess/parser_raw.ml" +# 62282 "src/ocaml/preprocess/parser_raw.ml" in -# 3140 "src/ocaml/preprocess/parser_raw.mly" +# 3175 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 62272 "src/ocaml/preprocess/parser_raw.ml" +# 62287 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -62276,15 +62291,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62282 "src/ocaml/preprocess/parser_raw.ml" +# 62297 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62288 "src/ocaml/preprocess/parser_raw.ml" +# 62303 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62316,9 +62331,9 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined1 : ( -# 1081 "src/ocaml/preprocess/parser_raw.mly" +# 1125 "src/ocaml/preprocess/parser_raw.mly" (string) -# 62322 "src/ocaml/preprocess/parser_raw.ml" +# 62337 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -62332,15 +62347,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1267 "src/ocaml/preprocess/parser_raw.mly" +# 1311 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 62338 "src/ocaml/preprocess/parser_raw.ml" +# 62353 "src/ocaml/preprocess/parser_raw.ml" in -# 3142 "src/ocaml/preprocess/parser_raw.mly" +# 3177 "src/ocaml/preprocess/parser_raw.mly" ( mkinfix _1 _2 _3 ) -# 62344 "src/ocaml/preprocess/parser_raw.ml" +# 62359 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -62348,15 +62363,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62354 "src/ocaml/preprocess/parser_raw.ml" +# 62369 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62360 "src/ocaml/preprocess/parser_raw.ml" +# 62375 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62380,23 +62395,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 3144 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_extension _1 ) -# 62386 "src/ocaml/preprocess/parser_raw.ml" +# 62401 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62394 "src/ocaml/preprocess/parser_raw.ml" +# 62409 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62400 "src/ocaml/preprocess/parser_raw.ml" +# 62415 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62424,25 +62439,25 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 3146 "src/ocaml/preprocess/parser_raw.mly" +# 3181 "src/ocaml/preprocess/parser_raw.mly" ( let id = mkrhs Ast_helper.hole_txt _loc in Pexp_extension (id, PStr []) ) -# 62431 "src/ocaml/preprocess/parser_raw.ml" +# 62446 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62440 "src/ocaml/preprocess/parser_raw.ml" +# 62455 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62446 "src/ocaml/preprocess/parser_raw.ml" +# 62461 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62490,18 +62505,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3148 "src/ocaml/preprocess/parser_raw.mly" +# 3183 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 62496 "src/ocaml/preprocess/parser_raw.ml" +# 62511 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62505 "src/ocaml/preprocess/parser_raw.ml" +# 62520 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -62511,25 +62526,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62517 "src/ocaml/preprocess/parser_raw.ml" +# 62532 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 62526 "src/ocaml/preprocess/parser_raw.ml" +# 62541 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3149 "src/ocaml/preprocess/parser_raw.mly" +# 3184 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) ) -# 62533 "src/ocaml/preprocess/parser_raw.ml" +# 62548 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -62537,15 +62552,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62543 "src/ocaml/preprocess/parser_raw.ml" +# 62558 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62549 "src/ocaml/preprocess/parser_raw.ml" +# 62564 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62577,32 +62592,32 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let _2 : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list) = Obj.magic _2 in + (Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 3155 "src/ocaml/preprocess/parser_raw.mly" +# 3190 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record(fields, exten) ) -# 62591 "src/ocaml/preprocess/parser_raw.ml" +# 62606 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62600 "src/ocaml/preprocess/parser_raw.ml" +# 62615 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62606 "src/ocaml/preprocess/parser_raw.ml" +# 62621 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62646,7 +62661,7 @@ module Tables = struct } = _menhir_stack in let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list) = Obj.magic _4 in + (Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -62661,27 +62676,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62667 "src/ocaml/preprocess/parser_raw.ml" +# 62682 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 62676 "src/ocaml/preprocess/parser_raw.ml" +# 62691 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 3197 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _4 in Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_record(fields, exten))) ) -# 62685 "src/ocaml/preprocess/parser_raw.ml" +# 62700 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -62689,15 +62704,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62695 "src/ocaml/preprocess/parser_raw.ml" +# 62710 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62701 "src/ocaml/preprocess/parser_raw.ml" +# 62716 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62738,30 +62753,30 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62744 "src/ocaml/preprocess/parser_raw.ml" +# 62759 "src/ocaml/preprocess/parser_raw.ml" in -# 3074 "src/ocaml/preprocess/parser_raw.mly" +# 3109 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 62749 "src/ocaml/preprocess/parser_raw.ml" +# 62764 "src/ocaml/preprocess/parser_raw.ml" in -# 3085 "src/ocaml/preprocess/parser_raw.mly" +# 3120 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 62755 "src/ocaml/preprocess/parser_raw.ml" +# 62770 "src/ocaml/preprocess/parser_raw.ml" in -# 3170 "src/ocaml/preprocess/parser_raw.mly" +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" - (fun elts -> Pexp_array elts) + Mutable _1 ) -# 62765 "src/ocaml/preprocess/parser_raw.ml" +# 62780 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -62769,15 +62784,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62775 "src/ocaml/preprocess/parser_raw.ml" +# 62790 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62781 "src/ocaml/preprocess/parser_raw.ml" +# 62796 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62810,24 +62825,24 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3080 "src/ocaml/preprocess/parser_raw.mly" +# 3115 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 62816 "src/ocaml/preprocess/parser_raw.ml" +# 62831 "src/ocaml/preprocess/parser_raw.ml" in -# 3085 "src/ocaml/preprocess/parser_raw.mly" +# 3120 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 62821 "src/ocaml/preprocess/parser_raw.ml" +# 62836 "src/ocaml/preprocess/parser_raw.ml" in -# 3170 "src/ocaml/preprocess/parser_raw.mly" +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" - (fun elts -> Pexp_array elts) + Mutable _1 ) -# 62831 "src/ocaml/preprocess/parser_raw.ml" +# 62846 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -62835,15 +62850,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62841 "src/ocaml/preprocess/parser_raw.ml" +# 62856 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62847 "src/ocaml/preprocess/parser_raw.ml" +# 62862 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62897,9 +62912,9 @@ module Tables = struct let _1 = let _1 = let _4 = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 62903 "src/ocaml/preprocess/parser_raw.ml" +# 62918 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -62907,36 +62922,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 62913 "src/ocaml/preprocess/parser_raw.ml" +# 62928 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 62922 "src/ocaml/preprocess/parser_raw.ml" +# 62937 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in -# 3087 "src/ocaml/preprocess/parser_raw.mly" +# 3122 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 62930 "src/ocaml/preprocess/parser_raw.ml" +# 62945 "src/ocaml/preprocess/parser_raw.ml" in -# 3170 "src/ocaml/preprocess/parser_raw.mly" +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" - (fun elts -> Pexp_array elts) + Mutable _1 ) -# 62940 "src/ocaml/preprocess/parser_raw.ml" +# 62955 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -62944,15 +62959,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 62950 "src/ocaml/preprocess/parser_raw.ml" +# 62965 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62956 "src/ocaml/preprocess/parser_raw.ml" +# 62971 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63004,36 +63019,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63010 "src/ocaml/preprocess/parser_raw.ml" +# 63025 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 63019 "src/ocaml/preprocess/parser_raw.ml" +# 63034 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3125 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 63027 "src/ocaml/preprocess/parser_raw.ml" +# 63042 "src/ocaml/preprocess/parser_raw.ml" in -# 3170 "src/ocaml/preprocess/parser_raw.mly" +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" - (fun elts -> Pexp_array elts) + Mutable _1 ) -# 63037 "src/ocaml/preprocess/parser_raw.ml" +# 63052 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63041,15 +63056,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63047 "src/ocaml/preprocess/parser_raw.ml" +# 63062 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63053 "src/ocaml/preprocess/parser_raw.ml" +# 63068 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63088,15 +63103,15 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 63094 "src/ocaml/preprocess/parser_raw.ml" +# 63109 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3176 "src/ocaml/preprocess/parser_raw.mly" +# 3211 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailexp _loc__3_ _2) ) -# 63100 "src/ocaml/preprocess/parser_raw.ml" +# 63115 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -63104,15 +63119,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63110 "src/ocaml/preprocess/parser_raw.ml" +# 63125 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63116 "src/ocaml/preprocess/parser_raw.ml" +# 63131 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63161,7 +63176,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs in + let xs : (Parsetree.comprehension_clause list) = Obj.magic xs in let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -63179,37 +63194,37 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 63183 "src/ocaml/preprocess/parser_raw.ml" +# 63198 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63188 "src/ocaml/preprocess/parser_raw.ml" +# 63203 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63196 "src/ocaml/preprocess/parser_raw.ml" +# 63211 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63201 "src/ocaml/preprocess/parser_raw.ml" +# 63216 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 63207 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 63222 "src/ocaml/preprocess/parser_raw.ml" in -# 3060 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_list_comprehension _1 ) -# 63213 "src/ocaml/preprocess/parser_raw.ml" +# 3095 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_list_comprehension _1 ) +# 63228 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63217,9 +63232,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 63223 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 63238 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -63228,24 +63243,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63234 "src/ocaml/preprocess/parser_raw.ml" +# 63249 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 63243 "src/ocaml/preprocess/parser_raw.ml" +# 63258 "src/ocaml/preprocess/parser_raw.ml" in -# 3182 "src/ocaml/preprocess/parser_raw.mly" +# 3217 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 63249 "src/ocaml/preprocess/parser_raw.ml" +# 63264 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63253,15 +63268,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63259 "src/ocaml/preprocess/parser_raw.ml" +# 63274 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63265 "src/ocaml/preprocess/parser_raw.ml" +# 63280 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63328,10 +63343,10 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs_inlined1 : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs_inlined1 in + let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -63350,12 +63365,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 63354 "src/ocaml/preprocess/parser_raw.ml" +# 63369 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63359 "src/ocaml/preprocess/parser_raw.ml" +# 63374 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -63366,18 +63381,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 63370 "src/ocaml/preprocess/parser_raw.ml" +# 63385 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63375 "src/ocaml/preprocess/parser_raw.ml" +# 63390 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63381 "src/ocaml/preprocess/parser_raw.ml" +# 63396 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -63386,22 +63401,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63392 "src/ocaml/preprocess/parser_raw.ml" +# 63407 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63398 "src/ocaml/preprocess/parser_raw.ml" +# 63413 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -63414,25 +63429,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 63418 "src/ocaml/preprocess/parser_raw.ml" +# 63433 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63424 "src/ocaml/preprocess/parser_raw.ml" +# 63439 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 63430 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 63445 "src/ocaml/preprocess/parser_raw.ml" in -# 3060 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_list_comprehension _1 ) -# 63436 "src/ocaml/preprocess/parser_raw.ml" +# 3095 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_list_comprehension _1 ) +# 63451 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63440,9 +63455,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 63446 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 63461 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -63451,24 +63466,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63457 "src/ocaml/preprocess/parser_raw.ml" +# 63472 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 63466 "src/ocaml/preprocess/parser_raw.ml" +# 63481 "src/ocaml/preprocess/parser_raw.ml" in -# 3182 "src/ocaml/preprocess/parser_raw.mly" +# 3217 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 63472 "src/ocaml/preprocess/parser_raw.ml" +# 63487 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63476,15 +63491,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63482 "src/ocaml/preprocess/parser_raw.ml" +# 63497 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63488 "src/ocaml/preprocess/parser_raw.ml" +# 63503 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63533,7 +63548,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs in + let xs : (Parsetree.comprehension_clause list) = Obj.magic xs in let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -63551,37 +63566,37 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 63555 "src/ocaml/preprocess/parser_raw.ml" +# 63570 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63560 "src/ocaml/preprocess/parser_raw.ml" +# 63575 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63568 "src/ocaml/preprocess/parser_raw.ml" +# 63583 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63573 "src/ocaml/preprocess/parser_raw.ml" +# 63588 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 63579 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 63594 "src/ocaml/preprocess/parser_raw.ml" in -# 3062 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Mutable, _1) ) -# 63585 "src/ocaml/preprocess/parser_raw.ml" +# 3097 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Mutable, _1) ) +# 63600 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63589,9 +63604,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 63595 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 63610 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -63600,24 +63615,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63606 "src/ocaml/preprocess/parser_raw.ml" +# 63621 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 63615 "src/ocaml/preprocess/parser_raw.ml" +# 63630 "src/ocaml/preprocess/parser_raw.ml" in -# 3182 "src/ocaml/preprocess/parser_raw.mly" +# 3217 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 63621 "src/ocaml/preprocess/parser_raw.ml" +# 63636 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63625,15 +63640,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63631 "src/ocaml/preprocess/parser_raw.ml" +# 63646 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63637 "src/ocaml/preprocess/parser_raw.ml" +# 63652 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63700,10 +63715,10 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs_inlined1 : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs_inlined1 in + let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -63722,12 +63737,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 63726 "src/ocaml/preprocess/parser_raw.ml" +# 63741 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63731 "src/ocaml/preprocess/parser_raw.ml" +# 63746 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -63738,18 +63753,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 63742 "src/ocaml/preprocess/parser_raw.ml" +# 63757 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63747 "src/ocaml/preprocess/parser_raw.ml" +# 63762 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63753 "src/ocaml/preprocess/parser_raw.ml" +# 63768 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -63758,22 +63773,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63764 "src/ocaml/preprocess/parser_raw.ml" +# 63779 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63770 "src/ocaml/preprocess/parser_raw.ml" +# 63785 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -63786,25 +63801,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 63790 "src/ocaml/preprocess/parser_raw.ml" +# 63805 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63796 "src/ocaml/preprocess/parser_raw.ml" +# 63811 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 63802 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 63817 "src/ocaml/preprocess/parser_raw.ml" in -# 3062 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Mutable, _1) ) -# 63808 "src/ocaml/preprocess/parser_raw.ml" +# 3097 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Mutable, _1) ) +# 63823 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63812,9 +63827,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 63818 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 63833 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -63823,24 +63838,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63829 "src/ocaml/preprocess/parser_raw.ml" +# 63844 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 63838 "src/ocaml/preprocess/parser_raw.ml" +# 63853 "src/ocaml/preprocess/parser_raw.ml" in -# 3182 "src/ocaml/preprocess/parser_raw.mly" +# 3217 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 63844 "src/ocaml/preprocess/parser_raw.ml" +# 63859 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63848,15 +63863,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 63854 "src/ocaml/preprocess/parser_raw.ml" +# 63869 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63860 "src/ocaml/preprocess/parser_raw.ml" +# 63875 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63905,7 +63920,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs in + let xs : (Parsetree.comprehension_clause list) = Obj.magic xs in let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -63923,37 +63938,37 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 63927 "src/ocaml/preprocess/parser_raw.ml" +# 63942 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 63932 "src/ocaml/preprocess/parser_raw.ml" +# 63947 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63940 "src/ocaml/preprocess/parser_raw.ml" +# 63955 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63945 "src/ocaml/preprocess/parser_raw.ml" +# 63960 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 63951 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 63966 "src/ocaml/preprocess/parser_raw.ml" in -# 3064 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Immutable, _1) ) -# 63957 "src/ocaml/preprocess/parser_raw.ml" +# 3099 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 63972 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63961,9 +63976,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 63967 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 63982 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -63972,24 +63987,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63978 "src/ocaml/preprocess/parser_raw.ml" +# 63993 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 63987 "src/ocaml/preprocess/parser_raw.ml" +# 64002 "src/ocaml/preprocess/parser_raw.ml" in -# 3182 "src/ocaml/preprocess/parser_raw.mly" +# 3217 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 63993 "src/ocaml/preprocess/parser_raw.ml" +# 64008 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -63997,15 +64012,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64003 "src/ocaml/preprocess/parser_raw.ml" +# 64018 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64009 "src/ocaml/preprocess/parser_raw.ml" +# 64024 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64072,10 +64087,10 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs_inlined1 : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs_inlined1 in + let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -64094,12 +64109,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 64098 "src/ocaml/preprocess/parser_raw.ml" +# 64113 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64103 "src/ocaml/preprocess/parser_raw.ml" +# 64118 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -64110,18 +64125,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 64114 "src/ocaml/preprocess/parser_raw.ml" +# 64129 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64119 "src/ocaml/preprocess/parser_raw.ml" +# 64134 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64125 "src/ocaml/preprocess/parser_raw.ml" +# 64140 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -64130,22 +64145,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64136 "src/ocaml/preprocess/parser_raw.ml" +# 64151 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64142 "src/ocaml/preprocess/parser_raw.ml" +# 64157 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -64158,25 +64173,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 64162 "src/ocaml/preprocess/parser_raw.ml" +# 64177 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64168 "src/ocaml/preprocess/parser_raw.ml" +# 64183 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 64174 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 64189 "src/ocaml/preprocess/parser_raw.ml" in -# 3064 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Immutable, _1) ) -# 64180 "src/ocaml/preprocess/parser_raw.ml" +# 3099 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 64195 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -64184,9 +64199,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 64190 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 64205 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -64195,24 +64210,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64201 "src/ocaml/preprocess/parser_raw.ml" +# 64216 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64210 "src/ocaml/preprocess/parser_raw.ml" +# 64225 "src/ocaml/preprocess/parser_raw.ml" in -# 3182 "src/ocaml/preprocess/parser_raw.mly" +# 3217 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 64216 "src/ocaml/preprocess/parser_raw.ml" +# 64231 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -64220,15 +64235,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64226 "src/ocaml/preprocess/parser_raw.ml" +# 64241 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64232 "src/ocaml/preprocess/parser_raw.ml" +# 64247 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64281,9 +64296,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64287 "src/ocaml/preprocess/parser_raw.ml" +# 64302 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -64291,30 +64306,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64297 "src/ocaml/preprocess/parser_raw.ml" +# 64312 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64306 "src/ocaml/preprocess/parser_raw.ml" +# 64321 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _loc__5_ = (_startpos__5_, _endpos__5_) in -# 3184 "src/ocaml/preprocess/parser_raw.mly" +# 3219 "src/ocaml/preprocess/parser_raw.mly" ( let list_exp = (* TODO: review the location of list_exp *) let tail_exp, _tail_loc = mktailexp _loc__5_ _4 in mkexp ~loc:(_startpos__3_, _endpos) tail_exp in Pexp_open(od, list_exp) ) -# 64318 "src/ocaml/preprocess/parser_raw.ml" +# 64333 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -64322,15 +64337,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64328 "src/ocaml/preprocess/parser_raw.ml" +# 64343 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64334 "src/ocaml/preprocess/parser_raw.ml" +# 64349 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64378,18 +64393,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3189 "src/ocaml/preprocess/parser_raw.mly" +# 3224 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 64384 "src/ocaml/preprocess/parser_raw.ml" +# 64399 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64393 "src/ocaml/preprocess/parser_raw.ml" +# 64408 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -64399,25 +64414,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64405 "src/ocaml/preprocess/parser_raw.ml" +# 64420 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64414 "src/ocaml/preprocess/parser_raw.ml" +# 64429 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3190 "src/ocaml/preprocess/parser_raw.mly" +# 3225 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) ) -# 64421 "src/ocaml/preprocess/parser_raw.ml" +# 64436 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -64425,15 +64440,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64431 "src/ocaml/preprocess/parser_raw.ml" +# 64446 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64437 "src/ocaml/preprocess/parser_raw.ml" +# 64452 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64510,7 +64525,7 @@ module Tables = struct let _7 : unit = Obj.magic _7 in let _6 : (Parsetree.module_expr) = Obj.magic _6 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _4 : unit = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in @@ -64526,11 +64541,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 64534 "src/ocaml/preprocess/parser_raw.ml" +# 64549 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -64538,15 +64553,15 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64544 "src/ocaml/preprocess/parser_raw.ml" +# 64559 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64550 "src/ocaml/preprocess/parser_raw.ml" +# 64565 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -64555,18 +64570,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64561 "src/ocaml/preprocess/parser_raw.ml" +# 64576 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64570 "src/ocaml/preprocess/parser_raw.ml" +# 64585 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_od_ = _startpos__1_ in @@ -64574,12 +64589,12 @@ module Tables = struct let _symbolstartpos = _startpos_od_ in let _sloc = (_symbolstartpos, _endpos) in -# 3198 "src/ocaml/preprocess/parser_raw.mly" +# 3233 "src/ocaml/preprocess/parser_raw.mly" ( let modexp = mkexp_attrs ~loc:(_startpos__3_, _endpos) (Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), Some _8, [])) _5 in Pexp_open(od, modexp) ) -# 64583 "src/ocaml/preprocess/parser_raw.ml" +# 64598 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__9_ in @@ -64587,15 +64602,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64593 "src/ocaml/preprocess/parser_raw.ml" +# 64608 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64599 "src/ocaml/preprocess/parser_raw.ml" +# 64614 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64637,18 +64652,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 64641 "src/ocaml/preprocess/parser_raw.ml" +# 64656 "src/ocaml/preprocess/parser_raw.ml" in -# 3532 "src/ocaml/preprocess/parser_raw.mly" +# 3563 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64646 "src/ocaml/preprocess/parser_raw.ml" +# 64661 "src/ocaml/preprocess/parser_raw.ml" in -# 3208 "src/ocaml/preprocess/parser_raw.mly" +# 3243 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_tuple _2 ) -# 64652 "src/ocaml/preprocess/parser_raw.ml" +# 64667 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -64656,15 +64671,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1273 "src/ocaml/preprocess/parser_raw.mly" +# 1317 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 64662 "src/ocaml/preprocess/parser_raw.ml" +# 64677 "src/ocaml/preprocess/parser_raw.ml" in -# 2976 "src/ocaml/preprocess/parser_raw.mly" +# 3015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64668 "src/ocaml/preprocess/parser_raw.ml" +# 64683 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64703,20 +64718,20 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64709 "src/ocaml/preprocess/parser_raw.ml" +# 64724 "src/ocaml/preprocess/parser_raw.ml" in -# 3074 "src/ocaml/preprocess/parser_raw.mly" +# 3109 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 64714 "src/ocaml/preprocess/parser_raw.ml" +# 64729 "src/ocaml/preprocess/parser_raw.ml" in -# 3085 "src/ocaml/preprocess/parser_raw.mly" +# 3120 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 64720 "src/ocaml/preprocess/parser_raw.ml" +# 64735 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -64724,17 +64739,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 3020 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc - (fun ~loc elts -> - Jane_syntax.Immutable_arrays.expr_of - ~loc:(make_loc loc) - (Iaexp_immutable_array elts)) - _1 + Immutable + _1 ) -# 64738 "src/ocaml/preprocess/parser_raw.ml" +# 64750 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64765,14 +64777,14 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 3080 "src/ocaml/preprocess/parser_raw.mly" +# 3115 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 64771 "src/ocaml/preprocess/parser_raw.ml" +# 64783 "src/ocaml/preprocess/parser_raw.ml" in -# 3085 "src/ocaml/preprocess/parser_raw.mly" +# 3120 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 64776 "src/ocaml/preprocess/parser_raw.ml" +# 64788 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -64780,17 +64792,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 3020 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc - (fun ~loc elts -> - Jane_syntax.Immutable_arrays.expr_of - ~loc:(make_loc loc) - (Iaexp_immutable_array elts)) - _1 + Immutable + _1 ) -# 64794 "src/ocaml/preprocess/parser_raw.ml" +# 64803 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64842,9 +64851,9 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 3573 "src/ocaml/preprocess/parser_raw.mly" +# 3604 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 64848 "src/ocaml/preprocess/parser_raw.ml" +# 64857 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -64852,26 +64861,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64858 "src/ocaml/preprocess/parser_raw.ml" +# 64867 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64867 "src/ocaml/preprocess/parser_raw.ml" +# 64876 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in -# 3087 "src/ocaml/preprocess/parser_raw.mly" +# 3122 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 64875 "src/ocaml/preprocess/parser_raw.ml" +# 64884 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -64879,17 +64888,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 3020 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc - (fun ~loc elts -> - Jane_syntax.Immutable_arrays.expr_of - ~loc:(make_loc loc) - (Iaexp_immutable_array elts)) - _1 + Immutable + _1 ) -# 64893 "src/ocaml/preprocess/parser_raw.ml" +# 64899 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64939,26 +64945,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64945 "src/ocaml/preprocess/parser_raw.ml" +# 64951 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1998 "src/ocaml/preprocess/parser_raw.mly" +# 2039 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 64954 "src/ocaml/preprocess/parser_raw.ml" +# 64960 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3125 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 64962 "src/ocaml/preprocess/parser_raw.ml" +# 64968 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -64966,17 +64972,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2981 "src/ocaml/preprocess/parser_raw.mly" +# 3020 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc - (fun ~loc elts -> - Jane_syntax.Immutable_arrays.expr_of - ~loc:(make_loc loc) - (Iaexp_immutable_array elts)) - _1 + Immutable + _1 ) -# 64980 "src/ocaml/preprocess/parser_raw.ml" +# 64983 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64994,7 +64997,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parser_types.Constant.t) = Obj.magic _1 in + let _1 : (Parsetree.constant) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -65002,9 +65005,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2990 "src/ocaml/preprocess/parser_raw.mly" - ( Constant.to_expression ~loc:_sloc _1 ) -# 65008 "src/ocaml/preprocess/parser_raw.ml" +# 3026 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_constant _1) ) +# 65011 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65041,7 +65044,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs in + let xs : (Parsetree.comprehension_clause list) = Obj.magic xs in let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -65054,37 +65057,37 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65058 "src/ocaml/preprocess/parser_raw.ml" +# 65061 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65063 "src/ocaml/preprocess/parser_raw.ml" +# 65066 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65071 "src/ocaml/preprocess/parser_raw.ml" +# 65074 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65076 "src/ocaml/preprocess/parser_raw.ml" +# 65079 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 65082 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 65085 "src/ocaml/preprocess/parser_raw.ml" in -# 3060 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_list_comprehension _1 ) -# 65088 "src/ocaml/preprocess/parser_raw.ml" +# 3095 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_list_comprehension _1 ) +# 65091 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65092,15 +65095,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 65098 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 65101 "src/ocaml/preprocess/parser_raw.ml" in -# 2991 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65104 "src/ocaml/preprocess/parser_raw.ml" +# 65107 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65155,10 +65158,10 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs_inlined1 : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs_inlined1 in + let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -65172,12 +65175,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65176 "src/ocaml/preprocess/parser_raw.ml" +# 65179 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65181 "src/ocaml/preprocess/parser_raw.ml" +# 65184 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -65188,18 +65191,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65192 "src/ocaml/preprocess/parser_raw.ml" +# 65195 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65197 "src/ocaml/preprocess/parser_raw.ml" +# 65200 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65203 "src/ocaml/preprocess/parser_raw.ml" +# 65206 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -65208,22 +65211,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65214 "src/ocaml/preprocess/parser_raw.ml" +# 65217 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 65220 "src/ocaml/preprocess/parser_raw.ml" +# 65223 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -65236,25 +65239,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 65240 "src/ocaml/preprocess/parser_raw.ml" +# 65243 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65246 "src/ocaml/preprocess/parser_raw.ml" +# 65249 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 65252 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 65255 "src/ocaml/preprocess/parser_raw.ml" in -# 3060 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_list_comprehension _1 ) -# 65258 "src/ocaml/preprocess/parser_raw.ml" +# 3095 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_list_comprehension _1 ) +# 65261 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65262,15 +65265,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 65268 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 65271 "src/ocaml/preprocess/parser_raw.ml" in -# 2991 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65274 "src/ocaml/preprocess/parser_raw.ml" +# 65277 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65307,7 +65310,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs in + let xs : (Parsetree.comprehension_clause list) = Obj.magic xs in let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -65320,37 +65323,37 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65324 "src/ocaml/preprocess/parser_raw.ml" +# 65327 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65329 "src/ocaml/preprocess/parser_raw.ml" +# 65332 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65337 "src/ocaml/preprocess/parser_raw.ml" +# 65340 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65342 "src/ocaml/preprocess/parser_raw.ml" +# 65345 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 65348 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 65351 "src/ocaml/preprocess/parser_raw.ml" in -# 3062 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Mutable, _1) ) -# 65354 "src/ocaml/preprocess/parser_raw.ml" +# 3097 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Mutable, _1) ) +# 65357 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65358,15 +65361,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 65364 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 65367 "src/ocaml/preprocess/parser_raw.ml" in -# 2991 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65370 "src/ocaml/preprocess/parser_raw.ml" +# 65373 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65421,10 +65424,10 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs_inlined1 : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs_inlined1 in + let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -65438,12 +65441,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65442 "src/ocaml/preprocess/parser_raw.ml" +# 65445 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65447 "src/ocaml/preprocess/parser_raw.ml" +# 65450 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -65454,18 +65457,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65458 "src/ocaml/preprocess/parser_raw.ml" +# 65461 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65463 "src/ocaml/preprocess/parser_raw.ml" +# 65466 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65469 "src/ocaml/preprocess/parser_raw.ml" +# 65472 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -65474,22 +65477,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65480 "src/ocaml/preprocess/parser_raw.ml" +# 65483 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 65486 "src/ocaml/preprocess/parser_raw.ml" +# 65489 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -65502,25 +65505,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 65506 "src/ocaml/preprocess/parser_raw.ml" +# 65509 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65512 "src/ocaml/preprocess/parser_raw.ml" +# 65515 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 65518 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 65521 "src/ocaml/preprocess/parser_raw.ml" in -# 3062 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Mutable, _1) ) -# 65524 "src/ocaml/preprocess/parser_raw.ml" +# 3097 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Mutable, _1) ) +# 65527 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65528,15 +65531,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 65534 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 65537 "src/ocaml/preprocess/parser_raw.ml" in -# 2991 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65540 "src/ocaml/preprocess/parser_raw.ml" +# 65543 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65573,7 +65576,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs in + let xs : (Parsetree.comprehension_clause list) = Obj.magic xs in let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -65586,37 +65589,37 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65590 "src/ocaml/preprocess/parser_raw.ml" +# 65593 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65595 "src/ocaml/preprocess/parser_raw.ml" +# 65598 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65603 "src/ocaml/preprocess/parser_raw.ml" +# 65606 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65608 "src/ocaml/preprocess/parser_raw.ml" +# 65611 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 65614 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 65617 "src/ocaml/preprocess/parser_raw.ml" in -# 3064 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Immutable, _1) ) -# 65620 "src/ocaml/preprocess/parser_raw.ml" +# 3099 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 65623 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65624,15 +65627,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 65630 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 65633 "src/ocaml/preprocess/parser_raw.ml" in -# 2991 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65636 "src/ocaml/preprocess/parser_raw.ml" +# 65639 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65687,10 +65690,10 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xs_inlined1 : (Jane_syntax.Comprehensions.clause list) = Obj.magic xs_inlined1 in + let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -65704,12 +65707,12 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65708 "src/ocaml/preprocess/parser_raw.ml" +# 65711 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65713 "src/ocaml/preprocess/parser_raw.ml" +# 65716 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -65720,18 +65723,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 65724 "src/ocaml/preprocess/parser_raw.ml" +# 65727 "src/ocaml/preprocess/parser_raw.ml" in -# 1458 "src/ocaml/preprocess/parser_raw.mly" +# 1499 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65729 "src/ocaml/preprocess/parser_raw.ml" +# 65732 "src/ocaml/preprocess/parser_raw.ml" in -# 3409 "src/ocaml/preprocess/parser_raw.mly" +# 3440 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 65735 "src/ocaml/preprocess/parser_raw.ml" +# 65738 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -65740,22 +65743,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65746 "src/ocaml/preprocess/parser_raw.ml" +# 65749 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 65752 "src/ocaml/preprocess/parser_raw.ml" +# 65755 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2637 "src/ocaml/preprocess/parser_raw.mly" +# 2676 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -65768,25 +65771,25 @@ module Tables = struct mkfunction [] None (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 65772 "src/ocaml/preprocess/parser_raw.ml" +# 65775 "src/ocaml/preprocess/parser_raw.ml" in -# 2894 "src/ocaml/preprocess/parser_raw.mly" +# 2933 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65778 "src/ocaml/preprocess/parser_raw.ml" +# 65781 "src/ocaml/preprocess/parser_raw.ml" in -# 3055 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 65784 "src/ocaml/preprocess/parser_raw.ml" +# 3090 "src/ocaml/preprocess/parser_raw.mly" + ( { pcomp_body = _2; pcomp_clauses = _3 } ) +# 65787 "src/ocaml/preprocess/parser_raw.ml" in -# 3064 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Immutable, _1) ) -# 65790 "src/ocaml/preprocess/parser_raw.ml" +# 3099 "src/ocaml/preprocess/parser_raw.mly" + ( Pcomp_array_comprehension (Immutable, _1) ) +# 65793 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -65794,15 +65797,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 65800 "src/ocaml/preprocess/parser_raw.ml" +# 3104 "src/ocaml/preprocess/parser_raw.mly" + ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) +# 65803 "src/ocaml/preprocess/parser_raw.ml" in -# 2991 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65806 "src/ocaml/preprocess/parser_raw.ml" +# 65809 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65831,30 +65834,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65837 "src/ocaml/preprocess/parser_raw.ml" +# 65840 "src/ocaml/preprocess/parser_raw.ml" in -# 3741 "src/ocaml/preprocess/parser_raw.mly" +# 3772 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var (_1) ) -# 65843 "src/ocaml/preprocess/parser_raw.ml" +# 65846 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 65852 "src/ocaml/preprocess/parser_raw.ml" +# 65855 "src/ocaml/preprocess/parser_raw.ml" in -# 3742 "src/ocaml/preprocess/parser_raw.mly" +# 3773 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65858 "src/ocaml/preprocess/parser_raw.ml" +# 65861 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65877,9 +65880,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3743 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65883 "src/ocaml/preprocess/parser_raw.ml" +# 65886 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65919,9 +65922,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3748 "src/ocaml/preprocess/parser_raw.mly" +# 3779 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 65925 "src/ocaml/preprocess/parser_raw.ml" +# 65928 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65944,9 +65947,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3750 "src/ocaml/preprocess/parser_raw.mly" +# 3781 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65950 "src/ocaml/preprocess/parser_raw.ml" +# 65953 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65997,7 +66000,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -66009,9 +66012,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66015 "src/ocaml/preprocess/parser_raw.ml" +# 66018 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -66019,24 +66022,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66025 "src/ocaml/preprocess/parser_raw.ml" +# 66028 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66031 "src/ocaml/preprocess/parser_raw.ml" +# 66034 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3752 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 ) -# 66040 "src/ocaml/preprocess/parser_raw.ml" +# 66043 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66101,7 +66104,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -66113,11 +66116,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4848 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 66121 "src/ocaml/preprocess/parser_raw.ml" +# 66124 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -66126,9 +66129,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66132 "src/ocaml/preprocess/parser_raw.ml" +# 66135 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in @@ -66137,15 +66140,15 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66143 "src/ocaml/preprocess/parser_raw.ml" +# 66146 "src/ocaml/preprocess/parser_raw.ml" in -# 5313 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66149 "src/ocaml/preprocess/parser_raw.ml" +# 66152 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in @@ -66153,11 +66156,11 @@ module Tables = struct let _loc__4_ = (_startpos__4_, _endpos__4_) in let _sloc = (_symbolstartpos, _endpos) in -# 3754 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), Some _6, [])) _3 ) -# 66161 "src/ocaml/preprocess/parser_raw.ml" +# 66164 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66182,29 +66185,29 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3764 "src/ocaml/preprocess/parser_raw.mly" +# 3795 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 66188 "src/ocaml/preprocess/parser_raw.ml" +# 66191 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66196 "src/ocaml/preprocess/parser_raw.ml" +# 66199 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66202 "src/ocaml/preprocess/parser_raw.ml" +# 66205 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66208 "src/ocaml/preprocess/parser_raw.ml" +# 66211 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66243,30 +66246,30 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3766 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_interval (_1, _3) ) -# 66249 "src/ocaml/preprocess/parser_raw.ml" +# 66252 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66258 "src/ocaml/preprocess/parser_raw.ml" +# 66261 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66264 "src/ocaml/preprocess/parser_raw.ml" +# 66267 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66270 "src/ocaml/preprocess/parser_raw.ml" +# 66273 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66296,36 +66299,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66302 "src/ocaml/preprocess/parser_raw.ml" +# 66305 "src/ocaml/preprocess/parser_raw.ml" in -# 3768 "src/ocaml/preprocess/parser_raw.mly" +# 3799 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, None) ) -# 66308 "src/ocaml/preprocess/parser_raw.ml" +# 66311 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66317 "src/ocaml/preprocess/parser_raw.ml" +# 66320 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66323 "src/ocaml/preprocess/parser_raw.ml" +# 66326 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66329 "src/ocaml/preprocess/parser_raw.ml" +# 66332 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66350,29 +66353,29 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3770 "src/ocaml/preprocess/parser_raw.mly" +# 3801 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, None) ) -# 66356 "src/ocaml/preprocess/parser_raw.ml" +# 66359 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66364 "src/ocaml/preprocess/parser_raw.ml" +# 66367 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66370 "src/ocaml/preprocess/parser_raw.ml" +# 66373 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66376 "src/ocaml/preprocess/parser_raw.ml" +# 66379 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66410,20 +66413,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66416 "src/ocaml/preprocess/parser_raw.ml" +# 66419 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 66422 "src/ocaml/preprocess/parser_raw.ml" +# 66425 "src/ocaml/preprocess/parser_raw.ml" in -# 3772 "src/ocaml/preprocess/parser_raw.mly" +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_type (_2) ) -# 66427 "src/ocaml/preprocess/parser_raw.ml" +# 66430 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -66431,21 +66434,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66437 "src/ocaml/preprocess/parser_raw.ml" +# 66440 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66443 "src/ocaml/preprocess/parser_raw.ml" +# 66446 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66449 "src/ocaml/preprocess/parser_raw.ml" +# 66452 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66483,20 +66486,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66489 "src/ocaml/preprocess/parser_raw.ml" +# 66492 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 66495 "src/ocaml/preprocess/parser_raw.ml" +# 66498 "src/ocaml/preprocess/parser_raw.ml" in -# 3772 "src/ocaml/preprocess/parser_raw.mly" +# 3803 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_type (_2) ) -# 66500 "src/ocaml/preprocess/parser_raw.ml" +# 66503 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -66504,21 +66507,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66510 "src/ocaml/preprocess/parser_raw.ml" +# 66513 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66516 "src/ocaml/preprocess/parser_raw.ml" +# 66519 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66522 "src/ocaml/preprocess/parser_raw.ml" +# 66525 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66562,15 +66565,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66568 "src/ocaml/preprocess/parser_raw.ml" +# 66571 "src/ocaml/preprocess/parser_raw.ml" in -# 3774 "src/ocaml/preprocess/parser_raw.mly" +# 3805 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, _3) ) -# 66574 "src/ocaml/preprocess/parser_raw.ml" +# 66577 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -66578,21 +66581,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66584 "src/ocaml/preprocess/parser_raw.ml" +# 66587 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66590 "src/ocaml/preprocess/parser_raw.ml" +# 66593 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66596 "src/ocaml/preprocess/parser_raw.ml" +# 66599 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66641,18 +66644,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3775 "src/ocaml/preprocess/parser_raw.mly" +# 3806 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 66647 "src/ocaml/preprocess/parser_raw.ml" +# 66650 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66656 "src/ocaml/preprocess/parser_raw.ml" +# 66659 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -66661,18 +66664,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66667 "src/ocaml/preprocess/parser_raw.ml" +# 66670 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3776 "src/ocaml/preprocess/parser_raw.mly" +# 3807 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 66676 "src/ocaml/preprocess/parser_raw.ml" +# 66679 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -66680,21 +66683,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66686 "src/ocaml/preprocess/parser_raw.ml" +# 66689 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66692 "src/ocaml/preprocess/parser_raw.ml" +# 66695 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66698 "src/ocaml/preprocess/parser_raw.ml" +# 66701 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66743,18 +66746,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 66749 "src/ocaml/preprocess/parser_raw.ml" +# 66752 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66758 "src/ocaml/preprocess/parser_raw.ml" +# 66761 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -66763,18 +66766,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66769 "src/ocaml/preprocess/parser_raw.ml" +# 66772 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3778 "src/ocaml/preprocess/parser_raw.mly" +# 3809 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 66778 "src/ocaml/preprocess/parser_raw.ml" +# 66781 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -66782,21 +66785,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66788 "src/ocaml/preprocess/parser_raw.ml" +# 66791 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66794 "src/ocaml/preprocess/parser_raw.ml" +# 66797 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66800 "src/ocaml/preprocess/parser_raw.ml" +# 66803 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66854,15 +66857,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 66860 "src/ocaml/preprocess/parser_raw.ml" +# 66863 "src/ocaml/preprocess/parser_raw.ml" in -# 3780 "src/ocaml/preprocess/parser_raw.mly" +# 3811 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open (_1, _4) ) -# 66866 "src/ocaml/preprocess/parser_raw.ml" +# 66869 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -66870,21 +66873,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66876 "src/ocaml/preprocess/parser_raw.ml" +# 66879 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66882 "src/ocaml/preprocess/parser_raw.ml" +# 66885 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66888 "src/ocaml/preprocess/parser_raw.ml" +# 66891 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66909,29 +66912,29 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3797 "src/ocaml/preprocess/parser_raw.mly" +# 3828 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_extension _1 ) -# 66915 "src/ocaml/preprocess/parser_raw.ml" +# 66918 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1275 "src/ocaml/preprocess/parser_raw.mly" +# 1319 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 66923 "src/ocaml/preprocess/parser_raw.ml" +# 66926 "src/ocaml/preprocess/parser_raw.ml" in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3829 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66929 "src/ocaml/preprocess/parser_raw.ml" +# 66932 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66935 "src/ocaml/preprocess/parser_raw.ml" +# 66938 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -66986,15 +66989,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3806 "src/ocaml/preprocess/parser_raw.mly" +# 3837 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 66992 "src/ocaml/preprocess/parser_raw.ml" +# 66995 "src/ocaml/preprocess/parser_raw.ml" in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3789 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66998 "src/ocaml/preprocess/parser_raw.ml" +# 67001 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67012,7 +67015,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parser_types.Constant.t) = Obj.magic _1 in + let _1 : (Parsetree.constant) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -67020,9 +67023,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3759 "src/ocaml/preprocess/parser_raw.mly" - ( Constant.to_pattern _1 ~loc:_sloc ) -# 67026 "src/ocaml/preprocess/parser_raw.ml" +# 3790 "src/ocaml/preprocess/parser_raw.mly" + ( mkpat (Ppat_constant _1) ~loc:_sloc ) +# 67029 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67041,17 +67044,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 67047 "src/ocaml/preprocess/parser_raw.ml" +# 67050 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5220 "src/ocaml/preprocess/parser_raw.mly" +# 5235 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67055 "src/ocaml/preprocess/parser_raw.ml" +# 67058 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67070,17 +67073,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 67076 "src/ocaml/preprocess/parser_raw.ml" +# 67079 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5221 "src/ocaml/preprocess/parser_raw.mly" +# 5236 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67084 "src/ocaml/preprocess/parser_raw.ml" +# 67087 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67103,9 +67106,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5222 "src/ocaml/preprocess/parser_raw.mly" +# 5237 "src/ocaml/preprocess/parser_raw.mly" ( "and" ) -# 67109 "src/ocaml/preprocess/parser_raw.ml" +# 67112 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67128,9 +67131,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5223 "src/ocaml/preprocess/parser_raw.mly" +# 5238 "src/ocaml/preprocess/parser_raw.mly" ( "as" ) -# 67134 "src/ocaml/preprocess/parser_raw.ml" +# 67137 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67153,9 +67156,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5224 "src/ocaml/preprocess/parser_raw.mly" +# 5239 "src/ocaml/preprocess/parser_raw.mly" ( "assert" ) -# 67159 "src/ocaml/preprocess/parser_raw.ml" +# 67162 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67178,9 +67181,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5225 "src/ocaml/preprocess/parser_raw.mly" +# 5240 "src/ocaml/preprocess/parser_raw.mly" ( "begin" ) -# 67184 "src/ocaml/preprocess/parser_raw.ml" +# 67187 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67203,9 +67206,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5226 "src/ocaml/preprocess/parser_raw.mly" +# 5241 "src/ocaml/preprocess/parser_raw.mly" ( "class" ) -# 67209 "src/ocaml/preprocess/parser_raw.ml" +# 67212 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67228,9 +67231,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5227 "src/ocaml/preprocess/parser_raw.mly" +# 5242 "src/ocaml/preprocess/parser_raw.mly" ( "constraint" ) -# 67234 "src/ocaml/preprocess/parser_raw.ml" +# 67237 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67253,9 +67256,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5228 "src/ocaml/preprocess/parser_raw.mly" +# 5243 "src/ocaml/preprocess/parser_raw.mly" ( "do" ) -# 67259 "src/ocaml/preprocess/parser_raw.ml" +# 67262 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67278,9 +67281,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5229 "src/ocaml/preprocess/parser_raw.mly" +# 5244 "src/ocaml/preprocess/parser_raw.mly" ( "done" ) -# 67284 "src/ocaml/preprocess/parser_raw.ml" +# 67287 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67303,9 +67306,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5230 "src/ocaml/preprocess/parser_raw.mly" +# 5245 "src/ocaml/preprocess/parser_raw.mly" ( "downto" ) -# 67309 "src/ocaml/preprocess/parser_raw.ml" +# 67312 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67328,9 +67331,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5231 "src/ocaml/preprocess/parser_raw.mly" +# 5246 "src/ocaml/preprocess/parser_raw.mly" ( "else" ) -# 67334 "src/ocaml/preprocess/parser_raw.ml" +# 67337 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67353,9 +67356,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5232 "src/ocaml/preprocess/parser_raw.mly" +# 5247 "src/ocaml/preprocess/parser_raw.mly" ( "end" ) -# 67359 "src/ocaml/preprocess/parser_raw.ml" +# 67362 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67378,9 +67381,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5233 "src/ocaml/preprocess/parser_raw.mly" +# 5248 "src/ocaml/preprocess/parser_raw.mly" ( "exception" ) -# 67384 "src/ocaml/preprocess/parser_raw.ml" +# 67387 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67403,9 +67406,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5234 "src/ocaml/preprocess/parser_raw.mly" +# 5249 "src/ocaml/preprocess/parser_raw.mly" ( "external" ) -# 67409 "src/ocaml/preprocess/parser_raw.ml" +# 67412 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67428,9 +67431,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5235 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 67434 "src/ocaml/preprocess/parser_raw.ml" +# 67437 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67453,9 +67456,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5236 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( "for" ) -# 67459 "src/ocaml/preprocess/parser_raw.ml" +# 67462 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67478,9 +67481,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5237 "src/ocaml/preprocess/parser_raw.mly" +# 5252 "src/ocaml/preprocess/parser_raw.mly" ( "fun" ) -# 67484 "src/ocaml/preprocess/parser_raw.ml" +# 67487 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67503,9 +67506,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5238 "src/ocaml/preprocess/parser_raw.mly" +# 5253 "src/ocaml/preprocess/parser_raw.mly" ( "function" ) -# 67509 "src/ocaml/preprocess/parser_raw.ml" +# 67512 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67528,9 +67531,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5239 "src/ocaml/preprocess/parser_raw.mly" +# 5254 "src/ocaml/preprocess/parser_raw.mly" ( "functor" ) -# 67534 "src/ocaml/preprocess/parser_raw.ml" +# 67537 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67553,9 +67556,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5240 "src/ocaml/preprocess/parser_raw.mly" +# 5255 "src/ocaml/preprocess/parser_raw.mly" ( "if" ) -# 67559 "src/ocaml/preprocess/parser_raw.ml" +# 67562 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67578,9 +67581,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5241 "src/ocaml/preprocess/parser_raw.mly" +# 5256 "src/ocaml/preprocess/parser_raw.mly" ( "in" ) -# 67584 "src/ocaml/preprocess/parser_raw.ml" +# 67587 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67603,9 +67606,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5242 "src/ocaml/preprocess/parser_raw.mly" +# 5257 "src/ocaml/preprocess/parser_raw.mly" ( "include" ) -# 67609 "src/ocaml/preprocess/parser_raw.ml" +# 67612 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67628,9 +67631,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5243 "src/ocaml/preprocess/parser_raw.mly" +# 5258 "src/ocaml/preprocess/parser_raw.mly" ( "inherit" ) -# 67634 "src/ocaml/preprocess/parser_raw.ml" +# 67637 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67653,9 +67656,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5244 "src/ocaml/preprocess/parser_raw.mly" +# 5259 "src/ocaml/preprocess/parser_raw.mly" ( "initializer" ) -# 67659 "src/ocaml/preprocess/parser_raw.ml" +# 67662 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67678,9 +67681,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5245 "src/ocaml/preprocess/parser_raw.mly" +# 5260 "src/ocaml/preprocess/parser_raw.mly" ( "lazy" ) -# 67684 "src/ocaml/preprocess/parser_raw.ml" +# 67687 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67703,9 +67706,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5246 "src/ocaml/preprocess/parser_raw.mly" +# 5261 "src/ocaml/preprocess/parser_raw.mly" ( "let" ) -# 67709 "src/ocaml/preprocess/parser_raw.ml" +# 67712 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67728,9 +67731,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5247 "src/ocaml/preprocess/parser_raw.mly" +# 5262 "src/ocaml/preprocess/parser_raw.mly" ( "local_" ) -# 67734 "src/ocaml/preprocess/parser_raw.ml" +# 67737 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67753,9 +67756,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5248 "src/ocaml/preprocess/parser_raw.mly" +# 5263 "src/ocaml/preprocess/parser_raw.mly" ( "match" ) -# 67759 "src/ocaml/preprocess/parser_raw.ml" +# 67762 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67778,9 +67781,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5249 "src/ocaml/preprocess/parser_raw.mly" +# 5264 "src/ocaml/preprocess/parser_raw.mly" ( "method" ) -# 67784 "src/ocaml/preprocess/parser_raw.ml" +# 67787 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67803,9 +67806,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5250 "src/ocaml/preprocess/parser_raw.mly" +# 5265 "src/ocaml/preprocess/parser_raw.mly" ( "module" ) -# 67809 "src/ocaml/preprocess/parser_raw.ml" +# 67812 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67828,9 +67831,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5266 "src/ocaml/preprocess/parser_raw.mly" ( "mutable" ) -# 67834 "src/ocaml/preprocess/parser_raw.ml" +# 67837 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67853,9 +67856,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5267 "src/ocaml/preprocess/parser_raw.mly" ( "new" ) -# 67859 "src/ocaml/preprocess/parser_raw.ml" +# 67862 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67878,9 +67881,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5253 "src/ocaml/preprocess/parser_raw.mly" +# 5268 "src/ocaml/preprocess/parser_raw.mly" ( "nonrec" ) -# 67884 "src/ocaml/preprocess/parser_raw.ml" +# 67887 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67903,9 +67906,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5254 "src/ocaml/preprocess/parser_raw.mly" +# 5269 "src/ocaml/preprocess/parser_raw.mly" ( "object" ) -# 67909 "src/ocaml/preprocess/parser_raw.ml" +# 67912 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67928,9 +67931,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5255 "src/ocaml/preprocess/parser_raw.mly" +# 5270 "src/ocaml/preprocess/parser_raw.mly" ( "of" ) -# 67934 "src/ocaml/preprocess/parser_raw.ml" +# 67937 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67953,9 +67956,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5256 "src/ocaml/preprocess/parser_raw.mly" +# 5271 "src/ocaml/preprocess/parser_raw.mly" ( "open" ) -# 67959 "src/ocaml/preprocess/parser_raw.ml" +# 67962 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -67978,9 +67981,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5257 "src/ocaml/preprocess/parser_raw.mly" +# 5272 "src/ocaml/preprocess/parser_raw.mly" ( "or" ) -# 67984 "src/ocaml/preprocess/parser_raw.ml" +# 67987 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68003,9 +68006,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5258 "src/ocaml/preprocess/parser_raw.mly" +# 5273 "src/ocaml/preprocess/parser_raw.mly" ( "private" ) -# 68009 "src/ocaml/preprocess/parser_raw.ml" +# 68012 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68028,9 +68031,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5259 "src/ocaml/preprocess/parser_raw.mly" +# 5274 "src/ocaml/preprocess/parser_raw.mly" ( "rec" ) -# 68034 "src/ocaml/preprocess/parser_raw.ml" +# 68037 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68053,9 +68056,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5260 "src/ocaml/preprocess/parser_raw.mly" +# 5275 "src/ocaml/preprocess/parser_raw.mly" ( "sig" ) -# 68059 "src/ocaml/preprocess/parser_raw.ml" +# 68062 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68078,9 +68081,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5261 "src/ocaml/preprocess/parser_raw.mly" +# 5276 "src/ocaml/preprocess/parser_raw.mly" ( "struct" ) -# 68084 "src/ocaml/preprocess/parser_raw.ml" +# 68087 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68103,9 +68106,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5262 "src/ocaml/preprocess/parser_raw.mly" +# 5277 "src/ocaml/preprocess/parser_raw.mly" ( "then" ) -# 68109 "src/ocaml/preprocess/parser_raw.ml" +# 68112 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68128,9 +68131,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5263 "src/ocaml/preprocess/parser_raw.mly" +# 5278 "src/ocaml/preprocess/parser_raw.mly" ( "to" ) -# 68134 "src/ocaml/preprocess/parser_raw.ml" +# 68137 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68153,9 +68156,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5264 "src/ocaml/preprocess/parser_raw.mly" +# 5279 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 68159 "src/ocaml/preprocess/parser_raw.ml" +# 68162 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68178,9 +68181,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5265 "src/ocaml/preprocess/parser_raw.mly" +# 5280 "src/ocaml/preprocess/parser_raw.mly" ( "try" ) -# 68184 "src/ocaml/preprocess/parser_raw.ml" +# 68187 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68203,9 +68206,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5266 "src/ocaml/preprocess/parser_raw.mly" +# 5281 "src/ocaml/preprocess/parser_raw.mly" ( "type" ) -# 68209 "src/ocaml/preprocess/parser_raw.ml" +# 68212 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68228,9 +68231,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5267 "src/ocaml/preprocess/parser_raw.mly" +# 5282 "src/ocaml/preprocess/parser_raw.mly" ( "val" ) -# 68234 "src/ocaml/preprocess/parser_raw.ml" +# 68237 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68253,9 +68256,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5268 "src/ocaml/preprocess/parser_raw.mly" +# 5283 "src/ocaml/preprocess/parser_raw.mly" ( "virtual" ) -# 68259 "src/ocaml/preprocess/parser_raw.ml" +# 68262 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68278,9 +68281,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5269 "src/ocaml/preprocess/parser_raw.mly" +# 5284 "src/ocaml/preprocess/parser_raw.mly" ( "when" ) -# 68284 "src/ocaml/preprocess/parser_raw.ml" +# 68287 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68303,9 +68306,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5270 "src/ocaml/preprocess/parser_raw.mly" +# 5285 "src/ocaml/preprocess/parser_raw.mly" ( "while" ) -# 68309 "src/ocaml/preprocess/parser_raw.ml" +# 68312 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68328,9 +68331,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5271 "src/ocaml/preprocess/parser_raw.mly" +# 5286 "src/ocaml/preprocess/parser_raw.mly" ( "with" ) -# 68334 "src/ocaml/preprocess/parser_raw.ml" +# 68337 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68348,14 +68351,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.type_exception * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.type_exception * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.type_exception * string Location.loc option) = -# 4187 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.type_exception * string Asttypes.loc option) = +# 4217 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68359 "src/ocaml/preprocess/parser_raw.ml" +# 68362 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68421,26 +68424,26 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined5_ in - let _v : (Parsetree.type_exception * string Location.loc option) = let attrs = + let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs = let _1 = _1_inlined5 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68435 "src/ocaml/preprocess/parser_raw.ml" +# 68438 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined5_ in let attrs2 = let _1 = _1_inlined4 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68444 "src/ocaml/preprocess/parser_raw.ml" +# 68447 "src/ocaml/preprocess/parser_raw.ml" in let lid = @@ -68449,9 +68452,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68455 "src/ocaml/preprocess/parser_raw.ml" +# 68458 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -68460,30 +68463,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 68466 "src/ocaml/preprocess/parser_raw.ml" +# 68469 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68474 "src/ocaml/preprocess/parser_raw.ml" +# 68477 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4196 "src/ocaml/preprocess/parser_raw.mly" +# 4226 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let docs = symbol_docs _sloc in Te.mk_exception ~attrs (Te.rebind id lid ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 68487 "src/ocaml/preprocess/parser_raw.ml" +# 68490 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68513,9 +68516,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.modes -> Parsetree.expression) = -# 3374 "src/ocaml/preprocess/parser_raw.mly" +# 3405 "src/ocaml/preprocess/parser_raw.mly" ( fun _ -> _2 ) -# 68519 "src/ocaml/preprocess/parser_raw.ml" +# 68522 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68562,7 +68565,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3378 "src/ocaml/preprocess/parser_raw.mly" +# 3409 "src/ocaml/preprocess/parser_raw.mly" ( fun mode_annotations -> let constraint_ : function_constraint option = match _2 with @@ -68573,7 +68576,7 @@ module Tables = struct { exp with pexp_loc = { exp.pexp_loc with loc_ghost = true } } ) -# 68577 "src/ocaml/preprocess/parser_raw.ml" +# 68580 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68638,8 +68641,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -68649,9 +68651,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 68655 "src/ocaml/preprocess/parser_raw.ml" +# 68657 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -68662,24 +68664,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 68666 "src/ocaml/preprocess/parser_raw.ml" +# 68668 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68671 "src/ocaml/preprocess/parser_raw.ml" +# 68673 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68677 "src/ocaml/preprocess/parser_raw.ml" +# 68679 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 68683 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 68685 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -68687,57 +68689,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 68693 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 68695 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68699 "src/ocaml/preprocess/parser_raw.ml" +# 68701 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 68706 "src/ocaml/preprocess/parser_raw.ml" +# 68708 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 68713 "src/ocaml/preprocess/parser_raw.ml" +# 68715 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 68722 "src/ocaml/preprocess/parser_raw.ml" +# 68724 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 68729 "src/ocaml/preprocess/parser_raw.ml" +# 68731 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68734 "src/ocaml/preprocess/parser_raw.ml" +# 68736 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 68741 "src/ocaml/preprocess/parser_raw.ml" +# 68743 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -68745,15 +68747,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 68751 "src/ocaml/preprocess/parser_raw.ml" +# 68753 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68757 "src/ocaml/preprocess/parser_raw.ml" +# 68759 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68825,8 +68827,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -68838,9 +68839,9 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 68844 "src/ocaml/preprocess/parser_raw.ml" +# 68845 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -68852,24 +68853,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 68856 "src/ocaml/preprocess/parser_raw.ml" +# 68857 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68861 "src/ocaml/preprocess/parser_raw.ml" +# 68862 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68867 "src/ocaml/preprocess/parser_raw.ml" +# 68868 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 68873 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 68874 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -68877,57 +68878,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 68883 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 68884 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68889 "src/ocaml/preprocess/parser_raw.ml" +# 68890 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 68896 "src/ocaml/preprocess/parser_raw.ml" +# 68897 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 68903 "src/ocaml/preprocess/parser_raw.ml" +# 68904 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 68912 "src/ocaml/preprocess/parser_raw.ml" +# 68913 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 68919 "src/ocaml/preprocess/parser_raw.ml" +# 68920 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68924 "src/ocaml/preprocess/parser_raw.ml" +# 68925 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 68931 "src/ocaml/preprocess/parser_raw.ml" +# 68932 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -68935,15 +68936,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 68941 "src/ocaml/preprocess/parser_raw.ml" +# 68942 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68947 "src/ocaml/preprocess/parser_raw.ml" +# 68948 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -68990,55 +68991,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 68996 "src/ocaml/preprocess/parser_raw.ml" +# 68997 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 69002 "src/ocaml/preprocess/parser_raw.ml" +# 69003 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 69008 "src/ocaml/preprocess/parser_raw.ml" +# 69009 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 69014 "src/ocaml/preprocess/parser_raw.ml" +# 69015 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 69023 "src/ocaml/preprocess/parser_raw.ml" +# 69024 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 69030 "src/ocaml/preprocess/parser_raw.ml" +# 69031 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69035 "src/ocaml/preprocess/parser_raw.ml" +# 69036 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 69042 "src/ocaml/preprocess/parser_raw.ml" +# 69043 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -69046,15 +69047,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 69052 "src/ocaml/preprocess/parser_raw.ml" +# 69053 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69058 "src/ocaml/preprocess/parser_raw.ml" +# 69059 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69108,55 +69109,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 69114 "src/ocaml/preprocess/parser_raw.ml" +# 69115 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 69120 "src/ocaml/preprocess/parser_raw.ml" +# 69121 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 69126 "src/ocaml/preprocess/parser_raw.ml" +# 69127 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 69132 "src/ocaml/preprocess/parser_raw.ml" +# 69133 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 69141 "src/ocaml/preprocess/parser_raw.ml" +# 69142 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 69148 "src/ocaml/preprocess/parser_raw.ml" +# 69149 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69153 "src/ocaml/preprocess/parser_raw.ml" +# 69154 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 69160 "src/ocaml/preprocess/parser_raw.ml" +# 69161 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -69164,15 +69165,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 69170 "src/ocaml/preprocess/parser_raw.ml" +# 69171 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69176 "src/ocaml/preprocess/parser_raw.ml" +# 69177 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69243,8 +69244,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -69255,7 +69255,7 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) # 69261 "src/ocaml/preprocess/parser_raw.ml" in @@ -69272,20 +69272,20 @@ module Tables = struct # 69273 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) # 69278 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 69284 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) # 69290 "src/ocaml/preprocess/parser_raw.ml" in @@ -69294,20 +69294,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) # 69300 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 69306 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) # 69313 "src/ocaml/preprocess/parser_raw.ml" @@ -69315,19 +69315,19 @@ module Tables = struct let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 69321 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) # 69326 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m @@ -69337,18 +69337,18 @@ module Tables = struct in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) # 69343 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 69348 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) # 69355 "src/ocaml/preprocess/parser_raw.ml" @@ -69359,13 +69359,13 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) # 69365 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 69371 "src/ocaml/preprocess/parser_raw.ml" in @@ -69445,8 +69445,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -69459,9 +69458,9 @@ module Tables = struct let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 69465 "src/ocaml/preprocess/parser_raw.ml" +# 69464 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -69474,24 +69473,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 69478 "src/ocaml/preprocess/parser_raw.ml" +# 69477 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69483 "src/ocaml/preprocess/parser_raw.ml" +# 69482 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69489 "src/ocaml/preprocess/parser_raw.ml" +# 69488 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 69495 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 69494 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -69499,64 +69498,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 69505 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 69504 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69511 "src/ocaml/preprocess/parser_raw.ml" +# 69510 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 69518 "src/ocaml/preprocess/parser_raw.ml" +# 69517 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69526 "src/ocaml/preprocess/parser_raw.ml" +# 69525 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 69531 "src/ocaml/preprocess/parser_raw.ml" +# 69530 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 69541 "src/ocaml/preprocess/parser_raw.ml" +# 69540 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 69548 "src/ocaml/preprocess/parser_raw.ml" +# 69547 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69553 "src/ocaml/preprocess/parser_raw.ml" +# 69552 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 69560 "src/ocaml/preprocess/parser_raw.ml" +# 69559 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -69564,15 +69563,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 69570 "src/ocaml/preprocess/parser_raw.ml" +# 69569 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69576 "src/ocaml/preprocess/parser_raw.ml" +# 69575 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69626,62 +69625,62 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 69632 "src/ocaml/preprocess/parser_raw.ml" +# 69631 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 69638 "src/ocaml/preprocess/parser_raw.ml" +# 69637 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 69644 "src/ocaml/preprocess/parser_raw.ml" +# 69643 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69651 "src/ocaml/preprocess/parser_raw.ml" +# 69650 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 69656 "src/ocaml/preprocess/parser_raw.ml" +# 69655 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 69666 "src/ocaml/preprocess/parser_raw.ml" +# 69665 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 69673 "src/ocaml/preprocess/parser_raw.ml" +# 69672 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69678 "src/ocaml/preprocess/parser_raw.ml" +# 69677 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 69685 "src/ocaml/preprocess/parser_raw.ml" +# 69684 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -69689,15 +69688,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 69695 "src/ocaml/preprocess/parser_raw.ml" +# 69694 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69701 "src/ocaml/preprocess/parser_raw.ml" +# 69700 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69760,63 +69759,63 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 69766 "src/ocaml/preprocess/parser_raw.ml" +# 69765 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 69773 "src/ocaml/preprocess/parser_raw.ml" +# 69772 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 69779 "src/ocaml/preprocess/parser_raw.ml" +# 69778 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69786 "src/ocaml/preprocess/parser_raw.ml" +# 69785 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 69791 "src/ocaml/preprocess/parser_raw.ml" +# 69790 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 69801 "src/ocaml/preprocess/parser_raw.ml" +# 69800 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 69808 "src/ocaml/preprocess/parser_raw.ml" +# 69807 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69813 "src/ocaml/preprocess/parser_raw.ml" +# 69812 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 69820 "src/ocaml/preprocess/parser_raw.ml" +# 69819 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -69824,15 +69823,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 69830 "src/ocaml/preprocess/parser_raw.ml" +# 69829 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69836 "src/ocaml/preprocess/parser_raw.ml" +# 69835 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -69903,14 +69902,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69914 "src/ocaml/preprocess/parser_raw.ml" +# 69912 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -69919,9 +69917,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 69925 "src/ocaml/preprocess/parser_raw.ml" +# 69923 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -69932,24 +69930,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 69936 "src/ocaml/preprocess/parser_raw.ml" +# 69934 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69941 "src/ocaml/preprocess/parser_raw.ml" +# 69939 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69947 "src/ocaml/preprocess/parser_raw.ml" +# 69945 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 69953 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 69951 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -69957,57 +69955,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 69963 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 69961 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69969 "src/ocaml/preprocess/parser_raw.ml" +# 69967 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 69976 "src/ocaml/preprocess/parser_raw.ml" +# 69974 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 69983 "src/ocaml/preprocess/parser_raw.ml" +# 69981 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 69992 "src/ocaml/preprocess/parser_raw.ml" +# 69990 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 69999 "src/ocaml/preprocess/parser_raw.ml" +# 69997 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70004 "src/ocaml/preprocess/parser_raw.ml" +# 70002 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 70011 "src/ocaml/preprocess/parser_raw.ml" +# 70009 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -70015,15 +70013,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 70021 "src/ocaml/preprocess/parser_raw.ml" +# 70019 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70027 "src/ocaml/preprocess/parser_raw.ml" +# 70025 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70101,14 +70099,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70112 "src/ocaml/preprocess/parser_raw.ml" +# 70109 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -70119,9 +70116,9 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 70125 "src/ocaml/preprocess/parser_raw.ml" +# 70122 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -70133,24 +70130,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 70137 "src/ocaml/preprocess/parser_raw.ml" +# 70134 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 70142 "src/ocaml/preprocess/parser_raw.ml" +# 70139 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70148 "src/ocaml/preprocess/parser_raw.ml" +# 70145 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 70154 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 70151 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -70158,57 +70155,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 70164 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 70161 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70170 "src/ocaml/preprocess/parser_raw.ml" +# 70167 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 70177 "src/ocaml/preprocess/parser_raw.ml" +# 70174 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 70184 "src/ocaml/preprocess/parser_raw.ml" +# 70181 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 70193 "src/ocaml/preprocess/parser_raw.ml" +# 70190 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 70200 "src/ocaml/preprocess/parser_raw.ml" +# 70197 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70205 "src/ocaml/preprocess/parser_raw.ml" +# 70202 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 70212 "src/ocaml/preprocess/parser_raw.ml" +# 70209 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -70216,15 +70213,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 70222 "src/ocaml/preprocess/parser_raw.ml" +# 70219 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70228 "src/ocaml/preprocess/parser_raw.ml" +# 70225 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70271,9 +70268,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70277 "src/ocaml/preprocess/parser_raw.ml" +# 70274 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -70282,55 +70279,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 70288 "src/ocaml/preprocess/parser_raw.ml" +# 70285 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 70294 "src/ocaml/preprocess/parser_raw.ml" +# 70291 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 70300 "src/ocaml/preprocess/parser_raw.ml" +# 70297 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 70306 "src/ocaml/preprocess/parser_raw.ml" +# 70303 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 70315 "src/ocaml/preprocess/parser_raw.ml" +# 70312 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 70322 "src/ocaml/preprocess/parser_raw.ml" +# 70319 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70327 "src/ocaml/preprocess/parser_raw.ml" +# 70324 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 70334 "src/ocaml/preprocess/parser_raw.ml" +# 70331 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -70338,15 +70335,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 70344 "src/ocaml/preprocess/parser_raw.ml" +# 70341 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70350 "src/ocaml/preprocess/parser_raw.ml" +# 70347 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70400,9 +70397,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70406 "src/ocaml/preprocess/parser_raw.ml" +# 70403 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -70411,55 +70408,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 70417 "src/ocaml/preprocess/parser_raw.ml" +# 70414 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 70423 "src/ocaml/preprocess/parser_raw.ml" +# 70420 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 70429 "src/ocaml/preprocess/parser_raw.ml" +# 70426 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 70435 "src/ocaml/preprocess/parser_raw.ml" +# 70432 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 70444 "src/ocaml/preprocess/parser_raw.ml" +# 70441 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 70451 "src/ocaml/preprocess/parser_raw.ml" +# 70448 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70456 "src/ocaml/preprocess/parser_raw.ml" +# 70453 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 70463 "src/ocaml/preprocess/parser_raw.ml" +# 70460 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -70467,15 +70464,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 70473 "src/ocaml/preprocess/parser_raw.ml" +# 70470 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70479 "src/ocaml/preprocess/parser_raw.ml" +# 70476 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70552,15 +70549,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70564 "src/ocaml/preprocess/parser_raw.ml" +# 70560 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -70569,9 +70565,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 70575 "src/ocaml/preprocess/parser_raw.ml" +# 70571 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -70583,24 +70579,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 70587 "src/ocaml/preprocess/parser_raw.ml" +# 70583 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 70592 "src/ocaml/preprocess/parser_raw.ml" +# 70588 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70598 "src/ocaml/preprocess/parser_raw.ml" +# 70594 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 70604 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 70600 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -70608,64 +70604,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 70614 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 70610 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70620 "src/ocaml/preprocess/parser_raw.ml" +# 70616 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 70627 "src/ocaml/preprocess/parser_raw.ml" +# 70623 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70635 "src/ocaml/preprocess/parser_raw.ml" +# 70631 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 70640 "src/ocaml/preprocess/parser_raw.ml" +# 70636 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 70650 "src/ocaml/preprocess/parser_raw.ml" +# 70646 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 70657 "src/ocaml/preprocess/parser_raw.ml" +# 70653 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70662 "src/ocaml/preprocess/parser_raw.ml" +# 70658 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 70669 "src/ocaml/preprocess/parser_raw.ml" +# 70665 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -70673,15 +70669,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 70679 "src/ocaml/preprocess/parser_raw.ml" +# 70675 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70685 "src/ocaml/preprocess/parser_raw.ml" +# 70681 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70765,15 +70761,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70777 "src/ocaml/preprocess/parser_raw.ml" +# 70772 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -70784,9 +70779,9 @@ module Tables = struct let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 70790 "src/ocaml/preprocess/parser_raw.ml" +# 70785 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -70799,24 +70794,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 70803 "src/ocaml/preprocess/parser_raw.ml" +# 70798 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 70808 "src/ocaml/preprocess/parser_raw.ml" +# 70803 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70814 "src/ocaml/preprocess/parser_raw.ml" +# 70809 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 70820 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 70815 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -70824,64 +70819,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 70830 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 70825 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70836 "src/ocaml/preprocess/parser_raw.ml" +# 70831 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 70843 "src/ocaml/preprocess/parser_raw.ml" +# 70838 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70851 "src/ocaml/preprocess/parser_raw.ml" +# 70846 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 70856 "src/ocaml/preprocess/parser_raw.ml" +# 70851 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 70866 "src/ocaml/preprocess/parser_raw.ml" +# 70861 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 70873 "src/ocaml/preprocess/parser_raw.ml" +# 70868 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70878 "src/ocaml/preprocess/parser_raw.ml" +# 70873 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 70885 "src/ocaml/preprocess/parser_raw.ml" +# 70880 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -70889,15 +70884,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 70895 "src/ocaml/preprocess/parser_raw.ml" +# 70890 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70901 "src/ocaml/preprocess/parser_raw.ml" +# 70896 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -70951,9 +70946,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70957 "src/ocaml/preprocess/parser_raw.ml" +# 70952 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -70962,62 +70957,62 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 70968 "src/ocaml/preprocess/parser_raw.ml" +# 70963 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 70974 "src/ocaml/preprocess/parser_raw.ml" +# 70969 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 70980 "src/ocaml/preprocess/parser_raw.ml" +# 70975 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70987 "src/ocaml/preprocess/parser_raw.ml" +# 70982 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 70992 "src/ocaml/preprocess/parser_raw.ml" +# 70987 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71002 "src/ocaml/preprocess/parser_raw.ml" +# 70997 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 71009 "src/ocaml/preprocess/parser_raw.ml" +# 71004 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71014 "src/ocaml/preprocess/parser_raw.ml" +# 71009 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71021 "src/ocaml/preprocess/parser_raw.ml" +# 71016 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -71025,15 +71020,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71031 "src/ocaml/preprocess/parser_raw.ml" +# 71026 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71037 "src/ocaml/preprocess/parser_raw.ml" +# 71032 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71094,9 +71089,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71100 "src/ocaml/preprocess/parser_raw.ml" +# 71095 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -71107,63 +71102,63 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71113 "src/ocaml/preprocess/parser_raw.ml" +# 71108 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 71120 "src/ocaml/preprocess/parser_raw.ml" +# 71115 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71126 "src/ocaml/preprocess/parser_raw.ml" +# 71121 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71133 "src/ocaml/preprocess/parser_raw.ml" +# 71128 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71138 "src/ocaml/preprocess/parser_raw.ml" +# 71133 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71148 "src/ocaml/preprocess/parser_raw.ml" +# 71143 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 71155 "src/ocaml/preprocess/parser_raw.ml" +# 71150 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71160 "src/ocaml/preprocess/parser_raw.ml" +# 71155 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71167 "src/ocaml/preprocess/parser_raw.ml" +# 71162 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -71171,15 +71166,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71177 "src/ocaml/preprocess/parser_raw.ml" +# 71172 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71183 "src/ocaml/preprocess/parser_raw.ml" +# 71178 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71238,8 +71233,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -71248,9 +71242,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71254 "src/ocaml/preprocess/parser_raw.ml" +# 71248 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -71261,24 +71255,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 71265 "src/ocaml/preprocess/parser_raw.ml" +# 71259 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71270 "src/ocaml/preprocess/parser_raw.ml" +# 71264 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71276 "src/ocaml/preprocess/parser_raw.ml" +# 71270 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 71282 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 71276 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -71286,50 +71280,50 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 71292 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 71286 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71298 "src/ocaml/preprocess/parser_raw.ml" +# 71292 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71305 "src/ocaml/preprocess/parser_raw.ml" +# 71299 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71312 "src/ocaml/preprocess/parser_raw.ml" +# 71306 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71321 "src/ocaml/preprocess/parser_raw.ml" +# 71315 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 71327 "src/ocaml/preprocess/parser_raw.ml" +# 71321 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71333 "src/ocaml/preprocess/parser_raw.ml" +# 71327 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -71337,15 +71331,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71343 "src/ocaml/preprocess/parser_raw.ml" +# 71337 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71349 "src/ocaml/preprocess/parser_raw.ml" +# 71343 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71411,8 +71405,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -71423,9 +71416,9 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71429 "src/ocaml/preprocess/parser_raw.ml" +# 71422 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -71437,24 +71430,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 71441 "src/ocaml/preprocess/parser_raw.ml" +# 71434 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71446 "src/ocaml/preprocess/parser_raw.ml" +# 71439 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71452 "src/ocaml/preprocess/parser_raw.ml" +# 71445 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 71458 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 71451 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -71462,50 +71455,50 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 71468 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 71461 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71474 "src/ocaml/preprocess/parser_raw.ml" +# 71467 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71481 "src/ocaml/preprocess/parser_raw.ml" +# 71474 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71488 "src/ocaml/preprocess/parser_raw.ml" +# 71481 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71497 "src/ocaml/preprocess/parser_raw.ml" +# 71490 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 71503 "src/ocaml/preprocess/parser_raw.ml" +# 71496 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71509 "src/ocaml/preprocess/parser_raw.ml" +# 71502 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -71513,15 +71506,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71519 "src/ocaml/preprocess/parser_raw.ml" +# 71512 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71525 "src/ocaml/preprocess/parser_raw.ml" +# 71518 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71561,48 +71554,48 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71567 "src/ocaml/preprocess/parser_raw.ml" +# 71560 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 71573 "src/ocaml/preprocess/parser_raw.ml" +# 71566 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71579 "src/ocaml/preprocess/parser_raw.ml" +# 71572 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71585 "src/ocaml/preprocess/parser_raw.ml" +# 71578 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71594 "src/ocaml/preprocess/parser_raw.ml" +# 71587 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 71600 "src/ocaml/preprocess/parser_raw.ml" +# 71593 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71606 "src/ocaml/preprocess/parser_raw.ml" +# 71599 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -71610,15 +71603,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71616 "src/ocaml/preprocess/parser_raw.ml" +# 71609 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71622 "src/ocaml/preprocess/parser_raw.ml" +# 71615 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71665,48 +71658,48 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71671 "src/ocaml/preprocess/parser_raw.ml" +# 71664 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 71677 "src/ocaml/preprocess/parser_raw.ml" +# 71670 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71683 "src/ocaml/preprocess/parser_raw.ml" +# 71676 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71689 "src/ocaml/preprocess/parser_raw.ml" +# 71682 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71698 "src/ocaml/preprocess/parser_raw.ml" +# 71691 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 71704 "src/ocaml/preprocess/parser_raw.ml" +# 71697 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71710 "src/ocaml/preprocess/parser_raw.ml" +# 71703 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -71714,15 +71707,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71720 "src/ocaml/preprocess/parser_raw.ml" +# 71713 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71726 "src/ocaml/preprocess/parser_raw.ml" +# 71719 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71787,8 +71780,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -71798,9 +71790,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 71804 "src/ocaml/preprocess/parser_raw.ml" +# 71796 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -71812,24 +71804,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 71816 "src/ocaml/preprocess/parser_raw.ml" +# 71808 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71821 "src/ocaml/preprocess/parser_raw.ml" +# 71813 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71827 "src/ocaml/preprocess/parser_raw.ml" +# 71819 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 71833 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 71825 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -71837,57 +71829,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 71843 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 71835 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71849 "src/ocaml/preprocess/parser_raw.ml" +# 71841 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 71856 "src/ocaml/preprocess/parser_raw.ml" +# 71848 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71864 "src/ocaml/preprocess/parser_raw.ml" +# 71856 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71869 "src/ocaml/preprocess/parser_raw.ml" +# 71861 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 71879 "src/ocaml/preprocess/parser_raw.ml" +# 71871 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 71885 "src/ocaml/preprocess/parser_raw.ml" +# 71877 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 71891 "src/ocaml/preprocess/parser_raw.ml" +# 71883 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -71895,15 +71887,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 71901 "src/ocaml/preprocess/parser_raw.ml" +# 71893 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71907 "src/ocaml/preprocess/parser_raw.ml" +# 71899 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71975,8 +71967,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -71988,9 +71979,9 @@ module Tables = struct let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 71994 "src/ocaml/preprocess/parser_raw.ml" +# 71985 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -72003,24 +71994,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 72007 "src/ocaml/preprocess/parser_raw.ml" +# 71998 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72012 "src/ocaml/preprocess/parser_raw.ml" +# 72003 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72018 "src/ocaml/preprocess/parser_raw.ml" +# 72009 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 72024 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 72015 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -72028,57 +72019,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 72034 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 72025 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72040 "src/ocaml/preprocess/parser_raw.ml" +# 72031 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72047 "src/ocaml/preprocess/parser_raw.ml" +# 72038 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72055 "src/ocaml/preprocess/parser_raw.ml" +# 72046 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72060 "src/ocaml/preprocess/parser_raw.ml" +# 72051 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72070 "src/ocaml/preprocess/parser_raw.ml" +# 72061 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 72076 "src/ocaml/preprocess/parser_raw.ml" +# 72067 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72082 "src/ocaml/preprocess/parser_raw.ml" +# 72073 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -72086,15 +72077,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72092 "src/ocaml/preprocess/parser_raw.ml" +# 72083 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72098 "src/ocaml/preprocess/parser_raw.ml" +# 72089 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72141,55 +72132,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72147 "src/ocaml/preprocess/parser_raw.ml" +# 72138 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 72153 "src/ocaml/preprocess/parser_raw.ml" +# 72144 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72159 "src/ocaml/preprocess/parser_raw.ml" +# 72150 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72166 "src/ocaml/preprocess/parser_raw.ml" +# 72157 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72171 "src/ocaml/preprocess/parser_raw.ml" +# 72162 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72181 "src/ocaml/preprocess/parser_raw.ml" +# 72172 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 72187 "src/ocaml/preprocess/parser_raw.ml" +# 72178 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72193 "src/ocaml/preprocess/parser_raw.ml" +# 72184 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -72197,15 +72188,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72203 "src/ocaml/preprocess/parser_raw.ml" +# 72194 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72209 "src/ocaml/preprocess/parser_raw.ml" +# 72200 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72261,56 +72252,56 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72267 "src/ocaml/preprocess/parser_raw.ml" +# 72258 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 72274 "src/ocaml/preprocess/parser_raw.ml" +# 72265 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72280 "src/ocaml/preprocess/parser_raw.ml" +# 72271 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72287 "src/ocaml/preprocess/parser_raw.ml" +# 72278 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72292 "src/ocaml/preprocess/parser_raw.ml" +# 72283 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72302 "src/ocaml/preprocess/parser_raw.ml" +# 72293 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 72308 "src/ocaml/preprocess/parser_raw.ml" +# 72299 "src/ocaml/preprocess/parser_raw.ml" in -# 4470 "src/ocaml/preprocess/parser_raw.mly" +# 4489 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 72314 "src/ocaml/preprocess/parser_raw.ml" +# 72305 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -72318,15 +72309,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72324 "src/ocaml/preprocess/parser_raw.ml" +# 72315 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4492 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72330 "src/ocaml/preprocess/parser_raw.ml" +# 72321 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72391,8 +72382,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -72402,30 +72392,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72408 "src/ocaml/preprocess/parser_raw.ml" +# 72398 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72413 "src/ocaml/preprocess/parser_raw.ml" +# 72403 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72422 "src/ocaml/preprocess/parser_raw.ml" +# 72412 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72429 "src/ocaml/preprocess/parser_raw.ml" +# 72419 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -72436,24 +72426,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 72440 "src/ocaml/preprocess/parser_raw.ml" +# 72430 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72445 "src/ocaml/preprocess/parser_raw.ml" +# 72435 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72451 "src/ocaml/preprocess/parser_raw.ml" +# 72441 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 72457 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 72447 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -72461,60 +72451,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 72467 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 72457 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72473 "src/ocaml/preprocess/parser_raw.ml" +# 72463 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72480 "src/ocaml/preprocess/parser_raw.ml" +# 72470 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72487 "src/ocaml/preprocess/parser_raw.ml" +# 72477 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72496 "src/ocaml/preprocess/parser_raw.ml" +# 72486 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72503 "src/ocaml/preprocess/parser_raw.ml" +# 72493 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72508 "src/ocaml/preprocess/parser_raw.ml" +# 72498 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 72518 "src/ocaml/preprocess/parser_raw.ml" +# 72508 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -72522,15 +72512,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72528 "src/ocaml/preprocess/parser_raw.ml" +# 72518 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72534 "src/ocaml/preprocess/parser_raw.ml" +# 72524 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72602,8 +72592,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -72614,30 +72603,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72620 "src/ocaml/preprocess/parser_raw.ml" +# 72609 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72625 "src/ocaml/preprocess/parser_raw.ml" +# 72614 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72634 "src/ocaml/preprocess/parser_raw.ml" +# 72623 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72641 "src/ocaml/preprocess/parser_raw.ml" +# 72630 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -72648,24 +72637,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 72652 "src/ocaml/preprocess/parser_raw.ml" +# 72641 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72657 "src/ocaml/preprocess/parser_raw.ml" +# 72646 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72663 "src/ocaml/preprocess/parser_raw.ml" +# 72652 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 72669 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 72658 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -72673,60 +72662,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 72679 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 72668 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72685 "src/ocaml/preprocess/parser_raw.ml" +# 72674 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72692 "src/ocaml/preprocess/parser_raw.ml" +# 72681 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72699 "src/ocaml/preprocess/parser_raw.ml" +# 72688 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72708 "src/ocaml/preprocess/parser_raw.ml" +# 72697 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72715 "src/ocaml/preprocess/parser_raw.ml" +# 72704 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72720 "src/ocaml/preprocess/parser_raw.ml" +# 72709 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 72730 "src/ocaml/preprocess/parser_raw.ml" +# 72719 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -72734,15 +72723,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72740 "src/ocaml/preprocess/parser_raw.ml" +# 72729 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72746 "src/ocaml/preprocess/parser_raw.ml" +# 72735 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72814,8 +72803,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -72826,37 +72814,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72832 "src/ocaml/preprocess/parser_raw.ml" +# 72820 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72838 "src/ocaml/preprocess/parser_raw.ml" +# 72826 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 72843 "src/ocaml/preprocess/parser_raw.ml" +# 72831 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72853 "src/ocaml/preprocess/parser_raw.ml" +# 72841 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72860 "src/ocaml/preprocess/parser_raw.ml" +# 72848 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -72867,24 +72855,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 72871 "src/ocaml/preprocess/parser_raw.ml" +# 72859 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 72876 "src/ocaml/preprocess/parser_raw.ml" +# 72864 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72882 "src/ocaml/preprocess/parser_raw.ml" +# 72870 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 72888 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 72876 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -72892,60 +72880,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 72898 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 72886 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72904 "src/ocaml/preprocess/parser_raw.ml" +# 72892 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 72911 "src/ocaml/preprocess/parser_raw.ml" +# 72899 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72918 "src/ocaml/preprocess/parser_raw.ml" +# 72906 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 72927 "src/ocaml/preprocess/parser_raw.ml" +# 72915 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 72934 "src/ocaml/preprocess/parser_raw.ml" +# 72922 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72939 "src/ocaml/preprocess/parser_raw.ml" +# 72927 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 72949 "src/ocaml/preprocess/parser_raw.ml" +# 72937 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -72953,15 +72941,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 72959 "src/ocaml/preprocess/parser_raw.ml" +# 72947 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 72965 "src/ocaml/preprocess/parser_raw.ml" +# 72953 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73040,8 +73028,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73054,38 +73041,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73060 "src/ocaml/preprocess/parser_raw.ml" +# 73047 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73067 "src/ocaml/preprocess/parser_raw.ml" +# 73054 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73072 "src/ocaml/preprocess/parser_raw.ml" +# 73059 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73082 "src/ocaml/preprocess/parser_raw.ml" +# 73069 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73089 "src/ocaml/preprocess/parser_raw.ml" +# 73076 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -73096,24 +73083,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 73100 "src/ocaml/preprocess/parser_raw.ml" +# 73087 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73105 "src/ocaml/preprocess/parser_raw.ml" +# 73092 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73111 "src/ocaml/preprocess/parser_raw.ml" +# 73098 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 73117 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 73104 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -73121,60 +73108,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 73127 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 73114 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73133 "src/ocaml/preprocess/parser_raw.ml" +# 73120 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73140 "src/ocaml/preprocess/parser_raw.ml" +# 73127 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73147 "src/ocaml/preprocess/parser_raw.ml" +# 73134 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73156 "src/ocaml/preprocess/parser_raw.ml" +# 73143 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73163 "src/ocaml/preprocess/parser_raw.ml" +# 73150 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73168 "src/ocaml/preprocess/parser_raw.ml" +# 73155 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 73178 "src/ocaml/preprocess/parser_raw.ml" +# 73165 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -73182,15 +73169,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73188 "src/ocaml/preprocess/parser_raw.ml" +# 73175 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73194 "src/ocaml/preprocess/parser_raw.ml" +# 73181 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73262,8 +73249,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73273,32 +73259,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73279 "src/ocaml/preprocess/parser_raw.ml" +# 73265 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73284 "src/ocaml/preprocess/parser_raw.ml" +# 73270 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73293 "src/ocaml/preprocess/parser_raw.ml" +# 73279 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73302 "src/ocaml/preprocess/parser_raw.ml" +# 73288 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -73310,24 +73296,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 73314 "src/ocaml/preprocess/parser_raw.ml" +# 73300 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73319 "src/ocaml/preprocess/parser_raw.ml" +# 73305 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73325 "src/ocaml/preprocess/parser_raw.ml" +# 73311 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 73331 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 73317 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -73335,60 +73321,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 73341 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 73327 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73347 "src/ocaml/preprocess/parser_raw.ml" +# 73333 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73354 "src/ocaml/preprocess/parser_raw.ml" +# 73340 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73361 "src/ocaml/preprocess/parser_raw.ml" +# 73347 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73370 "src/ocaml/preprocess/parser_raw.ml" +# 73356 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73377 "src/ocaml/preprocess/parser_raw.ml" +# 73363 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73382 "src/ocaml/preprocess/parser_raw.ml" +# 73368 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 73392 "src/ocaml/preprocess/parser_raw.ml" +# 73378 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -73396,15 +73382,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73402 "src/ocaml/preprocess/parser_raw.ml" +# 73388 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73408 "src/ocaml/preprocess/parser_raw.ml" +# 73394 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73483,8 +73469,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73495,32 +73480,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73501 "src/ocaml/preprocess/parser_raw.ml" +# 73486 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73506 "src/ocaml/preprocess/parser_raw.ml" +# 73491 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73515 "src/ocaml/preprocess/parser_raw.ml" +# 73500 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73524 "src/ocaml/preprocess/parser_raw.ml" +# 73509 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -73532,24 +73517,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 73536 "src/ocaml/preprocess/parser_raw.ml" +# 73521 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73541 "src/ocaml/preprocess/parser_raw.ml" +# 73526 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73547 "src/ocaml/preprocess/parser_raw.ml" +# 73532 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 73553 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 73538 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -73557,60 +73542,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 73563 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 73548 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73569 "src/ocaml/preprocess/parser_raw.ml" +# 73554 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73576 "src/ocaml/preprocess/parser_raw.ml" +# 73561 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73583 "src/ocaml/preprocess/parser_raw.ml" +# 73568 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73592 "src/ocaml/preprocess/parser_raw.ml" +# 73577 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73599 "src/ocaml/preprocess/parser_raw.ml" +# 73584 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73604 "src/ocaml/preprocess/parser_raw.ml" +# 73589 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 73614 "src/ocaml/preprocess/parser_raw.ml" +# 73599 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -73618,15 +73603,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73624 "src/ocaml/preprocess/parser_raw.ml" +# 73609 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73630 "src/ocaml/preprocess/parser_raw.ml" +# 73615 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73705,8 +73690,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73717,39 +73701,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73723 "src/ocaml/preprocess/parser_raw.ml" +# 73707 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73729 "src/ocaml/preprocess/parser_raw.ml" +# 73713 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73734 "src/ocaml/preprocess/parser_raw.ml" +# 73718 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73744 "src/ocaml/preprocess/parser_raw.ml" +# 73728 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73753 "src/ocaml/preprocess/parser_raw.ml" +# 73737 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -73761,24 +73745,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 73765 "src/ocaml/preprocess/parser_raw.ml" +# 73749 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73770 "src/ocaml/preprocess/parser_raw.ml" +# 73754 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73776 "src/ocaml/preprocess/parser_raw.ml" +# 73760 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 73782 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 73766 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -73786,60 +73770,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 73792 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 73776 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73798 "src/ocaml/preprocess/parser_raw.ml" +# 73782 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 73805 "src/ocaml/preprocess/parser_raw.ml" +# 73789 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73812 "src/ocaml/preprocess/parser_raw.ml" +# 73796 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73821 "src/ocaml/preprocess/parser_raw.ml" +# 73805 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 73828 "src/ocaml/preprocess/parser_raw.ml" +# 73812 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73833 "src/ocaml/preprocess/parser_raw.ml" +# 73817 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 73843 "src/ocaml/preprocess/parser_raw.ml" +# 73827 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -73847,15 +73831,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 73853 "src/ocaml/preprocess/parser_raw.ml" +# 73837 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73859 "src/ocaml/preprocess/parser_raw.ml" +# 73843 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73941,8 +73925,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73955,40 +73938,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73961 "src/ocaml/preprocess/parser_raw.ml" +# 73944 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73968 "src/ocaml/preprocess/parser_raw.ml" +# 73951 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73973 "src/ocaml/preprocess/parser_raw.ml" +# 73956 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 73983 "src/ocaml/preprocess/parser_raw.ml" +# 73966 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 73992 "src/ocaml/preprocess/parser_raw.ml" +# 73975 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -74000,24 +73983,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 74004 "src/ocaml/preprocess/parser_raw.ml" +# 73987 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74009 "src/ocaml/preprocess/parser_raw.ml" +# 73992 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74015 "src/ocaml/preprocess/parser_raw.ml" +# 73998 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 74021 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 74004 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -74025,60 +74008,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 74031 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 74014 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74037 "src/ocaml/preprocess/parser_raw.ml" +# 74020 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74044 "src/ocaml/preprocess/parser_raw.ml" +# 74027 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74051 "src/ocaml/preprocess/parser_raw.ml" +# 74034 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74060 "src/ocaml/preprocess/parser_raw.ml" +# 74043 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74067 "src/ocaml/preprocess/parser_raw.ml" +# 74050 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74072 "src/ocaml/preprocess/parser_raw.ml" +# 74055 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74082 "src/ocaml/preprocess/parser_raw.ml" +# 74065 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -74086,15 +74069,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74092 "src/ocaml/preprocess/parser_raw.ml" +# 74075 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74098 "src/ocaml/preprocess/parser_raw.ml" +# 74081 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74142,79 +74125,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74148 "src/ocaml/preprocess/parser_raw.ml" +# 74131 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74153 "src/ocaml/preprocess/parser_raw.ml" +# 74136 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74162 "src/ocaml/preprocess/parser_raw.ml" +# 74145 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74169 "src/ocaml/preprocess/parser_raw.ml" +# 74152 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74175 "src/ocaml/preprocess/parser_raw.ml" +# 74158 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74181 "src/ocaml/preprocess/parser_raw.ml" +# 74164 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74187 "src/ocaml/preprocess/parser_raw.ml" +# 74170 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74196 "src/ocaml/preprocess/parser_raw.ml" +# 74179 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74203 "src/ocaml/preprocess/parser_raw.ml" +# 74186 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74208 "src/ocaml/preprocess/parser_raw.ml" +# 74191 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74218 "src/ocaml/preprocess/parser_raw.ml" +# 74201 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -74222,15 +74205,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74228 "src/ocaml/preprocess/parser_raw.ml" +# 74211 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74234 "src/ocaml/preprocess/parser_raw.ml" +# 74217 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74285,79 +74268,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74291 "src/ocaml/preprocess/parser_raw.ml" +# 74274 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74296 "src/ocaml/preprocess/parser_raw.ml" +# 74279 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74305 "src/ocaml/preprocess/parser_raw.ml" +# 74288 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74312 "src/ocaml/preprocess/parser_raw.ml" +# 74295 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74318 "src/ocaml/preprocess/parser_raw.ml" +# 74301 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74324 "src/ocaml/preprocess/parser_raw.ml" +# 74307 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74330 "src/ocaml/preprocess/parser_raw.ml" +# 74313 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74339 "src/ocaml/preprocess/parser_raw.ml" +# 74322 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74346 "src/ocaml/preprocess/parser_raw.ml" +# 74329 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74351 "src/ocaml/preprocess/parser_raw.ml" +# 74334 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74361 "src/ocaml/preprocess/parser_raw.ml" +# 74344 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -74365,15 +74348,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74371 "src/ocaml/preprocess/parser_raw.ml" +# 74354 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74377 "src/ocaml/preprocess/parser_raw.ml" +# 74360 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74428,86 +74411,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74434 "src/ocaml/preprocess/parser_raw.ml" +# 74417 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74440 "src/ocaml/preprocess/parser_raw.ml" +# 74423 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74445 "src/ocaml/preprocess/parser_raw.ml" +# 74428 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74455 "src/ocaml/preprocess/parser_raw.ml" +# 74438 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74462 "src/ocaml/preprocess/parser_raw.ml" +# 74445 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74468 "src/ocaml/preprocess/parser_raw.ml" +# 74451 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74474 "src/ocaml/preprocess/parser_raw.ml" +# 74457 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74480 "src/ocaml/preprocess/parser_raw.ml" +# 74463 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74489 "src/ocaml/preprocess/parser_raw.ml" +# 74472 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74496 "src/ocaml/preprocess/parser_raw.ml" +# 74479 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74501 "src/ocaml/preprocess/parser_raw.ml" +# 74484 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74511 "src/ocaml/preprocess/parser_raw.ml" +# 74494 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -74515,15 +74498,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74521 "src/ocaml/preprocess/parser_raw.ml" +# 74504 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74527 "src/ocaml/preprocess/parser_raw.ml" +# 74510 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74587,87 +74570,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74593 "src/ocaml/preprocess/parser_raw.ml" +# 74576 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74600 "src/ocaml/preprocess/parser_raw.ml" +# 74583 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74605 "src/ocaml/preprocess/parser_raw.ml" +# 74588 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74615 "src/ocaml/preprocess/parser_raw.ml" +# 74598 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74622 "src/ocaml/preprocess/parser_raw.ml" +# 74605 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74628 "src/ocaml/preprocess/parser_raw.ml" +# 74611 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74634 "src/ocaml/preprocess/parser_raw.ml" +# 74617 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74640 "src/ocaml/preprocess/parser_raw.ml" +# 74623 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74649 "src/ocaml/preprocess/parser_raw.ml" +# 74632 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74656 "src/ocaml/preprocess/parser_raw.ml" +# 74639 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74661 "src/ocaml/preprocess/parser_raw.ml" +# 74644 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74671 "src/ocaml/preprocess/parser_raw.ml" +# 74654 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -74675,15 +74658,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74681 "src/ocaml/preprocess/parser_raw.ml" +# 74664 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74687 "src/ocaml/preprocess/parser_raw.ml" +# 74670 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74738,79 +74721,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74744 "src/ocaml/preprocess/parser_raw.ml" +# 74727 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74749 "src/ocaml/preprocess/parser_raw.ml" +# 74732 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74758 "src/ocaml/preprocess/parser_raw.ml" +# 74741 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74765 "src/ocaml/preprocess/parser_raw.ml" +# 74748 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74771 "src/ocaml/preprocess/parser_raw.ml" +# 74754 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74777 "src/ocaml/preprocess/parser_raw.ml" +# 74760 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74783 "src/ocaml/preprocess/parser_raw.ml" +# 74766 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74792 "src/ocaml/preprocess/parser_raw.ml" +# 74775 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74799 "src/ocaml/preprocess/parser_raw.ml" +# 74782 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74804 "src/ocaml/preprocess/parser_raw.ml" +# 74787 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74814 "src/ocaml/preprocess/parser_raw.ml" +# 74797 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -74818,15 +74801,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74824 "src/ocaml/preprocess/parser_raw.ml" +# 74807 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74830 "src/ocaml/preprocess/parser_raw.ml" +# 74813 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -74888,79 +74871,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74894 "src/ocaml/preprocess/parser_raw.ml" +# 74877 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74899 "src/ocaml/preprocess/parser_raw.ml" +# 74882 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74908 "src/ocaml/preprocess/parser_raw.ml" +# 74891 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 74915 "src/ocaml/preprocess/parser_raw.ml" +# 74898 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 74921 "src/ocaml/preprocess/parser_raw.ml" +# 74904 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 74927 "src/ocaml/preprocess/parser_raw.ml" +# 74910 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 74933 "src/ocaml/preprocess/parser_raw.ml" +# 74916 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 74942 "src/ocaml/preprocess/parser_raw.ml" +# 74925 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 74949 "src/ocaml/preprocess/parser_raw.ml" +# 74932 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74954 "src/ocaml/preprocess/parser_raw.ml" +# 74937 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 74964 "src/ocaml/preprocess/parser_raw.ml" +# 74947 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -74968,15 +74951,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 74974 "src/ocaml/preprocess/parser_raw.ml" +# 74957 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74980 "src/ocaml/preprocess/parser_raw.ml" +# 74963 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75038,86 +75021,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75044 "src/ocaml/preprocess/parser_raw.ml" +# 75027 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75050 "src/ocaml/preprocess/parser_raw.ml" +# 75033 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75055 "src/ocaml/preprocess/parser_raw.ml" +# 75038 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75065 "src/ocaml/preprocess/parser_raw.ml" +# 75048 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75072 "src/ocaml/preprocess/parser_raw.ml" +# 75055 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 75078 "src/ocaml/preprocess/parser_raw.ml" +# 75061 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75084 "src/ocaml/preprocess/parser_raw.ml" +# 75067 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75090 "src/ocaml/preprocess/parser_raw.ml" +# 75073 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75099 "src/ocaml/preprocess/parser_raw.ml" +# 75082 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75106 "src/ocaml/preprocess/parser_raw.ml" +# 75089 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75111 "src/ocaml/preprocess/parser_raw.ml" +# 75094 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75121 "src/ocaml/preprocess/parser_raw.ml" +# 75104 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -75125,15 +75108,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75131 "src/ocaml/preprocess/parser_raw.ml" +# 75114 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75137 "src/ocaml/preprocess/parser_raw.ml" +# 75120 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75204,87 +75187,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75210 "src/ocaml/preprocess/parser_raw.ml" +# 75193 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75217 "src/ocaml/preprocess/parser_raw.ml" +# 75200 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75222 "src/ocaml/preprocess/parser_raw.ml" +# 75205 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75232 "src/ocaml/preprocess/parser_raw.ml" +# 75215 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75239 "src/ocaml/preprocess/parser_raw.ml" +# 75222 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 75245 "src/ocaml/preprocess/parser_raw.ml" +# 75228 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75251 "src/ocaml/preprocess/parser_raw.ml" +# 75234 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75257 "src/ocaml/preprocess/parser_raw.ml" +# 75240 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75266 "src/ocaml/preprocess/parser_raw.ml" +# 75249 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75273 "src/ocaml/preprocess/parser_raw.ml" +# 75256 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75278 "src/ocaml/preprocess/parser_raw.ml" +# 75261 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75288 "src/ocaml/preprocess/parser_raw.ml" +# 75271 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -75292,15 +75275,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75298 "src/ocaml/preprocess/parser_raw.ml" +# 75281 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75304 "src/ocaml/preprocess/parser_raw.ml" +# 75287 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75371,8 +75354,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -75383,30 +75365,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75389 "src/ocaml/preprocess/parser_raw.ml" +# 75371 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75394 "src/ocaml/preprocess/parser_raw.ml" +# 75376 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75403 "src/ocaml/preprocess/parser_raw.ml" +# 75385 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75410 "src/ocaml/preprocess/parser_raw.ml" +# 75392 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -75418,24 +75400,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 75422 "src/ocaml/preprocess/parser_raw.ml" +# 75404 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75427 "src/ocaml/preprocess/parser_raw.ml" +# 75409 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75433 "src/ocaml/preprocess/parser_raw.ml" +# 75415 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 75439 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 75421 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -75443,67 +75425,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 75449 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 75431 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75455 "src/ocaml/preprocess/parser_raw.ml" +# 75437 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75462 "src/ocaml/preprocess/parser_raw.ml" +# 75444 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75470 "src/ocaml/preprocess/parser_raw.ml" +# 75452 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75475 "src/ocaml/preprocess/parser_raw.ml" +# 75457 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75485 "src/ocaml/preprocess/parser_raw.ml" +# 75467 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75492 "src/ocaml/preprocess/parser_raw.ml" +# 75474 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75497 "src/ocaml/preprocess/parser_raw.ml" +# 75479 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75507 "src/ocaml/preprocess/parser_raw.ml" +# 75489 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -75511,15 +75493,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75517 "src/ocaml/preprocess/parser_raw.ml" +# 75499 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75523 "src/ocaml/preprocess/parser_raw.ml" +# 75505 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75597,8 +75579,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -75610,30 +75591,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75616 "src/ocaml/preprocess/parser_raw.ml" +# 75597 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75621 "src/ocaml/preprocess/parser_raw.ml" +# 75602 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75630 "src/ocaml/preprocess/parser_raw.ml" +# 75611 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75637 "src/ocaml/preprocess/parser_raw.ml" +# 75618 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -75645,24 +75626,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 75649 "src/ocaml/preprocess/parser_raw.ml" +# 75630 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75654 "src/ocaml/preprocess/parser_raw.ml" +# 75635 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75660 "src/ocaml/preprocess/parser_raw.ml" +# 75641 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 75666 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 75647 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -75670,67 +75651,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 75676 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 75657 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75682 "src/ocaml/preprocess/parser_raw.ml" +# 75663 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75689 "src/ocaml/preprocess/parser_raw.ml" +# 75670 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75697 "src/ocaml/preprocess/parser_raw.ml" +# 75678 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75702 "src/ocaml/preprocess/parser_raw.ml" +# 75683 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75712 "src/ocaml/preprocess/parser_raw.ml" +# 75693 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75719 "src/ocaml/preprocess/parser_raw.ml" +# 75700 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75724 "src/ocaml/preprocess/parser_raw.ml" +# 75705 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75734 "src/ocaml/preprocess/parser_raw.ml" +# 75715 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -75738,15 +75719,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75744 "src/ocaml/preprocess/parser_raw.ml" +# 75725 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75750 "src/ocaml/preprocess/parser_raw.ml" +# 75731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75824,8 +75805,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -75837,37 +75817,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75843 "src/ocaml/preprocess/parser_raw.ml" +# 75823 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75849 "src/ocaml/preprocess/parser_raw.ml" +# 75829 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75854 "src/ocaml/preprocess/parser_raw.ml" +# 75834 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75864 "src/ocaml/preprocess/parser_raw.ml" +# 75844 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 75871 "src/ocaml/preprocess/parser_raw.ml" +# 75851 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -75879,24 +75859,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 75883 "src/ocaml/preprocess/parser_raw.ml" +# 75863 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75888 "src/ocaml/preprocess/parser_raw.ml" +# 75868 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75894 "src/ocaml/preprocess/parser_raw.ml" +# 75874 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 75900 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 75880 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -75904,67 +75884,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 75910 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 75890 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75916 "src/ocaml/preprocess/parser_raw.ml" +# 75896 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 75923 "src/ocaml/preprocess/parser_raw.ml" +# 75903 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75931 "src/ocaml/preprocess/parser_raw.ml" +# 75911 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 75936 "src/ocaml/preprocess/parser_raw.ml" +# 75916 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 75946 "src/ocaml/preprocess/parser_raw.ml" +# 75926 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 75953 "src/ocaml/preprocess/parser_raw.ml" +# 75933 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75958 "src/ocaml/preprocess/parser_raw.ml" +# 75938 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 75968 "src/ocaml/preprocess/parser_raw.ml" +# 75948 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -75972,15 +75952,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 75978 "src/ocaml/preprocess/parser_raw.ml" +# 75958 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75984 "src/ocaml/preprocess/parser_raw.ml" +# 75964 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76065,8 +76045,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -76080,38 +76059,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76086 "src/ocaml/preprocess/parser_raw.ml" +# 76065 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76093 "src/ocaml/preprocess/parser_raw.ml" +# 76072 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76098 "src/ocaml/preprocess/parser_raw.ml" +# 76077 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76108 "src/ocaml/preprocess/parser_raw.ml" +# 76087 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76115 "src/ocaml/preprocess/parser_raw.ml" +# 76094 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -76123,24 +76102,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 76127 "src/ocaml/preprocess/parser_raw.ml" +# 76106 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76132 "src/ocaml/preprocess/parser_raw.ml" +# 76111 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76138 "src/ocaml/preprocess/parser_raw.ml" +# 76117 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 76144 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 76123 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -76148,67 +76127,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 76154 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76133 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76160 "src/ocaml/preprocess/parser_raw.ml" +# 76139 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76167 "src/ocaml/preprocess/parser_raw.ml" +# 76146 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76175 "src/ocaml/preprocess/parser_raw.ml" +# 76154 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76180 "src/ocaml/preprocess/parser_raw.ml" +# 76159 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76190 "src/ocaml/preprocess/parser_raw.ml" +# 76169 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76197 "src/ocaml/preprocess/parser_raw.ml" +# 76176 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76202 "src/ocaml/preprocess/parser_raw.ml" +# 76181 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76212 "src/ocaml/preprocess/parser_raw.ml" +# 76191 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -76216,15 +76195,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76222 "src/ocaml/preprocess/parser_raw.ml" +# 76201 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76228 "src/ocaml/preprocess/parser_raw.ml" +# 76207 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76302,8 +76281,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -76314,32 +76292,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76320 "src/ocaml/preprocess/parser_raw.ml" +# 76298 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76325 "src/ocaml/preprocess/parser_raw.ml" +# 76303 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76334 "src/ocaml/preprocess/parser_raw.ml" +# 76312 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76343 "src/ocaml/preprocess/parser_raw.ml" +# 76321 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -76352,24 +76330,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 76356 "src/ocaml/preprocess/parser_raw.ml" +# 76334 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76361 "src/ocaml/preprocess/parser_raw.ml" +# 76339 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76367 "src/ocaml/preprocess/parser_raw.ml" +# 76345 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 76373 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 76351 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -76377,67 +76355,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 76383 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76361 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76389 "src/ocaml/preprocess/parser_raw.ml" +# 76367 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76396 "src/ocaml/preprocess/parser_raw.ml" +# 76374 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76404 "src/ocaml/preprocess/parser_raw.ml" +# 76382 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76409 "src/ocaml/preprocess/parser_raw.ml" +# 76387 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76419 "src/ocaml/preprocess/parser_raw.ml" +# 76397 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76426 "src/ocaml/preprocess/parser_raw.ml" +# 76404 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76431 "src/ocaml/preprocess/parser_raw.ml" +# 76409 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76441 "src/ocaml/preprocess/parser_raw.ml" +# 76419 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -76445,15 +76423,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76451 "src/ocaml/preprocess/parser_raw.ml" +# 76429 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76457 "src/ocaml/preprocess/parser_raw.ml" +# 76435 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76538,8 +76516,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -76551,32 +76528,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76557 "src/ocaml/preprocess/parser_raw.ml" +# 76534 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76562 "src/ocaml/preprocess/parser_raw.ml" +# 76539 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76571 "src/ocaml/preprocess/parser_raw.ml" +# 76548 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76580 "src/ocaml/preprocess/parser_raw.ml" +# 76557 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -76589,24 +76566,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 76593 "src/ocaml/preprocess/parser_raw.ml" +# 76570 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76598 "src/ocaml/preprocess/parser_raw.ml" +# 76575 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76604 "src/ocaml/preprocess/parser_raw.ml" +# 76581 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 76610 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 76587 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -76614,67 +76591,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 76620 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76597 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76626 "src/ocaml/preprocess/parser_raw.ml" +# 76603 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76633 "src/ocaml/preprocess/parser_raw.ml" +# 76610 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76641 "src/ocaml/preprocess/parser_raw.ml" +# 76618 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76646 "src/ocaml/preprocess/parser_raw.ml" +# 76623 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76656 "src/ocaml/preprocess/parser_raw.ml" +# 76633 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76663 "src/ocaml/preprocess/parser_raw.ml" +# 76640 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76668 "src/ocaml/preprocess/parser_raw.ml" +# 76645 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76678 "src/ocaml/preprocess/parser_raw.ml" +# 76655 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -76682,15 +76659,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76688 "src/ocaml/preprocess/parser_raw.ml" +# 76665 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76694 "src/ocaml/preprocess/parser_raw.ml" +# 76671 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76775,8 +76752,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -76788,39 +76764,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 76794 "src/ocaml/preprocess/parser_raw.ml" +# 76770 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76800 "src/ocaml/preprocess/parser_raw.ml" +# 76776 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76805 "src/ocaml/preprocess/parser_raw.ml" +# 76781 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76815 "src/ocaml/preprocess/parser_raw.ml" +# 76791 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76824 "src/ocaml/preprocess/parser_raw.ml" +# 76800 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -76833,24 +76809,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 76837 "src/ocaml/preprocess/parser_raw.ml" +# 76813 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76842 "src/ocaml/preprocess/parser_raw.ml" +# 76818 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76848 "src/ocaml/preprocess/parser_raw.ml" +# 76824 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 76854 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 76830 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -76858,67 +76834,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 76864 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 76840 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76870 "src/ocaml/preprocess/parser_raw.ml" +# 76846 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 76877 "src/ocaml/preprocess/parser_raw.ml" +# 76853 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76885 "src/ocaml/preprocess/parser_raw.ml" +# 76861 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 76890 "src/ocaml/preprocess/parser_raw.ml" +# 76866 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 76900 "src/ocaml/preprocess/parser_raw.ml" +# 76876 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 76907 "src/ocaml/preprocess/parser_raw.ml" +# 76883 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76912 "src/ocaml/preprocess/parser_raw.ml" +# 76888 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 76922 "src/ocaml/preprocess/parser_raw.ml" +# 76898 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -76926,15 +76902,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 76932 "src/ocaml/preprocess/parser_raw.ml" +# 76908 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76938 "src/ocaml/preprocess/parser_raw.ml" +# 76914 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77026,8 +77002,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -77041,40 +77016,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77047 "src/ocaml/preprocess/parser_raw.ml" +# 77022 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77054 "src/ocaml/preprocess/parser_raw.ml" +# 77029 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77059 "src/ocaml/preprocess/parser_raw.ml" +# 77034 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77069 "src/ocaml/preprocess/parser_raw.ml" +# 77044 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77078 "src/ocaml/preprocess/parser_raw.ml" +# 77053 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -77087,24 +77062,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 77091 "src/ocaml/preprocess/parser_raw.ml" +# 77066 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77096 "src/ocaml/preprocess/parser_raw.ml" +# 77071 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77102 "src/ocaml/preprocess/parser_raw.ml" +# 77077 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 77108 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 77083 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -77112,67 +77087,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 77118 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 77093 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77124 "src/ocaml/preprocess/parser_raw.ml" +# 77099 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77131 "src/ocaml/preprocess/parser_raw.ml" +# 77106 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77139 "src/ocaml/preprocess/parser_raw.ml" +# 77114 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77144 "src/ocaml/preprocess/parser_raw.ml" +# 77119 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77154 "src/ocaml/preprocess/parser_raw.ml" +# 77129 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77161 "src/ocaml/preprocess/parser_raw.ml" +# 77136 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77166 "src/ocaml/preprocess/parser_raw.ml" +# 77141 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77176 "src/ocaml/preprocess/parser_raw.ml" +# 77151 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in @@ -77180,15 +77155,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77186 "src/ocaml/preprocess/parser_raw.ml" +# 77161 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77192 "src/ocaml/preprocess/parser_raw.ml" +# 77167 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77243,86 +77218,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77249 "src/ocaml/preprocess/parser_raw.ml" +# 77224 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77254 "src/ocaml/preprocess/parser_raw.ml" +# 77229 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77263 "src/ocaml/preprocess/parser_raw.ml" +# 77238 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77270 "src/ocaml/preprocess/parser_raw.ml" +# 77245 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77276 "src/ocaml/preprocess/parser_raw.ml" +# 77251 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77282 "src/ocaml/preprocess/parser_raw.ml" +# 77257 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77289 "src/ocaml/preprocess/parser_raw.ml" +# 77264 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77294 "src/ocaml/preprocess/parser_raw.ml" +# 77269 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77304 "src/ocaml/preprocess/parser_raw.ml" +# 77279 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77311 "src/ocaml/preprocess/parser_raw.ml" +# 77286 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77316 "src/ocaml/preprocess/parser_raw.ml" +# 77291 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77326 "src/ocaml/preprocess/parser_raw.ml" +# 77301 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -77330,15 +77305,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77336 "src/ocaml/preprocess/parser_raw.ml" +# 77311 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77342 "src/ocaml/preprocess/parser_raw.ml" +# 77317 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77400,86 +77375,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77406 "src/ocaml/preprocess/parser_raw.ml" +# 77381 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77411 "src/ocaml/preprocess/parser_raw.ml" +# 77386 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77420 "src/ocaml/preprocess/parser_raw.ml" +# 77395 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77427 "src/ocaml/preprocess/parser_raw.ml" +# 77402 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77433 "src/ocaml/preprocess/parser_raw.ml" +# 77408 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77439 "src/ocaml/preprocess/parser_raw.ml" +# 77414 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77446 "src/ocaml/preprocess/parser_raw.ml" +# 77421 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77451 "src/ocaml/preprocess/parser_raw.ml" +# 77426 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77461 "src/ocaml/preprocess/parser_raw.ml" +# 77436 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77468 "src/ocaml/preprocess/parser_raw.ml" +# 77443 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77473 "src/ocaml/preprocess/parser_raw.ml" +# 77448 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77483 "src/ocaml/preprocess/parser_raw.ml" +# 77458 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -77487,15 +77462,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77493 "src/ocaml/preprocess/parser_raw.ml" +# 77468 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77499 "src/ocaml/preprocess/parser_raw.ml" +# 77474 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77557,93 +77532,93 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77563 "src/ocaml/preprocess/parser_raw.ml" +# 77538 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77569 "src/ocaml/preprocess/parser_raw.ml" +# 77544 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77574 "src/ocaml/preprocess/parser_raw.ml" +# 77549 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77584 "src/ocaml/preprocess/parser_raw.ml" +# 77559 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77591 "src/ocaml/preprocess/parser_raw.ml" +# 77566 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77597 "src/ocaml/preprocess/parser_raw.ml" +# 77572 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77603 "src/ocaml/preprocess/parser_raw.ml" +# 77578 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77610 "src/ocaml/preprocess/parser_raw.ml" +# 77585 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77615 "src/ocaml/preprocess/parser_raw.ml" +# 77590 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77625 "src/ocaml/preprocess/parser_raw.ml" +# 77600 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77632 "src/ocaml/preprocess/parser_raw.ml" +# 77607 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77637 "src/ocaml/preprocess/parser_raw.ml" +# 77612 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77647 "src/ocaml/preprocess/parser_raw.ml" +# 77622 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -77651,15 +77626,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77657 "src/ocaml/preprocess/parser_raw.ml" +# 77632 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77663 "src/ocaml/preprocess/parser_raw.ml" +# 77638 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77730,94 +77705,94 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77736 "src/ocaml/preprocess/parser_raw.ml" +# 77711 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77743 "src/ocaml/preprocess/parser_raw.ml" +# 77718 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77748 "src/ocaml/preprocess/parser_raw.ml" +# 77723 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77758 "src/ocaml/preprocess/parser_raw.ml" +# 77733 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77765 "src/ocaml/preprocess/parser_raw.ml" +# 77740 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77771 "src/ocaml/preprocess/parser_raw.ml" +# 77746 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77777 "src/ocaml/preprocess/parser_raw.ml" +# 77752 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77784 "src/ocaml/preprocess/parser_raw.ml" +# 77759 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77789 "src/ocaml/preprocess/parser_raw.ml" +# 77764 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77799 "src/ocaml/preprocess/parser_raw.ml" +# 77774 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77806 "src/ocaml/preprocess/parser_raw.ml" +# 77781 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77811 "src/ocaml/preprocess/parser_raw.ml" +# 77786 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77821 "src/ocaml/preprocess/parser_raw.ml" +# 77796 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -77825,15 +77800,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77831 "src/ocaml/preprocess/parser_raw.ml" +# 77806 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77837 "src/ocaml/preprocess/parser_raw.ml" +# 77812 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -77895,89 +77870,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77901 "src/ocaml/preprocess/parser_raw.ml" +# 77876 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 77906 "src/ocaml/preprocess/parser_raw.ml" +# 77881 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77915 "src/ocaml/preprocess/parser_raw.ml" +# 77890 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77924 "src/ocaml/preprocess/parser_raw.ml" +# 77899 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 77931 "src/ocaml/preprocess/parser_raw.ml" +# 77906 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 77937 "src/ocaml/preprocess/parser_raw.ml" +# 77912 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77944 "src/ocaml/preprocess/parser_raw.ml" +# 77919 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 77949 "src/ocaml/preprocess/parser_raw.ml" +# 77924 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 77959 "src/ocaml/preprocess/parser_raw.ml" +# 77934 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 77966 "src/ocaml/preprocess/parser_raw.ml" +# 77941 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77971 "src/ocaml/preprocess/parser_raw.ml" +# 77946 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 77981 "src/ocaml/preprocess/parser_raw.ml" +# 77956 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -77985,15 +77960,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 77991 "src/ocaml/preprocess/parser_raw.ml" +# 77966 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77997 "src/ocaml/preprocess/parser_raw.ml" +# 77972 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78062,89 +78037,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78068 "src/ocaml/preprocess/parser_raw.ml" +# 78043 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78073 "src/ocaml/preprocess/parser_raw.ml" +# 78048 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78082 "src/ocaml/preprocess/parser_raw.ml" +# 78057 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78091 "src/ocaml/preprocess/parser_raw.ml" +# 78066 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78098 "src/ocaml/preprocess/parser_raw.ml" +# 78073 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78104 "src/ocaml/preprocess/parser_raw.ml" +# 78079 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78111 "src/ocaml/preprocess/parser_raw.ml" +# 78086 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78116 "src/ocaml/preprocess/parser_raw.ml" +# 78091 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78126 "src/ocaml/preprocess/parser_raw.ml" +# 78101 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78133 "src/ocaml/preprocess/parser_raw.ml" +# 78108 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78138 "src/ocaml/preprocess/parser_raw.ml" +# 78113 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78148 "src/ocaml/preprocess/parser_raw.ml" +# 78123 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -78152,15 +78127,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78158 "src/ocaml/preprocess/parser_raw.ml" +# 78133 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78164 "src/ocaml/preprocess/parser_raw.ml" +# 78139 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78229,96 +78204,96 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78235 "src/ocaml/preprocess/parser_raw.ml" +# 78210 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78241 "src/ocaml/preprocess/parser_raw.ml" +# 78216 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78246 "src/ocaml/preprocess/parser_raw.ml" +# 78221 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78256 "src/ocaml/preprocess/parser_raw.ml" +# 78231 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78265 "src/ocaml/preprocess/parser_raw.ml" +# 78240 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78272 "src/ocaml/preprocess/parser_raw.ml" +# 78247 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78278 "src/ocaml/preprocess/parser_raw.ml" +# 78253 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78285 "src/ocaml/preprocess/parser_raw.ml" +# 78260 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78290 "src/ocaml/preprocess/parser_raw.ml" +# 78265 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78300 "src/ocaml/preprocess/parser_raw.ml" +# 78275 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78307 "src/ocaml/preprocess/parser_raw.ml" +# 78282 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78312 "src/ocaml/preprocess/parser_raw.ml" +# 78287 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78322 "src/ocaml/preprocess/parser_raw.ml" +# 78297 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -78326,15 +78301,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78332 "src/ocaml/preprocess/parser_raw.ml" +# 78307 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78338 "src/ocaml/preprocess/parser_raw.ml" +# 78313 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78412,97 +78387,97 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78418 "src/ocaml/preprocess/parser_raw.ml" +# 78393 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78425 "src/ocaml/preprocess/parser_raw.ml" +# 78400 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78430 "src/ocaml/preprocess/parser_raw.ml" +# 78405 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78440 "src/ocaml/preprocess/parser_raw.ml" +# 78415 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78449 "src/ocaml/preprocess/parser_raw.ml" +# 78424 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 78456 "src/ocaml/preprocess/parser_raw.ml" +# 78431 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78462 "src/ocaml/preprocess/parser_raw.ml" +# 78437 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78469 "src/ocaml/preprocess/parser_raw.ml" +# 78444 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78474 "src/ocaml/preprocess/parser_raw.ml" +# 78449 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78484 "src/ocaml/preprocess/parser_raw.ml" +# 78459 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4560 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 78491 "src/ocaml/preprocess/parser_raw.ml" +# 78466 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78496 "src/ocaml/preprocess/parser_raw.ml" +# 78471 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78506 "src/ocaml/preprocess/parser_raw.ml" +# 78481 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -78510,15 +78485,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78516 "src/ocaml/preprocess/parser_raw.ml" +# 78491 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78522 "src/ocaml/preprocess/parser_raw.ml" +# 78497 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78589,14 +78564,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 78600 "src/ocaml/preprocess/parser_raw.ml" +# 78574 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -78605,30 +78579,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78611 "src/ocaml/preprocess/parser_raw.ml" +# 78585 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78616 "src/ocaml/preprocess/parser_raw.ml" +# 78590 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78625 "src/ocaml/preprocess/parser_raw.ml" +# 78599 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78632 "src/ocaml/preprocess/parser_raw.ml" +# 78606 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -78639,24 +78613,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 78643 "src/ocaml/preprocess/parser_raw.ml" +# 78617 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78648 "src/ocaml/preprocess/parser_raw.ml" +# 78622 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78654 "src/ocaml/preprocess/parser_raw.ml" +# 78628 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 78660 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 78634 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -78664,60 +78638,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 78670 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 78644 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78676 "src/ocaml/preprocess/parser_raw.ml" +# 78650 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78683 "src/ocaml/preprocess/parser_raw.ml" +# 78657 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78690 "src/ocaml/preprocess/parser_raw.ml" +# 78664 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78699 "src/ocaml/preprocess/parser_raw.ml" +# 78673 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 78706 "src/ocaml/preprocess/parser_raw.ml" +# 78680 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78711 "src/ocaml/preprocess/parser_raw.ml" +# 78685 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78721 "src/ocaml/preprocess/parser_raw.ml" +# 78695 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -78725,15 +78699,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78731 "src/ocaml/preprocess/parser_raw.ml" +# 78705 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78737 "src/ocaml/preprocess/parser_raw.ml" +# 78711 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -78811,14 +78785,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 78822 "src/ocaml/preprocess/parser_raw.ml" +# 78795 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -78828,30 +78801,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 78834 "src/ocaml/preprocess/parser_raw.ml" +# 78807 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78839 "src/ocaml/preprocess/parser_raw.ml" +# 78812 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78848 "src/ocaml/preprocess/parser_raw.ml" +# 78821 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78855 "src/ocaml/preprocess/parser_raw.ml" +# 78828 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -78862,24 +78835,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 78866 "src/ocaml/preprocess/parser_raw.ml" +# 78839 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 78871 "src/ocaml/preprocess/parser_raw.ml" +# 78844 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78877 "src/ocaml/preprocess/parser_raw.ml" +# 78850 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 78883 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 78856 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -78887,60 +78860,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 78893 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 78866 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78899 "src/ocaml/preprocess/parser_raw.ml" +# 78872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 78906 "src/ocaml/preprocess/parser_raw.ml" +# 78879 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 78913 "src/ocaml/preprocess/parser_raw.ml" +# 78886 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 78922 "src/ocaml/preprocess/parser_raw.ml" +# 78895 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 78929 "src/ocaml/preprocess/parser_raw.ml" +# 78902 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78934 "src/ocaml/preprocess/parser_raw.ml" +# 78907 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 78944 "src/ocaml/preprocess/parser_raw.ml" +# 78917 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -78948,15 +78921,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 78954 "src/ocaml/preprocess/parser_raw.ml" +# 78927 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78960 "src/ocaml/preprocess/parser_raw.ml" +# 78933 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79034,14 +79007,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 79045 "src/ocaml/preprocess/parser_raw.ml" +# 79017 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -79051,37 +79023,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79057 "src/ocaml/preprocess/parser_raw.ml" +# 79029 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79063 "src/ocaml/preprocess/parser_raw.ml" +# 79035 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79068 "src/ocaml/preprocess/parser_raw.ml" +# 79040 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79078 "src/ocaml/preprocess/parser_raw.ml" +# 79050 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79085 "src/ocaml/preprocess/parser_raw.ml" +# 79057 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -79092,24 +79064,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 79096 "src/ocaml/preprocess/parser_raw.ml" +# 79068 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79101 "src/ocaml/preprocess/parser_raw.ml" +# 79073 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79107 "src/ocaml/preprocess/parser_raw.ml" +# 79079 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 79113 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 79085 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -79117,60 +79089,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 79123 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 79095 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79129 "src/ocaml/preprocess/parser_raw.ml" +# 79101 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79136 "src/ocaml/preprocess/parser_raw.ml" +# 79108 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79143 "src/ocaml/preprocess/parser_raw.ml" +# 79115 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79152 "src/ocaml/preprocess/parser_raw.ml" +# 79124 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 79159 "src/ocaml/preprocess/parser_raw.ml" +# 79131 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79164 "src/ocaml/preprocess/parser_raw.ml" +# 79136 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79174 "src/ocaml/preprocess/parser_raw.ml" +# 79146 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -79178,15 +79150,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79184 "src/ocaml/preprocess/parser_raw.ml" +# 79156 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79190 "src/ocaml/preprocess/parser_raw.ml" +# 79162 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79271,14 +79243,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 79282 "src/ocaml/preprocess/parser_raw.ml" +# 79253 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -79290,38 +79261,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79296 "src/ocaml/preprocess/parser_raw.ml" +# 79267 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79303 "src/ocaml/preprocess/parser_raw.ml" +# 79274 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79308 "src/ocaml/preprocess/parser_raw.ml" +# 79279 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79318 "src/ocaml/preprocess/parser_raw.ml" +# 79289 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79325 "src/ocaml/preprocess/parser_raw.ml" +# 79296 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -79332,24 +79303,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 79336 "src/ocaml/preprocess/parser_raw.ml" +# 79307 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79341 "src/ocaml/preprocess/parser_raw.ml" +# 79312 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79347 "src/ocaml/preprocess/parser_raw.ml" +# 79318 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 79353 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 79324 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -79357,60 +79328,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 79363 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 79334 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79369 "src/ocaml/preprocess/parser_raw.ml" +# 79340 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79376 "src/ocaml/preprocess/parser_raw.ml" +# 79347 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79383 "src/ocaml/preprocess/parser_raw.ml" +# 79354 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79392 "src/ocaml/preprocess/parser_raw.ml" +# 79363 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 79399 "src/ocaml/preprocess/parser_raw.ml" +# 79370 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79404 "src/ocaml/preprocess/parser_raw.ml" +# 79375 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79414 "src/ocaml/preprocess/parser_raw.ml" +# 79385 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -79418,15 +79389,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79424 "src/ocaml/preprocess/parser_raw.ml" +# 79395 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79430 "src/ocaml/preprocess/parser_raw.ml" +# 79401 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79504,14 +79475,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 79515 "src/ocaml/preprocess/parser_raw.ml" +# 79485 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -79520,32 +79490,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79526 "src/ocaml/preprocess/parser_raw.ml" +# 79496 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79531 "src/ocaml/preprocess/parser_raw.ml" +# 79501 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79540 "src/ocaml/preprocess/parser_raw.ml" +# 79510 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79549 "src/ocaml/preprocess/parser_raw.ml" +# 79519 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -79557,24 +79527,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 79561 "src/ocaml/preprocess/parser_raw.ml" +# 79531 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79566 "src/ocaml/preprocess/parser_raw.ml" +# 79536 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79572 "src/ocaml/preprocess/parser_raw.ml" +# 79542 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 79578 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 79548 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -79582,60 +79552,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 79588 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 79558 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79594 "src/ocaml/preprocess/parser_raw.ml" +# 79564 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79601 "src/ocaml/preprocess/parser_raw.ml" +# 79571 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79608 "src/ocaml/preprocess/parser_raw.ml" +# 79578 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79617 "src/ocaml/preprocess/parser_raw.ml" +# 79587 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 79624 "src/ocaml/preprocess/parser_raw.ml" +# 79594 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79629 "src/ocaml/preprocess/parser_raw.ml" +# 79599 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79639 "src/ocaml/preprocess/parser_raw.ml" +# 79609 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -79643,15 +79613,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79649 "src/ocaml/preprocess/parser_raw.ml" +# 79619 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79655 "src/ocaml/preprocess/parser_raw.ml" +# 79625 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79736,14 +79706,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 79747 "src/ocaml/preprocess/parser_raw.ml" +# 79716 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -79753,32 +79722,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79759 "src/ocaml/preprocess/parser_raw.ml" +# 79728 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79764 "src/ocaml/preprocess/parser_raw.ml" +# 79733 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79773 "src/ocaml/preprocess/parser_raw.ml" +# 79742 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 79782 "src/ocaml/preprocess/parser_raw.ml" +# 79751 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -79790,24 +79759,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 79794 "src/ocaml/preprocess/parser_raw.ml" +# 79763 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 79799 "src/ocaml/preprocess/parser_raw.ml" +# 79768 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79805 "src/ocaml/preprocess/parser_raw.ml" +# 79774 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 79811 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 79780 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -79815,60 +79784,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 79821 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 79790 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79827 "src/ocaml/preprocess/parser_raw.ml" +# 79796 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 79834 "src/ocaml/preprocess/parser_raw.ml" +# 79803 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79841 "src/ocaml/preprocess/parser_raw.ml" +# 79810 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 79850 "src/ocaml/preprocess/parser_raw.ml" +# 79819 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 79857 "src/ocaml/preprocess/parser_raw.ml" +# 79826 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79862 "src/ocaml/preprocess/parser_raw.ml" +# 79831 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 79872 "src/ocaml/preprocess/parser_raw.ml" +# 79841 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -79876,15 +79845,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 79882 "src/ocaml/preprocess/parser_raw.ml" +# 79851 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79888 "src/ocaml/preprocess/parser_raw.ml" +# 79857 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79969,14 +79938,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 79980 "src/ocaml/preprocess/parser_raw.ml" +# 79948 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -79986,39 +79954,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 79992 "src/ocaml/preprocess/parser_raw.ml" +# 79960 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79998 "src/ocaml/preprocess/parser_raw.ml" +# 79966 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80003 "src/ocaml/preprocess/parser_raw.ml" +# 79971 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80013 "src/ocaml/preprocess/parser_raw.ml" +# 79981 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80022 "src/ocaml/preprocess/parser_raw.ml" +# 79990 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -80030,24 +79998,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 80034 "src/ocaml/preprocess/parser_raw.ml" +# 80002 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80039 "src/ocaml/preprocess/parser_raw.ml" +# 80007 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80045 "src/ocaml/preprocess/parser_raw.ml" +# 80013 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 80051 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 80019 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -80055,60 +80023,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 80061 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 80029 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80067 "src/ocaml/preprocess/parser_raw.ml" +# 80035 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80074 "src/ocaml/preprocess/parser_raw.ml" +# 80042 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80081 "src/ocaml/preprocess/parser_raw.ml" +# 80049 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80090 "src/ocaml/preprocess/parser_raw.ml" +# 80058 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 80097 "src/ocaml/preprocess/parser_raw.ml" +# 80065 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80102 "src/ocaml/preprocess/parser_raw.ml" +# 80070 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80112 "src/ocaml/preprocess/parser_raw.ml" +# 80080 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -80116,15 +80084,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80122 "src/ocaml/preprocess/parser_raw.ml" +# 80090 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80128 "src/ocaml/preprocess/parser_raw.ml" +# 80096 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80216,14 +80184,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80227 "src/ocaml/preprocess/parser_raw.ml" +# 80194 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -80235,40 +80202,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80241 "src/ocaml/preprocess/parser_raw.ml" +# 80208 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80248 "src/ocaml/preprocess/parser_raw.ml" +# 80215 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80253 "src/ocaml/preprocess/parser_raw.ml" +# 80220 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80263 "src/ocaml/preprocess/parser_raw.ml" +# 80230 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80272 "src/ocaml/preprocess/parser_raw.ml" +# 80239 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -80280,24 +80247,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 80284 "src/ocaml/preprocess/parser_raw.ml" +# 80251 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80289 "src/ocaml/preprocess/parser_raw.ml" +# 80256 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80295 "src/ocaml/preprocess/parser_raw.ml" +# 80262 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 80301 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 80268 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -80305,60 +80272,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 80311 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 80278 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80317 "src/ocaml/preprocess/parser_raw.ml" +# 80284 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80324 "src/ocaml/preprocess/parser_raw.ml" +# 80291 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80331 "src/ocaml/preprocess/parser_raw.ml" +# 80298 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80340 "src/ocaml/preprocess/parser_raw.ml" +# 80307 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 80347 "src/ocaml/preprocess/parser_raw.ml" +# 80314 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80352 "src/ocaml/preprocess/parser_raw.ml" +# 80319 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80362 "src/ocaml/preprocess/parser_raw.ml" +# 80329 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -80366,15 +80333,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80372 "src/ocaml/preprocess/parser_raw.ml" +# 80339 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80378 "src/ocaml/preprocess/parser_raw.ml" +# 80345 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80421,9 +80388,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80427 "src/ocaml/preprocess/parser_raw.ml" +# 80394 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -80433,79 +80400,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80439 "src/ocaml/preprocess/parser_raw.ml" +# 80406 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80444 "src/ocaml/preprocess/parser_raw.ml" +# 80411 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80453 "src/ocaml/preprocess/parser_raw.ml" +# 80420 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80460 "src/ocaml/preprocess/parser_raw.ml" +# 80427 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80466 "src/ocaml/preprocess/parser_raw.ml" +# 80433 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80472 "src/ocaml/preprocess/parser_raw.ml" +# 80439 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80478 "src/ocaml/preprocess/parser_raw.ml" +# 80445 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80487 "src/ocaml/preprocess/parser_raw.ml" +# 80454 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 80494 "src/ocaml/preprocess/parser_raw.ml" +# 80461 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80499 "src/ocaml/preprocess/parser_raw.ml" +# 80466 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80509 "src/ocaml/preprocess/parser_raw.ml" +# 80476 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -80513,15 +80480,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80519 "src/ocaml/preprocess/parser_raw.ml" +# 80486 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80525 "src/ocaml/preprocess/parser_raw.ml" +# 80492 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80575,9 +80542,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80581 "src/ocaml/preprocess/parser_raw.ml" +# 80548 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -80587,79 +80554,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80593 "src/ocaml/preprocess/parser_raw.ml" +# 80560 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80598 "src/ocaml/preprocess/parser_raw.ml" +# 80565 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80607 "src/ocaml/preprocess/parser_raw.ml" +# 80574 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80614 "src/ocaml/preprocess/parser_raw.ml" +# 80581 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80620 "src/ocaml/preprocess/parser_raw.ml" +# 80587 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80626 "src/ocaml/preprocess/parser_raw.ml" +# 80593 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80632 "src/ocaml/preprocess/parser_raw.ml" +# 80599 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80641 "src/ocaml/preprocess/parser_raw.ml" +# 80608 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 80648 "src/ocaml/preprocess/parser_raw.ml" +# 80615 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80653 "src/ocaml/preprocess/parser_raw.ml" +# 80620 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80663 "src/ocaml/preprocess/parser_raw.ml" +# 80630 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -80667,15 +80634,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80673 "src/ocaml/preprocess/parser_raw.ml" +# 80640 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80679 "src/ocaml/preprocess/parser_raw.ml" +# 80646 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80729,9 +80696,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80735 "src/ocaml/preprocess/parser_raw.ml" +# 80702 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -80741,86 +80708,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80747 "src/ocaml/preprocess/parser_raw.ml" +# 80714 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80753 "src/ocaml/preprocess/parser_raw.ml" +# 80720 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80758 "src/ocaml/preprocess/parser_raw.ml" +# 80725 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80768 "src/ocaml/preprocess/parser_raw.ml" +# 80735 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80775 "src/ocaml/preprocess/parser_raw.ml" +# 80742 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80781 "src/ocaml/preprocess/parser_raw.ml" +# 80748 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80787 "src/ocaml/preprocess/parser_raw.ml" +# 80754 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80793 "src/ocaml/preprocess/parser_raw.ml" +# 80760 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80802 "src/ocaml/preprocess/parser_raw.ml" +# 80769 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 80809 "src/ocaml/preprocess/parser_raw.ml" +# 80776 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80814 "src/ocaml/preprocess/parser_raw.ml" +# 80781 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80824 "src/ocaml/preprocess/parser_raw.ml" +# 80791 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -80828,15 +80795,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 80834 "src/ocaml/preprocess/parser_raw.ml" +# 80801 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80840 "src/ocaml/preprocess/parser_raw.ml" +# 80807 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -80897,9 +80864,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80903 "src/ocaml/preprocess/parser_raw.ml" +# 80870 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -80911,87 +80878,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80917 "src/ocaml/preprocess/parser_raw.ml" +# 80884 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80924 "src/ocaml/preprocess/parser_raw.ml" +# 80891 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 80929 "src/ocaml/preprocess/parser_raw.ml" +# 80896 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80939 "src/ocaml/preprocess/parser_raw.ml" +# 80906 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80946 "src/ocaml/preprocess/parser_raw.ml" +# 80913 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 80952 "src/ocaml/preprocess/parser_raw.ml" +# 80919 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 80958 "src/ocaml/preprocess/parser_raw.ml" +# 80925 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 80964 "src/ocaml/preprocess/parser_raw.ml" +# 80931 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 80973 "src/ocaml/preprocess/parser_raw.ml" +# 80940 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 80980 "src/ocaml/preprocess/parser_raw.ml" +# 80947 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80985 "src/ocaml/preprocess/parser_raw.ml" +# 80952 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 80995 "src/ocaml/preprocess/parser_raw.ml" +# 80962 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -80999,15 +80966,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81005 "src/ocaml/preprocess/parser_raw.ml" +# 80972 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81011 "src/ocaml/preprocess/parser_raw.ml" +# 80978 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81061,9 +81028,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81067 "src/ocaml/preprocess/parser_raw.ml" +# 81034 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81073,79 +81040,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81079 "src/ocaml/preprocess/parser_raw.ml" +# 81046 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81084 "src/ocaml/preprocess/parser_raw.ml" +# 81051 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81093 "src/ocaml/preprocess/parser_raw.ml" +# 81060 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81100 "src/ocaml/preprocess/parser_raw.ml" +# 81067 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 81106 "src/ocaml/preprocess/parser_raw.ml" +# 81073 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81112 "src/ocaml/preprocess/parser_raw.ml" +# 81079 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81118 "src/ocaml/preprocess/parser_raw.ml" +# 81085 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81127 "src/ocaml/preprocess/parser_raw.ml" +# 81094 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81134 "src/ocaml/preprocess/parser_raw.ml" +# 81101 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81139 "src/ocaml/preprocess/parser_raw.ml" +# 81106 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81149 "src/ocaml/preprocess/parser_raw.ml" +# 81116 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -81153,15 +81120,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81159 "src/ocaml/preprocess/parser_raw.ml" +# 81126 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81165 "src/ocaml/preprocess/parser_raw.ml" +# 81132 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81222,9 +81189,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81228 "src/ocaml/preprocess/parser_raw.ml" +# 81195 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81234,79 +81201,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81240 "src/ocaml/preprocess/parser_raw.ml" +# 81207 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81245 "src/ocaml/preprocess/parser_raw.ml" +# 81212 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81254 "src/ocaml/preprocess/parser_raw.ml" +# 81221 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81261 "src/ocaml/preprocess/parser_raw.ml" +# 81228 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 81267 "src/ocaml/preprocess/parser_raw.ml" +# 81234 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81273 "src/ocaml/preprocess/parser_raw.ml" +# 81240 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81279 "src/ocaml/preprocess/parser_raw.ml" +# 81246 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81288 "src/ocaml/preprocess/parser_raw.ml" +# 81255 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81295 "src/ocaml/preprocess/parser_raw.ml" +# 81262 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81300 "src/ocaml/preprocess/parser_raw.ml" +# 81267 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81310 "src/ocaml/preprocess/parser_raw.ml" +# 81277 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -81314,15 +81281,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81320 "src/ocaml/preprocess/parser_raw.ml" +# 81287 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81326 "src/ocaml/preprocess/parser_raw.ml" +# 81293 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81383,9 +81350,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81389 "src/ocaml/preprocess/parser_raw.ml" +# 81356 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81395,86 +81362,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81401 "src/ocaml/preprocess/parser_raw.ml" +# 81368 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81407 "src/ocaml/preprocess/parser_raw.ml" +# 81374 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81412 "src/ocaml/preprocess/parser_raw.ml" +# 81379 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81422 "src/ocaml/preprocess/parser_raw.ml" +# 81389 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81429 "src/ocaml/preprocess/parser_raw.ml" +# 81396 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 81435 "src/ocaml/preprocess/parser_raw.ml" +# 81402 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81441 "src/ocaml/preprocess/parser_raw.ml" +# 81408 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81447 "src/ocaml/preprocess/parser_raw.ml" +# 81414 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81456 "src/ocaml/preprocess/parser_raw.ml" +# 81423 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81463 "src/ocaml/preprocess/parser_raw.ml" +# 81430 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81468 "src/ocaml/preprocess/parser_raw.ml" +# 81435 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81478 "src/ocaml/preprocess/parser_raw.ml" +# 81445 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -81482,15 +81449,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81488 "src/ocaml/preprocess/parser_raw.ml" +# 81455 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81494 "src/ocaml/preprocess/parser_raw.ml" +# 81461 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81558,9 +81525,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81564 "src/ocaml/preprocess/parser_raw.ml" +# 81531 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81572,87 +81539,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81578 "src/ocaml/preprocess/parser_raw.ml" +# 81545 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81585 "src/ocaml/preprocess/parser_raw.ml" +# 81552 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81590 "src/ocaml/preprocess/parser_raw.ml" +# 81557 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81600 "src/ocaml/preprocess/parser_raw.ml" +# 81567 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81607 "src/ocaml/preprocess/parser_raw.ml" +# 81574 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 81613 "src/ocaml/preprocess/parser_raw.ml" +# 81580 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81619 "src/ocaml/preprocess/parser_raw.ml" +# 81586 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81625 "src/ocaml/preprocess/parser_raw.ml" +# 81592 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81634 "src/ocaml/preprocess/parser_raw.ml" +# 81601 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81641 "src/ocaml/preprocess/parser_raw.ml" +# 81608 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81646 "src/ocaml/preprocess/parser_raw.ml" +# 81613 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81656 "src/ocaml/preprocess/parser_raw.ml" +# 81623 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -81660,15 +81627,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81666 "src/ocaml/preprocess/parser_raw.ml" +# 81633 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81672 "src/ocaml/preprocess/parser_raw.ml" +# 81639 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81745,15 +81712,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81757 "src/ocaml/preprocess/parser_raw.ml" +# 81723 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -81762,30 +81728,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81768 "src/ocaml/preprocess/parser_raw.ml" +# 81734 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81773 "src/ocaml/preprocess/parser_raw.ml" +# 81739 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81782 "src/ocaml/preprocess/parser_raw.ml" +# 81748 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 81789 "src/ocaml/preprocess/parser_raw.ml" +# 81755 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -81797,24 +81763,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 81801 "src/ocaml/preprocess/parser_raw.ml" +# 81767 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 81806 "src/ocaml/preprocess/parser_raw.ml" +# 81772 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81812 "src/ocaml/preprocess/parser_raw.ml" +# 81778 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 81818 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 81784 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -81822,67 +81788,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 81828 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 81794 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81834 "src/ocaml/preprocess/parser_raw.ml" +# 81800 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 81841 "src/ocaml/preprocess/parser_raw.ml" +# 81807 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81849 "src/ocaml/preprocess/parser_raw.ml" +# 81815 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 81854 "src/ocaml/preprocess/parser_raw.ml" +# 81820 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 81864 "src/ocaml/preprocess/parser_raw.ml" +# 81830 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 81871 "src/ocaml/preprocess/parser_raw.ml" +# 81837 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81876 "src/ocaml/preprocess/parser_raw.ml" +# 81842 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 81886 "src/ocaml/preprocess/parser_raw.ml" +# 81852 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -81890,15 +81856,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 81896 "src/ocaml/preprocess/parser_raw.ml" +# 81862 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81902 "src/ocaml/preprocess/parser_raw.ml" +# 81868 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -81982,15 +81948,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81994 "src/ocaml/preprocess/parser_raw.ml" +# 81959 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82000,30 +81965,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82006 "src/ocaml/preprocess/parser_raw.ml" +# 81971 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82011 "src/ocaml/preprocess/parser_raw.ml" +# 81976 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82020 "src/ocaml/preprocess/parser_raw.ml" +# 81985 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82027 "src/ocaml/preprocess/parser_raw.ml" +# 81992 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -82035,24 +82000,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 82039 "src/ocaml/preprocess/parser_raw.ml" +# 82004 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82044 "src/ocaml/preprocess/parser_raw.ml" +# 82009 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82050 "src/ocaml/preprocess/parser_raw.ml" +# 82015 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 82056 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 82021 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82060,67 +82025,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 82066 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 82031 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82072 "src/ocaml/preprocess/parser_raw.ml" +# 82037 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82079 "src/ocaml/preprocess/parser_raw.ml" +# 82044 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82087 "src/ocaml/preprocess/parser_raw.ml" +# 82052 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82092 "src/ocaml/preprocess/parser_raw.ml" +# 82057 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82102 "src/ocaml/preprocess/parser_raw.ml" +# 82067 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82109 "src/ocaml/preprocess/parser_raw.ml" +# 82074 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82114 "src/ocaml/preprocess/parser_raw.ml" +# 82079 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82124 "src/ocaml/preprocess/parser_raw.ml" +# 82089 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -82128,15 +82093,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82134 "src/ocaml/preprocess/parser_raw.ml" +# 82099 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82140 "src/ocaml/preprocess/parser_raw.ml" +# 82105 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -82220,15 +82185,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82232 "src/ocaml/preprocess/parser_raw.ml" +# 82196 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82238,37 +82202,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82244 "src/ocaml/preprocess/parser_raw.ml" +# 82208 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82250 "src/ocaml/preprocess/parser_raw.ml" +# 82214 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82255 "src/ocaml/preprocess/parser_raw.ml" +# 82219 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82265 "src/ocaml/preprocess/parser_raw.ml" +# 82229 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82272 "src/ocaml/preprocess/parser_raw.ml" +# 82236 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -82280,24 +82244,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 82284 "src/ocaml/preprocess/parser_raw.ml" +# 82248 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82289 "src/ocaml/preprocess/parser_raw.ml" +# 82253 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82295 "src/ocaml/preprocess/parser_raw.ml" +# 82259 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 82301 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 82265 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82305,67 +82269,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 82311 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 82275 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82317 "src/ocaml/preprocess/parser_raw.ml" +# 82281 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82324 "src/ocaml/preprocess/parser_raw.ml" +# 82288 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82332 "src/ocaml/preprocess/parser_raw.ml" +# 82296 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82337 "src/ocaml/preprocess/parser_raw.ml" +# 82301 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82347 "src/ocaml/preprocess/parser_raw.ml" +# 82311 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82354 "src/ocaml/preprocess/parser_raw.ml" +# 82318 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82359 "src/ocaml/preprocess/parser_raw.ml" +# 82323 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82369 "src/ocaml/preprocess/parser_raw.ml" +# 82333 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -82373,15 +82337,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82379 "src/ocaml/preprocess/parser_raw.ml" +# 82343 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82385 "src/ocaml/preprocess/parser_raw.ml" +# 82349 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -82472,15 +82436,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82484 "src/ocaml/preprocess/parser_raw.ml" +# 82447 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82492,38 +82455,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82498 "src/ocaml/preprocess/parser_raw.ml" +# 82461 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82505 "src/ocaml/preprocess/parser_raw.ml" +# 82468 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82510 "src/ocaml/preprocess/parser_raw.ml" +# 82473 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82520 "src/ocaml/preprocess/parser_raw.ml" +# 82483 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82527 "src/ocaml/preprocess/parser_raw.ml" +# 82490 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -82535,24 +82498,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 82539 "src/ocaml/preprocess/parser_raw.ml" +# 82502 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82544 "src/ocaml/preprocess/parser_raw.ml" +# 82507 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82550 "src/ocaml/preprocess/parser_raw.ml" +# 82513 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 82556 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 82519 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82560,67 +82523,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 82566 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 82529 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82572 "src/ocaml/preprocess/parser_raw.ml" +# 82535 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82579 "src/ocaml/preprocess/parser_raw.ml" +# 82542 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82587 "src/ocaml/preprocess/parser_raw.ml" +# 82550 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82592 "src/ocaml/preprocess/parser_raw.ml" +# 82555 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82602 "src/ocaml/preprocess/parser_raw.ml" +# 82565 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82609 "src/ocaml/preprocess/parser_raw.ml" +# 82572 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82614 "src/ocaml/preprocess/parser_raw.ml" +# 82577 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82624 "src/ocaml/preprocess/parser_raw.ml" +# 82587 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -82628,15 +82591,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82634 "src/ocaml/preprocess/parser_raw.ml" +# 82597 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82640 "src/ocaml/preprocess/parser_raw.ml" +# 82603 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -82720,15 +82683,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82732 "src/ocaml/preprocess/parser_raw.ml" +# 82694 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82737,32 +82699,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82743 "src/ocaml/preprocess/parser_raw.ml" +# 82705 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82748 "src/ocaml/preprocess/parser_raw.ml" +# 82710 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82757 "src/ocaml/preprocess/parser_raw.ml" +# 82719 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82766 "src/ocaml/preprocess/parser_raw.ml" +# 82728 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -82775,24 +82737,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 82779 "src/ocaml/preprocess/parser_raw.ml" +# 82741 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82784 "src/ocaml/preprocess/parser_raw.ml" +# 82746 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82790 "src/ocaml/preprocess/parser_raw.ml" +# 82752 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 82796 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 82758 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82800,67 +82762,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 82806 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 82768 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82812 "src/ocaml/preprocess/parser_raw.ml" +# 82774 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 82819 "src/ocaml/preprocess/parser_raw.ml" +# 82781 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82827 "src/ocaml/preprocess/parser_raw.ml" +# 82789 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82832 "src/ocaml/preprocess/parser_raw.ml" +# 82794 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 82842 "src/ocaml/preprocess/parser_raw.ml" +# 82804 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 82849 "src/ocaml/preprocess/parser_raw.ml" +# 82811 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82854 "src/ocaml/preprocess/parser_raw.ml" +# 82816 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 82864 "src/ocaml/preprocess/parser_raw.ml" +# 82826 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -82868,15 +82830,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 82874 "src/ocaml/preprocess/parser_raw.ml" +# 82836 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82880 "src/ocaml/preprocess/parser_raw.ml" +# 82842 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -82967,15 +82929,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82979 "src/ocaml/preprocess/parser_raw.ml" +# 82940 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -82985,32 +82946,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 82991 "src/ocaml/preprocess/parser_raw.ml" +# 82952 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 82996 "src/ocaml/preprocess/parser_raw.ml" +# 82957 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83005 "src/ocaml/preprocess/parser_raw.ml" +# 82966 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83014 "src/ocaml/preprocess/parser_raw.ml" +# 82975 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -83023,24 +82984,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 83027 "src/ocaml/preprocess/parser_raw.ml" +# 82988 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83032 "src/ocaml/preprocess/parser_raw.ml" +# 82993 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83038 "src/ocaml/preprocess/parser_raw.ml" +# 82999 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 83044 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 83005 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -83048,67 +83009,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 83054 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 83015 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83060 "src/ocaml/preprocess/parser_raw.ml" +# 83021 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83067 "src/ocaml/preprocess/parser_raw.ml" +# 83028 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83075 "src/ocaml/preprocess/parser_raw.ml" +# 83036 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83080 "src/ocaml/preprocess/parser_raw.ml" +# 83041 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83090 "src/ocaml/preprocess/parser_raw.ml" +# 83051 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83097 "src/ocaml/preprocess/parser_raw.ml" +# 83058 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83102 "src/ocaml/preprocess/parser_raw.ml" +# 83063 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83112 "src/ocaml/preprocess/parser_raw.ml" +# 83073 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -83116,15 +83077,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83122 "src/ocaml/preprocess/parser_raw.ml" +# 83083 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83128 "src/ocaml/preprocess/parser_raw.ml" +# 83089 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83215,15 +83176,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83227 "src/ocaml/preprocess/parser_raw.ml" +# 83187 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83233,39 +83193,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83239 "src/ocaml/preprocess/parser_raw.ml" +# 83199 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83245 "src/ocaml/preprocess/parser_raw.ml" +# 83205 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83250 "src/ocaml/preprocess/parser_raw.ml" +# 83210 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83260 "src/ocaml/preprocess/parser_raw.ml" +# 83220 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83269 "src/ocaml/preprocess/parser_raw.ml" +# 83229 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -83278,24 +83238,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 83282 "src/ocaml/preprocess/parser_raw.ml" +# 83242 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83287 "src/ocaml/preprocess/parser_raw.ml" +# 83247 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83293 "src/ocaml/preprocess/parser_raw.ml" +# 83253 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 83299 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 83259 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -83303,67 +83263,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 83309 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 83269 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83315 "src/ocaml/preprocess/parser_raw.ml" +# 83275 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83322 "src/ocaml/preprocess/parser_raw.ml" +# 83282 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83330 "src/ocaml/preprocess/parser_raw.ml" +# 83290 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83335 "src/ocaml/preprocess/parser_raw.ml" +# 83295 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83345 "src/ocaml/preprocess/parser_raw.ml" +# 83305 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83352 "src/ocaml/preprocess/parser_raw.ml" +# 83312 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83357 "src/ocaml/preprocess/parser_raw.ml" +# 83317 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83367 "src/ocaml/preprocess/parser_raw.ml" +# 83327 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -83371,15 +83331,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83377 "src/ocaml/preprocess/parser_raw.ml" +# 83337 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83383 "src/ocaml/preprocess/parser_raw.ml" +# 83343 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83477,15 +83437,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83489 "src/ocaml/preprocess/parser_raw.ml" +# 83448 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83497,40 +83456,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83503 "src/ocaml/preprocess/parser_raw.ml" +# 83462 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83510 "src/ocaml/preprocess/parser_raw.ml" +# 83469 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83515 "src/ocaml/preprocess/parser_raw.ml" +# 83474 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83525 "src/ocaml/preprocess/parser_raw.ml" +# 83484 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83534 "src/ocaml/preprocess/parser_raw.ml" +# 83493 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -83543,24 +83502,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 83547 "src/ocaml/preprocess/parser_raw.ml" +# 83506 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83552 "src/ocaml/preprocess/parser_raw.ml" +# 83511 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83558 "src/ocaml/preprocess/parser_raw.ml" +# 83517 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 83564 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 83523 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -83568,67 +83527,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 83574 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 83533 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83580 "src/ocaml/preprocess/parser_raw.ml" +# 83539 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83587 "src/ocaml/preprocess/parser_raw.ml" +# 83546 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83595 "src/ocaml/preprocess/parser_raw.ml" +# 83554 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83600 "src/ocaml/preprocess/parser_raw.ml" +# 83559 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83610 "src/ocaml/preprocess/parser_raw.ml" +# 83569 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83617 "src/ocaml/preprocess/parser_raw.ml" +# 83576 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83622 "src/ocaml/preprocess/parser_raw.ml" +# 83581 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83632 "src/ocaml/preprocess/parser_raw.ml" +# 83591 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in @@ -83636,15 +83595,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83642 "src/ocaml/preprocess/parser_raw.ml" +# 83601 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83648 "src/ocaml/preprocess/parser_raw.ml" +# 83607 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83698,9 +83657,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83704 "src/ocaml/preprocess/parser_raw.ml" +# 83663 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83710,86 +83669,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83716 "src/ocaml/preprocess/parser_raw.ml" +# 83675 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83721 "src/ocaml/preprocess/parser_raw.ml" +# 83680 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83730 "src/ocaml/preprocess/parser_raw.ml" +# 83689 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83737 "src/ocaml/preprocess/parser_raw.ml" +# 83696 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 83743 "src/ocaml/preprocess/parser_raw.ml" +# 83702 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83749 "src/ocaml/preprocess/parser_raw.ml" +# 83708 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83756 "src/ocaml/preprocess/parser_raw.ml" +# 83715 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83761 "src/ocaml/preprocess/parser_raw.ml" +# 83720 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83771 "src/ocaml/preprocess/parser_raw.ml" +# 83730 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83778 "src/ocaml/preprocess/parser_raw.ml" +# 83737 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83783 "src/ocaml/preprocess/parser_raw.ml" +# 83742 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83793 "src/ocaml/preprocess/parser_raw.ml" +# 83752 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -83797,15 +83756,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83803 "src/ocaml/preprocess/parser_raw.ml" +# 83762 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83809 "src/ocaml/preprocess/parser_raw.ml" +# 83768 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -83866,9 +83825,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 83872 "src/ocaml/preprocess/parser_raw.ml" +# 83831 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -83878,86 +83837,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83884 "src/ocaml/preprocess/parser_raw.ml" +# 83843 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83889 "src/ocaml/preprocess/parser_raw.ml" +# 83848 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83898 "src/ocaml/preprocess/parser_raw.ml" +# 83857 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 83905 "src/ocaml/preprocess/parser_raw.ml" +# 83864 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 83911 "src/ocaml/preprocess/parser_raw.ml" +# 83870 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 83917 "src/ocaml/preprocess/parser_raw.ml" +# 83876 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83924 "src/ocaml/preprocess/parser_raw.ml" +# 83883 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 83929 "src/ocaml/preprocess/parser_raw.ml" +# 83888 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 83939 "src/ocaml/preprocess/parser_raw.ml" +# 83898 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 83946 "src/ocaml/preprocess/parser_raw.ml" +# 83905 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83951 "src/ocaml/preprocess/parser_raw.ml" +# 83910 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 83961 "src/ocaml/preprocess/parser_raw.ml" +# 83920 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -83965,15 +83924,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 83971 "src/ocaml/preprocess/parser_raw.ml" +# 83930 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83977 "src/ocaml/preprocess/parser_raw.ml" +# 83936 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84034,9 +83993,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84040 "src/ocaml/preprocess/parser_raw.ml" +# 83999 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84046,93 +84005,93 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84052 "src/ocaml/preprocess/parser_raw.ml" +# 84011 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84058 "src/ocaml/preprocess/parser_raw.ml" +# 84017 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84063 "src/ocaml/preprocess/parser_raw.ml" +# 84022 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84073 "src/ocaml/preprocess/parser_raw.ml" +# 84032 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84080 "src/ocaml/preprocess/parser_raw.ml" +# 84039 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84086 "src/ocaml/preprocess/parser_raw.ml" +# 84045 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84092 "src/ocaml/preprocess/parser_raw.ml" +# 84051 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84099 "src/ocaml/preprocess/parser_raw.ml" +# 84058 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84104 "src/ocaml/preprocess/parser_raw.ml" +# 84063 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84114 "src/ocaml/preprocess/parser_raw.ml" +# 84073 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84121 "src/ocaml/preprocess/parser_raw.ml" +# 84080 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84126 "src/ocaml/preprocess/parser_raw.ml" +# 84085 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84136 "src/ocaml/preprocess/parser_raw.ml" +# 84095 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -84140,15 +84099,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84146 "src/ocaml/preprocess/parser_raw.ml" +# 84105 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84152 "src/ocaml/preprocess/parser_raw.ml" +# 84111 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84216,9 +84175,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84222 "src/ocaml/preprocess/parser_raw.ml" +# 84181 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84230,94 +84189,94 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84236 "src/ocaml/preprocess/parser_raw.ml" +# 84195 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84243 "src/ocaml/preprocess/parser_raw.ml" +# 84202 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84248 "src/ocaml/preprocess/parser_raw.ml" +# 84207 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84258 "src/ocaml/preprocess/parser_raw.ml" +# 84217 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84265 "src/ocaml/preprocess/parser_raw.ml" +# 84224 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84271 "src/ocaml/preprocess/parser_raw.ml" +# 84230 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84277 "src/ocaml/preprocess/parser_raw.ml" +# 84236 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84284 "src/ocaml/preprocess/parser_raw.ml" +# 84243 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84289 "src/ocaml/preprocess/parser_raw.ml" +# 84248 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84299 "src/ocaml/preprocess/parser_raw.ml" +# 84258 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84306 "src/ocaml/preprocess/parser_raw.ml" +# 84265 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84311 "src/ocaml/preprocess/parser_raw.ml" +# 84270 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84321 "src/ocaml/preprocess/parser_raw.ml" +# 84280 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -84325,15 +84284,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84331 "src/ocaml/preprocess/parser_raw.ml" +# 84290 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84337 "src/ocaml/preprocess/parser_raw.ml" +# 84296 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84394,9 +84353,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84400 "src/ocaml/preprocess/parser_raw.ml" +# 84359 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84406,89 +84365,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84412 "src/ocaml/preprocess/parser_raw.ml" +# 84371 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84417 "src/ocaml/preprocess/parser_raw.ml" +# 84376 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84426 "src/ocaml/preprocess/parser_raw.ml" +# 84385 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84435 "src/ocaml/preprocess/parser_raw.ml" +# 84394 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84442 "src/ocaml/preprocess/parser_raw.ml" +# 84401 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84448 "src/ocaml/preprocess/parser_raw.ml" +# 84407 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84455 "src/ocaml/preprocess/parser_raw.ml" +# 84414 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84460 "src/ocaml/preprocess/parser_raw.ml" +# 84419 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84470 "src/ocaml/preprocess/parser_raw.ml" +# 84429 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84477 "src/ocaml/preprocess/parser_raw.ml" +# 84436 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84482 "src/ocaml/preprocess/parser_raw.ml" +# 84441 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84492 "src/ocaml/preprocess/parser_raw.ml" +# 84451 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -84496,15 +84455,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84502 "src/ocaml/preprocess/parser_raw.ml" +# 84461 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84508 "src/ocaml/preprocess/parser_raw.ml" +# 84467 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84572,9 +84531,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84578 "src/ocaml/preprocess/parser_raw.ml" +# 84537 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84584,89 +84543,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84590 "src/ocaml/preprocess/parser_raw.ml" +# 84549 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84595 "src/ocaml/preprocess/parser_raw.ml" +# 84554 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84604 "src/ocaml/preprocess/parser_raw.ml" +# 84563 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84613 "src/ocaml/preprocess/parser_raw.ml" +# 84572 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84620 "src/ocaml/preprocess/parser_raw.ml" +# 84579 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84626 "src/ocaml/preprocess/parser_raw.ml" +# 84585 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84633 "src/ocaml/preprocess/parser_raw.ml" +# 84592 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84638 "src/ocaml/preprocess/parser_raw.ml" +# 84597 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84648 "src/ocaml/preprocess/parser_raw.ml" +# 84607 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84655 "src/ocaml/preprocess/parser_raw.ml" +# 84614 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84660 "src/ocaml/preprocess/parser_raw.ml" +# 84619 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84670 "src/ocaml/preprocess/parser_raw.ml" +# 84629 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -84674,15 +84633,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84680 "src/ocaml/preprocess/parser_raw.ml" +# 84639 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84686 "src/ocaml/preprocess/parser_raw.ml" +# 84645 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84750,9 +84709,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84756 "src/ocaml/preprocess/parser_raw.ml" +# 84715 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84762,96 +84721,96 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 84768 "src/ocaml/preprocess/parser_raw.ml" +# 84727 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84774 "src/ocaml/preprocess/parser_raw.ml" +# 84733 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84779 "src/ocaml/preprocess/parser_raw.ml" +# 84738 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84789 "src/ocaml/preprocess/parser_raw.ml" +# 84748 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84798 "src/ocaml/preprocess/parser_raw.ml" +# 84757 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 84805 "src/ocaml/preprocess/parser_raw.ml" +# 84764 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 84811 "src/ocaml/preprocess/parser_raw.ml" +# 84770 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84818 "src/ocaml/preprocess/parser_raw.ml" +# 84777 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84823 "src/ocaml/preprocess/parser_raw.ml" +# 84782 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84833 "src/ocaml/preprocess/parser_raw.ml" +# 84792 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 84840 "src/ocaml/preprocess/parser_raw.ml" +# 84799 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84845 "src/ocaml/preprocess/parser_raw.ml" +# 84804 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 84855 "src/ocaml/preprocess/parser_raw.ml" +# 84814 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -84859,15 +84818,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 84865 "src/ocaml/preprocess/parser_raw.ml" +# 84824 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84871 "src/ocaml/preprocess/parser_raw.ml" +# 84830 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -84942,9 +84901,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 84948 "src/ocaml/preprocess/parser_raw.ml" +# 84907 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -84956,97 +84915,97 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84962 "src/ocaml/preprocess/parser_raw.ml" +# 84921 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84969 "src/ocaml/preprocess/parser_raw.ml" +# 84928 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84974 "src/ocaml/preprocess/parser_raw.ml" +# 84933 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 84984 "src/ocaml/preprocess/parser_raw.ml" +# 84943 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 84993 "src/ocaml/preprocess/parser_raw.ml" +# 84952 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 85000 "src/ocaml/preprocess/parser_raw.ml" +# 84959 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85006 "src/ocaml/preprocess/parser_raw.ml" +# 84965 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85013 "src/ocaml/preprocess/parser_raw.ml" +# 84972 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85018 "src/ocaml/preprocess/parser_raw.ml" +# 84977 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85028 "src/ocaml/preprocess/parser_raw.ml" +# 84987 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4543 "src/ocaml/preprocess/parser_raw.mly" +# 4562 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 85035 "src/ocaml/preprocess/parser_raw.ml" +# 84994 "src/ocaml/preprocess/parser_raw.ml" in -# 4548 "src/ocaml/preprocess/parser_raw.mly" +# 4567 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85040 "src/ocaml/preprocess/parser_raw.ml" +# 84999 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85050 "src/ocaml/preprocess/parser_raw.ml" +# 85009 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -85054,15 +85013,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85060 "src/ocaml/preprocess/parser_raw.ml" +# 85019 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85066 "src/ocaml/preprocess/parser_raw.ml" +# 85025 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85121,8 +85080,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85131,30 +85089,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85137 "src/ocaml/preprocess/parser_raw.ml" +# 85095 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85142 "src/ocaml/preprocess/parser_raw.ml" +# 85100 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85151 "src/ocaml/preprocess/parser_raw.ml" +# 85109 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85158 "src/ocaml/preprocess/parser_raw.ml" +# 85116 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -85165,24 +85123,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85169 "src/ocaml/preprocess/parser_raw.ml" +# 85127 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85174 "src/ocaml/preprocess/parser_raw.ml" +# 85132 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85180 "src/ocaml/preprocess/parser_raw.ml" +# 85138 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 85186 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 85144 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85190,53 +85148,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 85196 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 85154 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85202 "src/ocaml/preprocess/parser_raw.ml" +# 85160 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85209 "src/ocaml/preprocess/parser_raw.ml" +# 85167 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85216 "src/ocaml/preprocess/parser_raw.ml" +# 85174 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85225 "src/ocaml/preprocess/parser_raw.ml" +# 85183 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 85231 "src/ocaml/preprocess/parser_raw.ml" +# 85189 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85240 "src/ocaml/preprocess/parser_raw.ml" +# 85198 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -85244,15 +85202,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85250 "src/ocaml/preprocess/parser_raw.ml" +# 85208 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85256 "src/ocaml/preprocess/parser_raw.ml" +# 85214 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85318,8 +85276,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85329,30 +85286,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85335 "src/ocaml/preprocess/parser_raw.ml" +# 85292 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85340 "src/ocaml/preprocess/parser_raw.ml" +# 85297 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85349 "src/ocaml/preprocess/parser_raw.ml" +# 85306 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85356 "src/ocaml/preprocess/parser_raw.ml" +# 85313 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -85363,24 +85320,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85367 "src/ocaml/preprocess/parser_raw.ml" +# 85324 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85372 "src/ocaml/preprocess/parser_raw.ml" +# 85329 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85378 "src/ocaml/preprocess/parser_raw.ml" +# 85335 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 85384 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 85341 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85388,53 +85345,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 85394 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 85351 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85400 "src/ocaml/preprocess/parser_raw.ml" +# 85357 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85407 "src/ocaml/preprocess/parser_raw.ml" +# 85364 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85414 "src/ocaml/preprocess/parser_raw.ml" +# 85371 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85423 "src/ocaml/preprocess/parser_raw.ml" +# 85380 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 85429 "src/ocaml/preprocess/parser_raw.ml" +# 85386 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85438 "src/ocaml/preprocess/parser_raw.ml" +# 85395 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -85442,15 +85399,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85448 "src/ocaml/preprocess/parser_raw.ml" +# 85405 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85454 "src/ocaml/preprocess/parser_raw.ml" +# 85411 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85516,8 +85473,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85527,37 +85483,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85533 "src/ocaml/preprocess/parser_raw.ml" +# 85489 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85539 "src/ocaml/preprocess/parser_raw.ml" +# 85495 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85544 "src/ocaml/preprocess/parser_raw.ml" +# 85500 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85554 "src/ocaml/preprocess/parser_raw.ml" +# 85510 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85561 "src/ocaml/preprocess/parser_raw.ml" +# 85517 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -85568,24 +85524,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85572 "src/ocaml/preprocess/parser_raw.ml" +# 85528 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85577 "src/ocaml/preprocess/parser_raw.ml" +# 85533 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85583 "src/ocaml/preprocess/parser_raw.ml" +# 85539 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 85589 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 85545 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85593,53 +85549,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 85599 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 85555 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85605 "src/ocaml/preprocess/parser_raw.ml" +# 85561 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85612 "src/ocaml/preprocess/parser_raw.ml" +# 85568 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85619 "src/ocaml/preprocess/parser_raw.ml" +# 85575 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85628 "src/ocaml/preprocess/parser_raw.ml" +# 85584 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 85634 "src/ocaml/preprocess/parser_raw.ml" +# 85590 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85643 "src/ocaml/preprocess/parser_raw.ml" +# 85599 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -85647,15 +85603,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85653 "src/ocaml/preprocess/parser_raw.ml" +# 85609 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85659 "src/ocaml/preprocess/parser_raw.ml" +# 85615 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85728,8 +85684,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85741,38 +85696,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85747 "src/ocaml/preprocess/parser_raw.ml" +# 85702 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85754 "src/ocaml/preprocess/parser_raw.ml" +# 85709 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85759 "src/ocaml/preprocess/parser_raw.ml" +# 85714 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85769 "src/ocaml/preprocess/parser_raw.ml" +# 85724 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85776 "src/ocaml/preprocess/parser_raw.ml" +# 85731 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -85783,24 +85738,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85787 "src/ocaml/preprocess/parser_raw.ml" +# 85742 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85792 "src/ocaml/preprocess/parser_raw.ml" +# 85747 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85798 "src/ocaml/preprocess/parser_raw.ml" +# 85753 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 85804 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 85759 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85808,53 +85763,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 85814 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 85769 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85820 "src/ocaml/preprocess/parser_raw.ml" +# 85775 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 85827 "src/ocaml/preprocess/parser_raw.ml" +# 85782 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85834 "src/ocaml/preprocess/parser_raw.ml" +# 85789 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85843 "src/ocaml/preprocess/parser_raw.ml" +# 85798 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 85849 "src/ocaml/preprocess/parser_raw.ml" +# 85804 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 85858 "src/ocaml/preprocess/parser_raw.ml" +# 85813 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -85862,15 +85817,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 85868 "src/ocaml/preprocess/parser_raw.ml" +# 85823 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85874 "src/ocaml/preprocess/parser_raw.ml" +# 85829 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -85936,8 +85891,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85946,32 +85900,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85952 "src/ocaml/preprocess/parser_raw.ml" +# 85906 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 85957 "src/ocaml/preprocess/parser_raw.ml" +# 85911 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 85966 "src/ocaml/preprocess/parser_raw.ml" +# 85920 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 85975 "src/ocaml/preprocess/parser_raw.ml" +# 85929 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -85983,24 +85937,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 85987 "src/ocaml/preprocess/parser_raw.ml" +# 85941 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85992 "src/ocaml/preprocess/parser_raw.ml" +# 85946 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85998 "src/ocaml/preprocess/parser_raw.ml" +# 85952 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 86004 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 85958 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -86008,53 +85962,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 86014 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 85968 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86020 "src/ocaml/preprocess/parser_raw.ml" +# 85974 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86027 "src/ocaml/preprocess/parser_raw.ml" +# 85981 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86034 "src/ocaml/preprocess/parser_raw.ml" +# 85988 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86043 "src/ocaml/preprocess/parser_raw.ml" +# 85997 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 86049 "src/ocaml/preprocess/parser_raw.ml" +# 86003 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86058 "src/ocaml/preprocess/parser_raw.ml" +# 86012 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -86062,15 +86016,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86068 "src/ocaml/preprocess/parser_raw.ml" +# 86022 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86074 "src/ocaml/preprocess/parser_raw.ml" +# 86028 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86143,8 +86097,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -86154,32 +86107,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86160 "src/ocaml/preprocess/parser_raw.ml" +# 86113 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86165 "src/ocaml/preprocess/parser_raw.ml" +# 86118 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86174 "src/ocaml/preprocess/parser_raw.ml" +# 86127 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86183 "src/ocaml/preprocess/parser_raw.ml" +# 86136 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -86191,24 +86144,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 86195 "src/ocaml/preprocess/parser_raw.ml" +# 86148 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86200 "src/ocaml/preprocess/parser_raw.ml" +# 86153 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86206 "src/ocaml/preprocess/parser_raw.ml" +# 86159 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 86212 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 86165 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -86216,53 +86169,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 86222 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 86175 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86228 "src/ocaml/preprocess/parser_raw.ml" +# 86181 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86235 "src/ocaml/preprocess/parser_raw.ml" +# 86188 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86242 "src/ocaml/preprocess/parser_raw.ml" +# 86195 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86251 "src/ocaml/preprocess/parser_raw.ml" +# 86204 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 86257 "src/ocaml/preprocess/parser_raw.ml" +# 86210 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86266 "src/ocaml/preprocess/parser_raw.ml" +# 86219 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -86270,15 +86223,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86276 "src/ocaml/preprocess/parser_raw.ml" +# 86229 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86282 "src/ocaml/preprocess/parser_raw.ml" +# 86235 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86351,8 +86304,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -86362,39 +86314,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86368 "src/ocaml/preprocess/parser_raw.ml" +# 86320 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86374 "src/ocaml/preprocess/parser_raw.ml" +# 86326 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86379 "src/ocaml/preprocess/parser_raw.ml" +# 86331 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86389 "src/ocaml/preprocess/parser_raw.ml" +# 86341 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86398 "src/ocaml/preprocess/parser_raw.ml" +# 86350 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -86406,24 +86358,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 86410 "src/ocaml/preprocess/parser_raw.ml" +# 86362 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86415 "src/ocaml/preprocess/parser_raw.ml" +# 86367 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86421 "src/ocaml/preprocess/parser_raw.ml" +# 86373 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 86427 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 86379 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -86431,53 +86383,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 86437 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 86389 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86443 "src/ocaml/preprocess/parser_raw.ml" +# 86395 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86450 "src/ocaml/preprocess/parser_raw.ml" +# 86402 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86457 "src/ocaml/preprocess/parser_raw.ml" +# 86409 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86466 "src/ocaml/preprocess/parser_raw.ml" +# 86418 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 86472 "src/ocaml/preprocess/parser_raw.ml" +# 86424 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86481 "src/ocaml/preprocess/parser_raw.ml" +# 86433 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -86485,15 +86437,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86491 "src/ocaml/preprocess/parser_raw.ml" +# 86443 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86497 "src/ocaml/preprocess/parser_raw.ml" +# 86449 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86573,8 +86525,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -86586,40 +86537,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86592 "src/ocaml/preprocess/parser_raw.ml" +# 86543 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86599 "src/ocaml/preprocess/parser_raw.ml" +# 86550 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86604 "src/ocaml/preprocess/parser_raw.ml" +# 86555 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86614 "src/ocaml/preprocess/parser_raw.ml" +# 86565 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86623 "src/ocaml/preprocess/parser_raw.ml" +# 86574 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -86631,24 +86582,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 86635 "src/ocaml/preprocess/parser_raw.ml" +# 86586 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86640 "src/ocaml/preprocess/parser_raw.ml" +# 86591 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86646 "src/ocaml/preprocess/parser_raw.ml" +# 86597 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 86652 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 86603 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -86656,53 +86607,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 86662 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 86613 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86668 "src/ocaml/preprocess/parser_raw.ml" +# 86619 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86675 "src/ocaml/preprocess/parser_raw.ml" +# 86626 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86682 "src/ocaml/preprocess/parser_raw.ml" +# 86633 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86691 "src/ocaml/preprocess/parser_raw.ml" +# 86642 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 86697 "src/ocaml/preprocess/parser_raw.ml" +# 86648 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86706 "src/ocaml/preprocess/parser_raw.ml" +# 86657 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -86710,15 +86661,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86716 "src/ocaml/preprocess/parser_raw.ml" +# 86667 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86722 "src/ocaml/preprocess/parser_raw.ml" +# 86673 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86759,72 +86710,72 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86765 "src/ocaml/preprocess/parser_raw.ml" +# 86716 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86770 "src/ocaml/preprocess/parser_raw.ml" +# 86721 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86779 "src/ocaml/preprocess/parser_raw.ml" +# 86730 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86786 "src/ocaml/preprocess/parser_raw.ml" +# 86737 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86792 "src/ocaml/preprocess/parser_raw.ml" +# 86743 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86798 "src/ocaml/preprocess/parser_raw.ml" +# 86749 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86804 "src/ocaml/preprocess/parser_raw.ml" +# 86755 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86813 "src/ocaml/preprocess/parser_raw.ml" +# 86764 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 86819 "src/ocaml/preprocess/parser_raw.ml" +# 86770 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86828 "src/ocaml/preprocess/parser_raw.ml" +# 86779 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -86832,15 +86783,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86838 "src/ocaml/preprocess/parser_raw.ml" +# 86789 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86844 "src/ocaml/preprocess/parser_raw.ml" +# 86795 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -86888,72 +86839,72 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 86894 "src/ocaml/preprocess/parser_raw.ml" +# 86845 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86899 "src/ocaml/preprocess/parser_raw.ml" +# 86850 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86908 "src/ocaml/preprocess/parser_raw.ml" +# 86859 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86915 "src/ocaml/preprocess/parser_raw.ml" +# 86866 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 86921 "src/ocaml/preprocess/parser_raw.ml" +# 86872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 86927 "src/ocaml/preprocess/parser_raw.ml" +# 86878 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 86933 "src/ocaml/preprocess/parser_raw.ml" +# 86884 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 86942 "src/ocaml/preprocess/parser_raw.ml" +# 86893 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 86948 "src/ocaml/preprocess/parser_raw.ml" +# 86899 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 86957 "src/ocaml/preprocess/parser_raw.ml" +# 86908 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -86961,15 +86912,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 86967 "src/ocaml/preprocess/parser_raw.ml" +# 86918 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86973 "src/ocaml/preprocess/parser_raw.ml" +# 86924 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87017,79 +86968,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87023 "src/ocaml/preprocess/parser_raw.ml" +# 86974 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87029 "src/ocaml/preprocess/parser_raw.ml" +# 86980 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87034 "src/ocaml/preprocess/parser_raw.ml" +# 86985 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87044 "src/ocaml/preprocess/parser_raw.ml" +# 86995 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87051 "src/ocaml/preprocess/parser_raw.ml" +# 87002 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87057 "src/ocaml/preprocess/parser_raw.ml" +# 87008 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87063 "src/ocaml/preprocess/parser_raw.ml" +# 87014 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87069 "src/ocaml/preprocess/parser_raw.ml" +# 87020 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87078 "src/ocaml/preprocess/parser_raw.ml" +# 87029 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87084 "src/ocaml/preprocess/parser_raw.ml" +# 87035 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87093 "src/ocaml/preprocess/parser_raw.ml" +# 87044 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -87097,15 +87048,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87103 "src/ocaml/preprocess/parser_raw.ml" +# 87054 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87109 "src/ocaml/preprocess/parser_raw.ml" +# 87060 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87162,80 +87113,80 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87168 "src/ocaml/preprocess/parser_raw.ml" +# 87119 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87175 "src/ocaml/preprocess/parser_raw.ml" +# 87126 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87180 "src/ocaml/preprocess/parser_raw.ml" +# 87131 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87190 "src/ocaml/preprocess/parser_raw.ml" +# 87141 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87197 "src/ocaml/preprocess/parser_raw.ml" +# 87148 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87203 "src/ocaml/preprocess/parser_raw.ml" +# 87154 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87209 "src/ocaml/preprocess/parser_raw.ml" +# 87160 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87215 "src/ocaml/preprocess/parser_raw.ml" +# 87166 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87224 "src/ocaml/preprocess/parser_raw.ml" +# 87175 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87230 "src/ocaml/preprocess/parser_raw.ml" +# 87181 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87239 "src/ocaml/preprocess/parser_raw.ml" +# 87190 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in @@ -87243,15 +87194,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87249 "src/ocaml/preprocess/parser_raw.ml" +# 87200 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87255 "src/ocaml/preprocess/parser_raw.ml" +# 87206 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87299,72 +87250,72 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87305 "src/ocaml/preprocess/parser_raw.ml" +# 87256 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87310 "src/ocaml/preprocess/parser_raw.ml" +# 87261 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87319 "src/ocaml/preprocess/parser_raw.ml" +# 87270 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87326 "src/ocaml/preprocess/parser_raw.ml" +# 87277 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87332 "src/ocaml/preprocess/parser_raw.ml" +# 87283 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87338 "src/ocaml/preprocess/parser_raw.ml" +# 87289 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87344 "src/ocaml/preprocess/parser_raw.ml" +# 87295 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87353 "src/ocaml/preprocess/parser_raw.ml" +# 87304 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87359 "src/ocaml/preprocess/parser_raw.ml" +# 87310 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87368 "src/ocaml/preprocess/parser_raw.ml" +# 87319 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -87372,15 +87323,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87378 "src/ocaml/preprocess/parser_raw.ml" +# 87329 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87384 "src/ocaml/preprocess/parser_raw.ml" +# 87335 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87435,72 +87386,72 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87441 "src/ocaml/preprocess/parser_raw.ml" +# 87392 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87446 "src/ocaml/preprocess/parser_raw.ml" +# 87397 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87455 "src/ocaml/preprocess/parser_raw.ml" +# 87406 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87462 "src/ocaml/preprocess/parser_raw.ml" +# 87413 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87468 "src/ocaml/preprocess/parser_raw.ml" +# 87419 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87474 "src/ocaml/preprocess/parser_raw.ml" +# 87425 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87480 "src/ocaml/preprocess/parser_raw.ml" +# 87431 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87489 "src/ocaml/preprocess/parser_raw.ml" +# 87440 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87495 "src/ocaml/preprocess/parser_raw.ml" +# 87446 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87504 "src/ocaml/preprocess/parser_raw.ml" +# 87455 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in @@ -87508,15 +87459,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87514 "src/ocaml/preprocess/parser_raw.ml" +# 87465 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87520 "src/ocaml/preprocess/parser_raw.ml" +# 87471 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87571,79 +87522,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87577 "src/ocaml/preprocess/parser_raw.ml" +# 87528 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87583 "src/ocaml/preprocess/parser_raw.ml" +# 87534 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87588 "src/ocaml/preprocess/parser_raw.ml" +# 87539 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87598 "src/ocaml/preprocess/parser_raw.ml" +# 87549 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87605 "src/ocaml/preprocess/parser_raw.ml" +# 87556 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87611 "src/ocaml/preprocess/parser_raw.ml" +# 87562 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87617 "src/ocaml/preprocess/parser_raw.ml" +# 87568 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87623 "src/ocaml/preprocess/parser_raw.ml" +# 87574 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87632 "src/ocaml/preprocess/parser_raw.ml" +# 87583 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87638 "src/ocaml/preprocess/parser_raw.ml" +# 87589 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87647 "src/ocaml/preprocess/parser_raw.ml" +# 87598 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -87651,15 +87602,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87657 "src/ocaml/preprocess/parser_raw.ml" +# 87608 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87663 "src/ocaml/preprocess/parser_raw.ml" +# 87614 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87723,80 +87674,80 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87729 "src/ocaml/preprocess/parser_raw.ml" +# 87680 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87736 "src/ocaml/preprocess/parser_raw.ml" +# 87687 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87741 "src/ocaml/preprocess/parser_raw.ml" +# 87692 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87751 "src/ocaml/preprocess/parser_raw.ml" +# 87702 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87758 "src/ocaml/preprocess/parser_raw.ml" +# 87709 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 87764 "src/ocaml/preprocess/parser_raw.ml" +# 87715 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87770 "src/ocaml/preprocess/parser_raw.ml" +# 87721 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87776 "src/ocaml/preprocess/parser_raw.ml" +# 87727 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87785 "src/ocaml/preprocess/parser_raw.ml" +# 87736 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87791 "src/ocaml/preprocess/parser_raw.ml" +# 87742 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 87800 "src/ocaml/preprocess/parser_raw.ml" +# 87751 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_ty_) in @@ -87804,15 +87755,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 87810 "src/ocaml/preprocess/parser_raw.ml" +# 87761 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87816 "src/ocaml/preprocess/parser_raw.ml" +# 87767 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87877,8 +87828,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -87888,30 +87838,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87894 "src/ocaml/preprocess/parser_raw.ml" +# 87844 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87899 "src/ocaml/preprocess/parser_raw.ml" +# 87849 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87908 "src/ocaml/preprocess/parser_raw.ml" +# 87858 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 87915 "src/ocaml/preprocess/parser_raw.ml" +# 87865 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -87923,24 +87873,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 87927 "src/ocaml/preprocess/parser_raw.ml" +# 87877 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87932 "src/ocaml/preprocess/parser_raw.ml" +# 87882 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87938 "src/ocaml/preprocess/parser_raw.ml" +# 87888 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 87944 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 87894 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -87948,60 +87898,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 87954 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 87904 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87960 "src/ocaml/preprocess/parser_raw.ml" +# 87910 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 87967 "src/ocaml/preprocess/parser_raw.ml" +# 87917 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87975 "src/ocaml/preprocess/parser_raw.ml" +# 87925 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 87980 "src/ocaml/preprocess/parser_raw.ml" +# 87930 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 87990 "src/ocaml/preprocess/parser_raw.ml" +# 87940 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 87996 "src/ocaml/preprocess/parser_raw.ml" +# 87946 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88005 "src/ocaml/preprocess/parser_raw.ml" +# 87955 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -88009,15 +87959,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88015 "src/ocaml/preprocess/parser_raw.ml" +# 87965 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88021 "src/ocaml/preprocess/parser_raw.ml" +# 87971 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88089,8 +88039,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88101,30 +88050,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88107 "src/ocaml/preprocess/parser_raw.ml" +# 88056 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88112 "src/ocaml/preprocess/parser_raw.ml" +# 88061 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88121 "src/ocaml/preprocess/parser_raw.ml" +# 88070 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88128 "src/ocaml/preprocess/parser_raw.ml" +# 88077 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -88136,24 +88085,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88140 "src/ocaml/preprocess/parser_raw.ml" +# 88089 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88145 "src/ocaml/preprocess/parser_raw.ml" +# 88094 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88151 "src/ocaml/preprocess/parser_raw.ml" +# 88100 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 88157 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 88106 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88161,60 +88110,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 88167 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 88116 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88173 "src/ocaml/preprocess/parser_raw.ml" +# 88122 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88180 "src/ocaml/preprocess/parser_raw.ml" +# 88129 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88188 "src/ocaml/preprocess/parser_raw.ml" +# 88137 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88193 "src/ocaml/preprocess/parser_raw.ml" +# 88142 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88203 "src/ocaml/preprocess/parser_raw.ml" +# 88152 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88209 "src/ocaml/preprocess/parser_raw.ml" +# 88158 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88218 "src/ocaml/preprocess/parser_raw.ml" +# 88167 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -88222,15 +88171,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88228 "src/ocaml/preprocess/parser_raw.ml" +# 88177 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88234 "src/ocaml/preprocess/parser_raw.ml" +# 88183 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88302,8 +88251,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88314,37 +88262,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88320 "src/ocaml/preprocess/parser_raw.ml" +# 88268 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88326 "src/ocaml/preprocess/parser_raw.ml" +# 88274 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88331 "src/ocaml/preprocess/parser_raw.ml" +# 88279 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88341 "src/ocaml/preprocess/parser_raw.ml" +# 88289 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88348 "src/ocaml/preprocess/parser_raw.ml" +# 88296 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -88356,24 +88304,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88360 "src/ocaml/preprocess/parser_raw.ml" +# 88308 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88365 "src/ocaml/preprocess/parser_raw.ml" +# 88313 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88371 "src/ocaml/preprocess/parser_raw.ml" +# 88319 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 88377 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 88325 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88381,60 +88329,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 88387 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 88335 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88393 "src/ocaml/preprocess/parser_raw.ml" +# 88341 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88400 "src/ocaml/preprocess/parser_raw.ml" +# 88348 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88408 "src/ocaml/preprocess/parser_raw.ml" +# 88356 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88413 "src/ocaml/preprocess/parser_raw.ml" +# 88361 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88423 "src/ocaml/preprocess/parser_raw.ml" +# 88371 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88429 "src/ocaml/preprocess/parser_raw.ml" +# 88377 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88438 "src/ocaml/preprocess/parser_raw.ml" +# 88386 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -88442,15 +88390,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88448 "src/ocaml/preprocess/parser_raw.ml" +# 88396 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88454 "src/ocaml/preprocess/parser_raw.ml" +# 88402 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88529,8 +88477,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88543,38 +88490,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88549 "src/ocaml/preprocess/parser_raw.ml" +# 88496 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88556 "src/ocaml/preprocess/parser_raw.ml" +# 88503 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88561 "src/ocaml/preprocess/parser_raw.ml" +# 88508 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88571 "src/ocaml/preprocess/parser_raw.ml" +# 88518 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88578 "src/ocaml/preprocess/parser_raw.ml" +# 88525 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -88586,24 +88533,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88590 "src/ocaml/preprocess/parser_raw.ml" +# 88537 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88595 "src/ocaml/preprocess/parser_raw.ml" +# 88542 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88601 "src/ocaml/preprocess/parser_raw.ml" +# 88548 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 88607 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 88554 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88611,60 +88558,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 88617 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 88564 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88623 "src/ocaml/preprocess/parser_raw.ml" +# 88570 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88630 "src/ocaml/preprocess/parser_raw.ml" +# 88577 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88638 "src/ocaml/preprocess/parser_raw.ml" +# 88585 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88643 "src/ocaml/preprocess/parser_raw.ml" +# 88590 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88653 "src/ocaml/preprocess/parser_raw.ml" +# 88600 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88659 "src/ocaml/preprocess/parser_raw.ml" +# 88606 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88668 "src/ocaml/preprocess/parser_raw.ml" +# 88615 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -88672,15 +88619,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88678 "src/ocaml/preprocess/parser_raw.ml" +# 88625 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88684 "src/ocaml/preprocess/parser_raw.ml" +# 88631 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88752,8 +88699,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88763,32 +88709,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88769 "src/ocaml/preprocess/parser_raw.ml" +# 88715 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88774 "src/ocaml/preprocess/parser_raw.ml" +# 88720 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88783 "src/ocaml/preprocess/parser_raw.ml" +# 88729 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88792 "src/ocaml/preprocess/parser_raw.ml" +# 88738 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -88801,24 +88747,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 88805 "src/ocaml/preprocess/parser_raw.ml" +# 88751 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 88810 "src/ocaml/preprocess/parser_raw.ml" +# 88756 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88816 "src/ocaml/preprocess/parser_raw.ml" +# 88762 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 88822 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 88768 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88826,60 +88772,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 88832 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 88778 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88838 "src/ocaml/preprocess/parser_raw.ml" +# 88784 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 88845 "src/ocaml/preprocess/parser_raw.ml" +# 88791 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88853 "src/ocaml/preprocess/parser_raw.ml" +# 88799 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88858 "src/ocaml/preprocess/parser_raw.ml" +# 88804 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 88868 "src/ocaml/preprocess/parser_raw.ml" +# 88814 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 88874 "src/ocaml/preprocess/parser_raw.ml" +# 88820 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 88883 "src/ocaml/preprocess/parser_raw.ml" +# 88829 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -88887,15 +88833,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 88893 "src/ocaml/preprocess/parser_raw.ml" +# 88839 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88899 "src/ocaml/preprocess/parser_raw.ml" +# 88845 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88974,8 +88920,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88986,32 +88931,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 88992 "src/ocaml/preprocess/parser_raw.ml" +# 88937 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 88997 "src/ocaml/preprocess/parser_raw.ml" +# 88942 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89006 "src/ocaml/preprocess/parser_raw.ml" +# 88951 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89015 "src/ocaml/preprocess/parser_raw.ml" +# 88960 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -89024,24 +88969,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 89028 "src/ocaml/preprocess/parser_raw.ml" +# 88973 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 89033 "src/ocaml/preprocess/parser_raw.ml" +# 88978 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89039 "src/ocaml/preprocess/parser_raw.ml" +# 88984 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 89045 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 88990 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -89049,60 +88994,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 89055 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 89000 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89061 "src/ocaml/preprocess/parser_raw.ml" +# 89006 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89068 "src/ocaml/preprocess/parser_raw.ml" +# 89013 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89076 "src/ocaml/preprocess/parser_raw.ml" +# 89021 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89081 "src/ocaml/preprocess/parser_raw.ml" +# 89026 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89091 "src/ocaml/preprocess/parser_raw.ml" +# 89036 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89097 "src/ocaml/preprocess/parser_raw.ml" +# 89042 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89106 "src/ocaml/preprocess/parser_raw.ml" +# 89051 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -89110,15 +89055,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89116 "src/ocaml/preprocess/parser_raw.ml" +# 89061 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89122 "src/ocaml/preprocess/parser_raw.ml" +# 89067 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89197,8 +89142,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -89209,39 +89153,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89215 "src/ocaml/preprocess/parser_raw.ml" +# 89159 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89221 "src/ocaml/preprocess/parser_raw.ml" +# 89165 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89226 "src/ocaml/preprocess/parser_raw.ml" +# 89170 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89236 "src/ocaml/preprocess/parser_raw.ml" +# 89180 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89245 "src/ocaml/preprocess/parser_raw.ml" +# 89189 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -89254,24 +89198,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 89258 "src/ocaml/preprocess/parser_raw.ml" +# 89202 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 89263 "src/ocaml/preprocess/parser_raw.ml" +# 89207 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89269 "src/ocaml/preprocess/parser_raw.ml" +# 89213 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 89275 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 89219 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -89279,60 +89223,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 89285 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 89229 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89291 "src/ocaml/preprocess/parser_raw.ml" +# 89235 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89298 "src/ocaml/preprocess/parser_raw.ml" +# 89242 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89306 "src/ocaml/preprocess/parser_raw.ml" +# 89250 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89311 "src/ocaml/preprocess/parser_raw.ml" +# 89255 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89321 "src/ocaml/preprocess/parser_raw.ml" +# 89265 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89327 "src/ocaml/preprocess/parser_raw.ml" +# 89271 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89336 "src/ocaml/preprocess/parser_raw.ml" +# 89280 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -89340,15 +89284,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89346 "src/ocaml/preprocess/parser_raw.ml" +# 89290 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89352 "src/ocaml/preprocess/parser_raw.ml" +# 89296 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89434,8 +89378,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) = Obj.magic xs in + let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -89448,40 +89391,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89454 "src/ocaml/preprocess/parser_raw.ml" +# 89397 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89461 "src/ocaml/preprocess/parser_raw.ml" +# 89404 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89466 "src/ocaml/preprocess/parser_raw.ml" +# 89409 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89476 "src/ocaml/preprocess/parser_raw.ml" +# 89419 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89485 "src/ocaml/preprocess/parser_raw.ml" +# 89428 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -89494,24 +89437,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 89498 "src/ocaml/preprocess/parser_raw.ml" +# 89441 "src/ocaml/preprocess/parser_raw.ml" in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 89503 "src/ocaml/preprocess/parser_raw.ml" +# 89446 "src/ocaml/preprocess/parser_raw.ml" in -# 4383 "src/ocaml/preprocess/parser_raw.mly" +# 4404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89509 "src/ocaml/preprocess/parser_raw.ml" +# 89452 "src/ocaml/preprocess/parser_raw.ml" in -# 4625 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.Ltyp_poly { bound_vars; inner_type } ) -# 89515 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_poly (bound_vars, inner_type) ) +# 89458 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -89519,60 +89462,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1304 "src/ocaml/preprocess/parser_raw.mly" - ( Jane_syntax.Layouts.type_of ~loc:(make_loc _sloc) _1 ) -# 89525 "src/ocaml/preprocess/parser_raw.ml" +# 1321 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 89468 "src/ocaml/preprocess/parser_raw.ml" in -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4646 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89531 "src/ocaml/preprocess/parser_raw.ml" +# 89474 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89538 "src/ocaml/preprocess/parser_raw.ml" +# 89481 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89546 "src/ocaml/preprocess/parser_raw.ml" +# 89489 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89551 "src/ocaml/preprocess/parser_raw.ml" +# 89494 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89561 "src/ocaml/preprocess/parser_raw.ml" +# 89504 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89567 "src/ocaml/preprocess/parser_raw.ml" +# 89510 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89576 "src/ocaml/preprocess/parser_raw.ml" +# 89519 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -89580,15 +89523,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89586 "src/ocaml/preprocess/parser_raw.ml" +# 89529 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89592 "src/ocaml/preprocess/parser_raw.ml" +# 89535 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89636,79 +89579,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89642 "src/ocaml/preprocess/parser_raw.ml" +# 89585 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89647 "src/ocaml/preprocess/parser_raw.ml" +# 89590 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89656 "src/ocaml/preprocess/parser_raw.ml" +# 89599 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89663 "src/ocaml/preprocess/parser_raw.ml" +# 89606 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89669 "src/ocaml/preprocess/parser_raw.ml" +# 89612 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89675 "src/ocaml/preprocess/parser_raw.ml" +# 89618 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89682 "src/ocaml/preprocess/parser_raw.ml" +# 89625 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89687 "src/ocaml/preprocess/parser_raw.ml" +# 89630 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89697 "src/ocaml/preprocess/parser_raw.ml" +# 89640 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89703 "src/ocaml/preprocess/parser_raw.ml" +# 89646 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89712 "src/ocaml/preprocess/parser_raw.ml" +# 89655 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -89716,15 +89659,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89722 "src/ocaml/preprocess/parser_raw.ml" +# 89665 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89728 "src/ocaml/preprocess/parser_raw.ml" +# 89671 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89779,79 +89722,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89785 "src/ocaml/preprocess/parser_raw.ml" +# 89728 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89790 "src/ocaml/preprocess/parser_raw.ml" +# 89733 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89799 "src/ocaml/preprocess/parser_raw.ml" +# 89742 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89806 "src/ocaml/preprocess/parser_raw.ml" +# 89749 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89812 "src/ocaml/preprocess/parser_raw.ml" +# 89755 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89818 "src/ocaml/preprocess/parser_raw.ml" +# 89761 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89825 "src/ocaml/preprocess/parser_raw.ml" +# 89768 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89830 "src/ocaml/preprocess/parser_raw.ml" +# 89773 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89840 "src/ocaml/preprocess/parser_raw.ml" +# 89783 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89846 "src/ocaml/preprocess/parser_raw.ml" +# 89789 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 89855 "src/ocaml/preprocess/parser_raw.ml" +# 89798 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -89859,15 +89802,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 89865 "src/ocaml/preprocess/parser_raw.ml" +# 89808 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89871 "src/ocaml/preprocess/parser_raw.ml" +# 89814 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89922,86 +89865,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89928 "src/ocaml/preprocess/parser_raw.ml" +# 89871 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89934 "src/ocaml/preprocess/parser_raw.ml" +# 89877 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89939 "src/ocaml/preprocess/parser_raw.ml" +# 89882 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89949 "src/ocaml/preprocess/parser_raw.ml" +# 89892 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 89956 "src/ocaml/preprocess/parser_raw.ml" +# 89899 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 89962 "src/ocaml/preprocess/parser_raw.ml" +# 89905 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 89968 "src/ocaml/preprocess/parser_raw.ml" +# 89911 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89975 "src/ocaml/preprocess/parser_raw.ml" +# 89918 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 89980 "src/ocaml/preprocess/parser_raw.ml" +# 89923 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 89990 "src/ocaml/preprocess/parser_raw.ml" +# 89933 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 89996 "src/ocaml/preprocess/parser_raw.ml" +# 89939 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90005 "src/ocaml/preprocess/parser_raw.ml" +# 89948 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -90009,15 +89952,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90015 "src/ocaml/preprocess/parser_raw.ml" +# 89958 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90021 "src/ocaml/preprocess/parser_raw.ml" +# 89964 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90081,87 +90024,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90087 "src/ocaml/preprocess/parser_raw.ml" +# 90030 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90094 "src/ocaml/preprocess/parser_raw.ml" +# 90037 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90099 "src/ocaml/preprocess/parser_raw.ml" +# 90042 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90109 "src/ocaml/preprocess/parser_raw.ml" +# 90052 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90116 "src/ocaml/preprocess/parser_raw.ml" +# 90059 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 90122 "src/ocaml/preprocess/parser_raw.ml" +# 90065 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90128 "src/ocaml/preprocess/parser_raw.ml" +# 90071 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90135 "src/ocaml/preprocess/parser_raw.ml" +# 90078 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90140 "src/ocaml/preprocess/parser_raw.ml" +# 90083 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90150 "src/ocaml/preprocess/parser_raw.ml" +# 90093 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90156 "src/ocaml/preprocess/parser_raw.ml" +# 90099 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90165 "src/ocaml/preprocess/parser_raw.ml" +# 90108 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -90169,15 +90112,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90175 "src/ocaml/preprocess/parser_raw.ml" +# 90118 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90181 "src/ocaml/preprocess/parser_raw.ml" +# 90124 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90232,82 +90175,82 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90238 "src/ocaml/preprocess/parser_raw.ml" +# 90181 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90243 "src/ocaml/preprocess/parser_raw.ml" +# 90186 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90252 "src/ocaml/preprocess/parser_raw.ml" +# 90195 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90261 "src/ocaml/preprocess/parser_raw.ml" +# 90204 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 90268 "src/ocaml/preprocess/parser_raw.ml" +# 90211 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90274 "src/ocaml/preprocess/parser_raw.ml" +# 90217 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90281 "src/ocaml/preprocess/parser_raw.ml" +# 90224 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90286 "src/ocaml/preprocess/parser_raw.ml" +# 90229 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90296 "src/ocaml/preprocess/parser_raw.ml" +# 90239 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90302 "src/ocaml/preprocess/parser_raw.ml" +# 90245 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90311 "src/ocaml/preprocess/parser_raw.ml" +# 90254 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -90315,15 +90258,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90321 "src/ocaml/preprocess/parser_raw.ml" +# 90264 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90327 "src/ocaml/preprocess/parser_raw.ml" +# 90270 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90385,82 +90328,82 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90391 "src/ocaml/preprocess/parser_raw.ml" +# 90334 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90396 "src/ocaml/preprocess/parser_raw.ml" +# 90339 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90405 "src/ocaml/preprocess/parser_raw.ml" +# 90348 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90414 "src/ocaml/preprocess/parser_raw.ml" +# 90357 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 90421 "src/ocaml/preprocess/parser_raw.ml" +# 90364 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90427 "src/ocaml/preprocess/parser_raw.ml" +# 90370 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90434 "src/ocaml/preprocess/parser_raw.ml" +# 90377 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90439 "src/ocaml/preprocess/parser_raw.ml" +# 90382 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90449 "src/ocaml/preprocess/parser_raw.ml" +# 90392 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90455 "src/ocaml/preprocess/parser_raw.ml" +# 90398 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90464 "src/ocaml/preprocess/parser_raw.ml" +# 90407 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -90468,15 +90411,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90474 "src/ocaml/preprocess/parser_raw.ml" +# 90417 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90480 "src/ocaml/preprocess/parser_raw.ml" +# 90423 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90538,89 +90481,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90544 "src/ocaml/preprocess/parser_raw.ml" +# 90487 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90550 "src/ocaml/preprocess/parser_raw.ml" +# 90493 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90555 "src/ocaml/preprocess/parser_raw.ml" +# 90498 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90565 "src/ocaml/preprocess/parser_raw.ml" +# 90508 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90574 "src/ocaml/preprocess/parser_raw.ml" +# 90517 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 90581 "src/ocaml/preprocess/parser_raw.ml" +# 90524 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90587 "src/ocaml/preprocess/parser_raw.ml" +# 90530 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90594 "src/ocaml/preprocess/parser_raw.ml" +# 90537 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90599 "src/ocaml/preprocess/parser_raw.ml" +# 90542 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90609 "src/ocaml/preprocess/parser_raw.ml" +# 90552 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90615 "src/ocaml/preprocess/parser_raw.ml" +# 90558 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90624 "src/ocaml/preprocess/parser_raw.ml" +# 90567 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -90628,15 +90571,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90634 "src/ocaml/preprocess/parser_raw.ml" +# 90577 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90640 "src/ocaml/preprocess/parser_raw.ml" +# 90583 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90707,90 +90650,90 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90713 "src/ocaml/preprocess/parser_raw.ml" +# 90656 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90720 "src/ocaml/preprocess/parser_raw.ml" +# 90663 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90725 "src/ocaml/preprocess/parser_raw.ml" +# 90668 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90735 "src/ocaml/preprocess/parser_raw.ml" +# 90678 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90744 "src/ocaml/preprocess/parser_raw.ml" +# 90687 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 90751 "src/ocaml/preprocess/parser_raw.ml" +# 90694 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1238 "src/ocaml/preprocess/parser_raw.mly" +# 1282 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90757 "src/ocaml/preprocess/parser_raw.ml" +# 90700 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90764 "src/ocaml/preprocess/parser_raw.ml" +# 90707 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90769 "src/ocaml/preprocess/parser_raw.ml" +# 90712 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90779 "src/ocaml/preprocess/parser_raw.ml" +# 90722 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4550 "src/ocaml/preprocess/parser_raw.mly" +# 4569 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 90785 "src/ocaml/preprocess/parser_raw.ml" +# 90728 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4499 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 90794 "src/ocaml/preprocess/parser_raw.ml" +# 90737 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -90798,15 +90741,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90804 "src/ocaml/preprocess/parser_raw.ml" +# 90747 "src/ocaml/preprocess/parser_raw.ml" in -# 4486 "src/ocaml/preprocess/parser_raw.mly" +# 4505 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90810 "src/ocaml/preprocess/parser_raw.ml" +# 90753 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90867,9 +90810,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 90873 "src/ocaml/preprocess/parser_raw.ml" +# 90816 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -90878,47 +90821,47 @@ module Tables = struct let _1 = let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90884 "src/ocaml/preprocess/parser_raw.ml" +# 90827 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 90891 "src/ocaml/preprocess/parser_raw.ml" +# 90834 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90896 "src/ocaml/preprocess/parser_raw.ml" +# 90839 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 90902 "src/ocaml/preprocess/parser_raw.ml" +# 90845 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90909 "src/ocaml/preprocess/parser_raw.ml" +# 90852 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90918 "src/ocaml/preprocess/parser_raw.ml" +# 90861 "src/ocaml/preprocess/parser_raw.ml" in -# 4504 "src/ocaml/preprocess/parser_raw.mly" +# 4523 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -90926,7 +90869,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 90930 "src/ocaml/preprocess/parser_raw.ml" +# 90873 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -90934,15 +90877,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90940 "src/ocaml/preprocess/parser_raw.ml" +# 90883 "src/ocaml/preprocess/parser_raw.ml" in -# 4512 "src/ocaml/preprocess/parser_raw.mly" +# 4531 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90946 "src/ocaml/preprocess/parser_raw.ml" +# 90889 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91010,9 +90953,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 91016 "src/ocaml/preprocess/parser_raw.ml" +# 90959 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -91021,47 +90964,47 @@ module Tables = struct let _1 = let tuple_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91027 "src/ocaml/preprocess/parser_raw.ml" +# 90970 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 91034 "src/ocaml/preprocess/parser_raw.ml" +# 90977 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91039 "src/ocaml/preprocess/parser_raw.ml" +# 90982 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 91045 "src/ocaml/preprocess/parser_raw.ml" +# 90988 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91052 "src/ocaml/preprocess/parser_raw.ml" +# 90995 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91061 "src/ocaml/preprocess/parser_raw.ml" +# 91004 "src/ocaml/preprocess/parser_raw.ml" in -# 4504 "src/ocaml/preprocess/parser_raw.mly" +# 4523 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -91069,7 +91012,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 91073 "src/ocaml/preprocess/parser_raw.ml" +# 91016 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91077,15 +91020,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91083 "src/ocaml/preprocess/parser_raw.ml" +# 91026 "src/ocaml/preprocess/parser_raw.ml" in -# 4512 "src/ocaml/preprocess/parser_raw.mly" +# 4531 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91089 "src/ocaml/preprocess/parser_raw.ml" +# 91032 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91153,9 +91096,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 91159 "src/ocaml/preprocess/parser_raw.ml" +# 91102 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -91164,54 +91107,54 @@ module Tables = struct let _1 = let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91170 "src/ocaml/preprocess/parser_raw.ml" +# 91113 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 91177 "src/ocaml/preprocess/parser_raw.ml" +# 91120 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91182 "src/ocaml/preprocess/parser_raw.ml" +# 91125 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 91188 "src/ocaml/preprocess/parser_raw.ml" +# 91131 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91196 "src/ocaml/preprocess/parser_raw.ml" +# 91139 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91201 "src/ocaml/preprocess/parser_raw.ml" +# 91144 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91211 "src/ocaml/preprocess/parser_raw.ml" +# 91154 "src/ocaml/preprocess/parser_raw.ml" in -# 4504 "src/ocaml/preprocess/parser_raw.mly" +# 4523 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -91219,7 +91162,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 91223 "src/ocaml/preprocess/parser_raw.ml" +# 91166 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91227,15 +91170,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91233 "src/ocaml/preprocess/parser_raw.ml" +# 91176 "src/ocaml/preprocess/parser_raw.ml" in -# 4512 "src/ocaml/preprocess/parser_raw.mly" +# 4531 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91239 "src/ocaml/preprocess/parser_raw.ml" +# 91182 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91310,9 +91253,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 91316 "src/ocaml/preprocess/parser_raw.ml" +# 91259 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -91323,9 +91266,9 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91329 "src/ocaml/preprocess/parser_raw.ml" +# 91272 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -91333,45 +91276,45 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 91337 "src/ocaml/preprocess/parser_raw.ml" +# 91280 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91342 "src/ocaml/preprocess/parser_raw.ml" +# 91285 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 91348 "src/ocaml/preprocess/parser_raw.ml" +# 91291 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91356 "src/ocaml/preprocess/parser_raw.ml" +# 91299 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91361 "src/ocaml/preprocess/parser_raw.ml" +# 91304 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91371 "src/ocaml/preprocess/parser_raw.ml" +# 91314 "src/ocaml/preprocess/parser_raw.ml" in -# 4504 "src/ocaml/preprocess/parser_raw.mly" +# 4523 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -91379,7 +91322,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 91383 "src/ocaml/preprocess/parser_raw.ml" +# 91326 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91387,15 +91330,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91393 "src/ocaml/preprocess/parser_raw.ml" +# 91336 "src/ocaml/preprocess/parser_raw.ml" in -# 4512 "src/ocaml/preprocess/parser_raw.mly" +# 4531 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91399 "src/ocaml/preprocess/parser_raw.ml" +# 91342 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91456,9 +91399,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 91462 "src/ocaml/preprocess/parser_raw.ml" +# 91405 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -91468,68 +91411,68 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91474 "src/ocaml/preprocess/parser_raw.ml" +# 91417 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91479 "src/ocaml/preprocess/parser_raw.ml" +# 91422 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91488 "src/ocaml/preprocess/parser_raw.ml" +# 91431 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91495 "src/ocaml/preprocess/parser_raw.ml" +# 91438 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 91502 "src/ocaml/preprocess/parser_raw.ml" +# 91445 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91507 "src/ocaml/preprocess/parser_raw.ml" +# 91450 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 91513 "src/ocaml/preprocess/parser_raw.ml" +# 91456 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91520 "src/ocaml/preprocess/parser_raw.ml" +# 91463 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91529 "src/ocaml/preprocess/parser_raw.ml" +# 91472 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -91542,7 +91485,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 91546 "src/ocaml/preprocess/parser_raw.ml" +# 91489 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -91550,15 +91493,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91556 "src/ocaml/preprocess/parser_raw.ml" +# 91499 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91562 "src/ocaml/preprocess/parser_raw.ml" +# 91505 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91626,9 +91569,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 91632 "src/ocaml/preprocess/parser_raw.ml" +# 91575 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -91638,68 +91581,68 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91644 "src/ocaml/preprocess/parser_raw.ml" +# 91587 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91649 "src/ocaml/preprocess/parser_raw.ml" +# 91592 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91658 "src/ocaml/preprocess/parser_raw.ml" +# 91601 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91665 "src/ocaml/preprocess/parser_raw.ml" +# 91608 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 91672 "src/ocaml/preprocess/parser_raw.ml" +# 91615 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91677 "src/ocaml/preprocess/parser_raw.ml" +# 91620 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 91683 "src/ocaml/preprocess/parser_raw.ml" +# 91626 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91690 "src/ocaml/preprocess/parser_raw.ml" +# 91633 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91699 "src/ocaml/preprocess/parser_raw.ml" +# 91642 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -91712,7 +91655,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 91716 "src/ocaml/preprocess/parser_raw.ml" +# 91659 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -91720,15 +91663,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91726 "src/ocaml/preprocess/parser_raw.ml" +# 91669 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91732 "src/ocaml/preprocess/parser_raw.ml" +# 91675 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91796,9 +91739,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 91802 "src/ocaml/preprocess/parser_raw.ml" +# 91745 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -91808,75 +91751,75 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91814 "src/ocaml/preprocess/parser_raw.ml" +# 91757 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91820 "src/ocaml/preprocess/parser_raw.ml" +# 91763 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91825 "src/ocaml/preprocess/parser_raw.ml" +# 91768 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91835 "src/ocaml/preprocess/parser_raw.ml" +# 91778 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91842 "src/ocaml/preprocess/parser_raw.ml" +# 91785 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 91849 "src/ocaml/preprocess/parser_raw.ml" +# 91792 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91854 "src/ocaml/preprocess/parser_raw.ml" +# 91797 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 91860 "src/ocaml/preprocess/parser_raw.ml" +# 91803 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91867 "src/ocaml/preprocess/parser_raw.ml" +# 91810 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91876 "src/ocaml/preprocess/parser_raw.ml" +# 91819 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -91889,7 +91832,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 91893 "src/ocaml/preprocess/parser_raw.ml" +# 91836 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -91897,15 +91840,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91903 "src/ocaml/preprocess/parser_raw.ml" +# 91846 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91909 "src/ocaml/preprocess/parser_raw.ml" +# 91852 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -91980,9 +91923,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 91986 "src/ocaml/preprocess/parser_raw.ml" +# 91929 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -91994,76 +91937,76 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92000 "src/ocaml/preprocess/parser_raw.ml" +# 91943 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92007 "src/ocaml/preprocess/parser_raw.ml" +# 91950 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92012 "src/ocaml/preprocess/parser_raw.ml" +# 91955 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92022 "src/ocaml/preprocess/parser_raw.ml" +# 91965 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92029 "src/ocaml/preprocess/parser_raw.ml" +# 91972 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 92036 "src/ocaml/preprocess/parser_raw.ml" +# 91979 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92041 "src/ocaml/preprocess/parser_raw.ml" +# 91984 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 92047 "src/ocaml/preprocess/parser_raw.ml" +# 91990 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92054 "src/ocaml/preprocess/parser_raw.ml" +# 91997 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92063 "src/ocaml/preprocess/parser_raw.ml" +# 92006 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -92076,7 +92019,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 92080 "src/ocaml/preprocess/parser_raw.ml" +# 92023 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -92084,15 +92027,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92090 "src/ocaml/preprocess/parser_raw.ml" +# 92033 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92096 "src/ocaml/preprocess/parser_raw.ml" +# 92039 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92160,9 +92103,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92166 "src/ocaml/preprocess/parser_raw.ml" +# 92109 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92172,68 +92115,68 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92178 "src/ocaml/preprocess/parser_raw.ml" +# 92121 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92183 "src/ocaml/preprocess/parser_raw.ml" +# 92126 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92192 "src/ocaml/preprocess/parser_raw.ml" +# 92135 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92199 "src/ocaml/preprocess/parser_raw.ml" +# 92142 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 92206 "src/ocaml/preprocess/parser_raw.ml" +# 92149 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92211 "src/ocaml/preprocess/parser_raw.ml" +# 92154 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 92217 "src/ocaml/preprocess/parser_raw.ml" +# 92160 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92224 "src/ocaml/preprocess/parser_raw.ml" +# 92167 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92233 "src/ocaml/preprocess/parser_raw.ml" +# 92176 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -92246,7 +92189,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 92250 "src/ocaml/preprocess/parser_raw.ml" +# 92193 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -92254,15 +92197,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92260 "src/ocaml/preprocess/parser_raw.ml" +# 92203 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92266 "src/ocaml/preprocess/parser_raw.ml" +# 92209 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92337,9 +92280,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92343 "src/ocaml/preprocess/parser_raw.ml" +# 92286 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92349,68 +92292,68 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92355 "src/ocaml/preprocess/parser_raw.ml" +# 92298 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92360 "src/ocaml/preprocess/parser_raw.ml" +# 92303 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92369 "src/ocaml/preprocess/parser_raw.ml" +# 92312 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92376 "src/ocaml/preprocess/parser_raw.ml" +# 92319 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 92383 "src/ocaml/preprocess/parser_raw.ml" +# 92326 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92388 "src/ocaml/preprocess/parser_raw.ml" +# 92331 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 92394 "src/ocaml/preprocess/parser_raw.ml" +# 92337 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92401 "src/ocaml/preprocess/parser_raw.ml" +# 92344 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92410 "src/ocaml/preprocess/parser_raw.ml" +# 92353 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -92423,7 +92366,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 92427 "src/ocaml/preprocess/parser_raw.ml" +# 92370 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -92431,15 +92374,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92437 "src/ocaml/preprocess/parser_raw.ml" +# 92380 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92443 "src/ocaml/preprocess/parser_raw.ml" +# 92386 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92514,9 +92457,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92520 "src/ocaml/preprocess/parser_raw.ml" +# 92463 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92526,75 +92469,75 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92532 "src/ocaml/preprocess/parser_raw.ml" +# 92475 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92538 "src/ocaml/preprocess/parser_raw.ml" +# 92481 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92543 "src/ocaml/preprocess/parser_raw.ml" +# 92486 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92553 "src/ocaml/preprocess/parser_raw.ml" +# 92496 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92560 "src/ocaml/preprocess/parser_raw.ml" +# 92503 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 92567 "src/ocaml/preprocess/parser_raw.ml" +# 92510 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92572 "src/ocaml/preprocess/parser_raw.ml" +# 92515 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 92578 "src/ocaml/preprocess/parser_raw.ml" +# 92521 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92585 "src/ocaml/preprocess/parser_raw.ml" +# 92528 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92594 "src/ocaml/preprocess/parser_raw.ml" +# 92537 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -92607,7 +92550,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 92611 "src/ocaml/preprocess/parser_raw.ml" +# 92554 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -92615,15 +92558,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92621 "src/ocaml/preprocess/parser_raw.ml" +# 92564 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92627 "src/ocaml/preprocess/parser_raw.ml" +# 92570 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92705,9 +92648,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92711 "src/ocaml/preprocess/parser_raw.ml" +# 92654 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92719,76 +92662,76 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92725 "src/ocaml/preprocess/parser_raw.ml" +# 92668 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92732 "src/ocaml/preprocess/parser_raw.ml" +# 92675 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92737 "src/ocaml/preprocess/parser_raw.ml" +# 92680 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92747 "src/ocaml/preprocess/parser_raw.ml" +# 92690 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92754 "src/ocaml/preprocess/parser_raw.ml" +# 92697 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 92761 "src/ocaml/preprocess/parser_raw.ml" +# 92704 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92766 "src/ocaml/preprocess/parser_raw.ml" +# 92709 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 92772 "src/ocaml/preprocess/parser_raw.ml" +# 92715 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92779 "src/ocaml/preprocess/parser_raw.ml" +# 92722 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92788 "src/ocaml/preprocess/parser_raw.ml" +# 92731 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -92801,7 +92744,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 92805 "src/ocaml/preprocess/parser_raw.ml" +# 92748 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -92809,15 +92752,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92815 "src/ocaml/preprocess/parser_raw.ml" +# 92758 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92821 "src/ocaml/preprocess/parser_raw.ml" +# 92764 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -92885,9 +92828,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92891 "src/ocaml/preprocess/parser_raw.ml" +# 92834 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92897,75 +92840,75 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92903 "src/ocaml/preprocess/parser_raw.ml" +# 92846 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92908 "src/ocaml/preprocess/parser_raw.ml" +# 92851 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92917 "src/ocaml/preprocess/parser_raw.ml" +# 92860 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92924 "src/ocaml/preprocess/parser_raw.ml" +# 92867 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 92931 "src/ocaml/preprocess/parser_raw.ml" +# 92874 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92936 "src/ocaml/preprocess/parser_raw.ml" +# 92879 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 92942 "src/ocaml/preprocess/parser_raw.ml" +# 92885 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92950 "src/ocaml/preprocess/parser_raw.ml" +# 92893 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92955 "src/ocaml/preprocess/parser_raw.ml" +# 92898 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92965 "src/ocaml/preprocess/parser_raw.ml" +# 92908 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -92978,7 +92921,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 92982 "src/ocaml/preprocess/parser_raw.ml" +# 92925 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -92986,15 +92929,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92992 "src/ocaml/preprocess/parser_raw.ml" +# 92935 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92998 "src/ocaml/preprocess/parser_raw.ml" +# 92941 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93069,9 +93012,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93075 "src/ocaml/preprocess/parser_raw.ml" +# 93018 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93081,75 +93024,75 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93087 "src/ocaml/preprocess/parser_raw.ml" +# 93030 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93092 "src/ocaml/preprocess/parser_raw.ml" +# 93035 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93101 "src/ocaml/preprocess/parser_raw.ml" +# 93044 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93108 "src/ocaml/preprocess/parser_raw.ml" +# 93051 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 93115 "src/ocaml/preprocess/parser_raw.ml" +# 93058 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93120 "src/ocaml/preprocess/parser_raw.ml" +# 93063 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93126 "src/ocaml/preprocess/parser_raw.ml" +# 93069 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93134 "src/ocaml/preprocess/parser_raw.ml" +# 93077 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93139 "src/ocaml/preprocess/parser_raw.ml" +# 93082 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93149 "src/ocaml/preprocess/parser_raw.ml" +# 93092 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -93162,7 +93105,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 93166 "src/ocaml/preprocess/parser_raw.ml" +# 93109 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -93170,15 +93113,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93176 "src/ocaml/preprocess/parser_raw.ml" +# 93119 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93182 "src/ocaml/preprocess/parser_raw.ml" +# 93125 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93253,9 +93196,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93259 "src/ocaml/preprocess/parser_raw.ml" +# 93202 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93265,82 +93208,82 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93271 "src/ocaml/preprocess/parser_raw.ml" +# 93214 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93277 "src/ocaml/preprocess/parser_raw.ml" +# 93220 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93282 "src/ocaml/preprocess/parser_raw.ml" +# 93225 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93292 "src/ocaml/preprocess/parser_raw.ml" +# 93235 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93299 "src/ocaml/preprocess/parser_raw.ml" +# 93242 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 93306 "src/ocaml/preprocess/parser_raw.ml" +# 93249 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93311 "src/ocaml/preprocess/parser_raw.ml" +# 93254 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93317 "src/ocaml/preprocess/parser_raw.ml" +# 93260 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93325 "src/ocaml/preprocess/parser_raw.ml" +# 93268 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93330 "src/ocaml/preprocess/parser_raw.ml" +# 93273 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93340 "src/ocaml/preprocess/parser_raw.ml" +# 93283 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -93353,7 +93296,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 93357 "src/ocaml/preprocess/parser_raw.ml" +# 93300 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -93361,15 +93304,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93367 "src/ocaml/preprocess/parser_raw.ml" +# 93310 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93373 "src/ocaml/preprocess/parser_raw.ml" +# 93316 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93451,9 +93394,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93457 "src/ocaml/preprocess/parser_raw.ml" +# 93400 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93465,83 +93408,83 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93471 "src/ocaml/preprocess/parser_raw.ml" +# 93414 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93478 "src/ocaml/preprocess/parser_raw.ml" +# 93421 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93483 "src/ocaml/preprocess/parser_raw.ml" +# 93426 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93493 "src/ocaml/preprocess/parser_raw.ml" +# 93436 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93500 "src/ocaml/preprocess/parser_raw.ml" +# 93443 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 253 "" ( List.rev xs ) -# 93507 "src/ocaml/preprocess/parser_raw.ml" +# 93450 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93512 "src/ocaml/preprocess/parser_raw.ml" +# 93455 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93518 "src/ocaml/preprocess/parser_raw.ml" +# 93461 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93526 "src/ocaml/preprocess/parser_raw.ml" +# 93469 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93531 "src/ocaml/preprocess/parser_raw.ml" +# 93474 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93541 "src/ocaml/preprocess/parser_raw.ml" +# 93484 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -93554,7 +93497,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 93558 "src/ocaml/preprocess/parser_raw.ml" +# 93501 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -93562,15 +93505,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93568 "src/ocaml/preprocess/parser_raw.ml" +# 93511 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93574 "src/ocaml/preprocess/parser_raw.ml" +# 93517 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93645,9 +93588,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93651 "src/ocaml/preprocess/parser_raw.ml" +# 93594 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93657,32 +93600,32 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93663 "src/ocaml/preprocess/parser_raw.ml" +# 93606 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93668 "src/ocaml/preprocess/parser_raw.ml" +# 93611 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93677 "src/ocaml/preprocess/parser_raw.ml" +# 93620 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93686 "src/ocaml/preprocess/parser_raw.ml" +# 93629 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -93690,45 +93633,45 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 93694 "src/ocaml/preprocess/parser_raw.ml" +# 93637 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93699 "src/ocaml/preprocess/parser_raw.ml" +# 93642 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93705 "src/ocaml/preprocess/parser_raw.ml" +# 93648 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93713 "src/ocaml/preprocess/parser_raw.ml" +# 93656 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93718 "src/ocaml/preprocess/parser_raw.ml" +# 93661 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93728 "src/ocaml/preprocess/parser_raw.ml" +# 93671 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -93741,7 +93684,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 93745 "src/ocaml/preprocess/parser_raw.ml" +# 93688 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -93749,15 +93692,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93755 "src/ocaml/preprocess/parser_raw.ml" +# 93698 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93761 "src/ocaml/preprocess/parser_raw.ml" +# 93704 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -93839,9 +93782,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93845 "src/ocaml/preprocess/parser_raw.ml" +# 93788 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93851,32 +93794,32 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in let m1 = -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93857 "src/ocaml/preprocess/parser_raw.ml" +# 93800 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4567 "src/ocaml/preprocess/parser_raw.mly" +# 4586 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93862 "src/ocaml/preprocess/parser_raw.ml" +# 93805 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93871 "src/ocaml/preprocess/parser_raw.ml" +# 93814 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93880 "src/ocaml/preprocess/parser_raw.ml" +# 93823 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -93884,45 +93827,45 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 93888 "src/ocaml/preprocess/parser_raw.ml" +# 93831 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93893 "src/ocaml/preprocess/parser_raw.ml" +# 93836 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 93899 "src/ocaml/preprocess/parser_raw.ml" +# 93842 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93907 "src/ocaml/preprocess/parser_raw.ml" +# 93850 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93912 "src/ocaml/preprocess/parser_raw.ml" +# 93855 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93922 "src/ocaml/preprocess/parser_raw.ml" +# 93865 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -93935,7 +93878,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 93939 "src/ocaml/preprocess/parser_raw.ml" +# 93882 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -93943,15 +93886,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93949 "src/ocaml/preprocess/parser_raw.ml" +# 93892 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93955 "src/ocaml/preprocess/parser_raw.ml" +# 93898 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94033,9 +93976,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94039 "src/ocaml/preprocess/parser_raw.ml" +# 93982 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94045,39 +93988,39 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in let m1 = -# 4586 "src/ocaml/preprocess/parser_raw.mly" +# 4605 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94051 "src/ocaml/preprocess/parser_raw.ml" +# 93994 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94057 "src/ocaml/preprocess/parser_raw.ml" +# 94000 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94062 "src/ocaml/preprocess/parser_raw.ml" +# 94005 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94072 "src/ocaml/preprocess/parser_raw.ml" +# 94015 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94081 "src/ocaml/preprocess/parser_raw.ml" +# 94024 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -94085,45 +94028,45 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 94089 "src/ocaml/preprocess/parser_raw.ml" +# 94032 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94094 "src/ocaml/preprocess/parser_raw.ml" +# 94037 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94100 "src/ocaml/preprocess/parser_raw.ml" +# 94043 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94108 "src/ocaml/preprocess/parser_raw.ml" +# 94051 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94113 "src/ocaml/preprocess/parser_raw.ml" +# 94056 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94123 "src/ocaml/preprocess/parser_raw.ml" +# 94066 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -94136,7 +94079,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 94140 "src/ocaml/preprocess/parser_raw.ml" +# 94083 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -94144,15 +94087,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94150 "src/ocaml/preprocess/parser_raw.ml" +# 94093 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94156 "src/ocaml/preprocess/parser_raw.ml" +# 94099 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94241,9 +94184,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94247 "src/ocaml/preprocess/parser_raw.ml" +# 94190 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94255,40 +94198,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94261 "src/ocaml/preprocess/parser_raw.ml" +# 94204 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94268 "src/ocaml/preprocess/parser_raw.ml" +# 94211 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94273 "src/ocaml/preprocess/parser_raw.ml" +# 94216 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94283 "src/ocaml/preprocess/parser_raw.ml" +# 94226 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = let _1 = _1_inlined1 in -# 4587 "src/ocaml/preprocess/parser_raw.mly" +# 4606 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94292 "src/ocaml/preprocess/parser_raw.ml" +# 94235 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -94296,45 +94239,45 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 94300 "src/ocaml/preprocess/parser_raw.ml" +# 94243 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94305 "src/ocaml/preprocess/parser_raw.ml" +# 94248 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94311 "src/ocaml/preprocess/parser_raw.ml" +# 94254 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4563 "src/ocaml/preprocess/parser_raw.mly" +# 4582 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94319 "src/ocaml/preprocess/parser_raw.ml" +# 94262 "src/ocaml/preprocess/parser_raw.ml" in -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94324 "src/ocaml/preprocess/parser_raw.ml" +# 94267 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4591 "src/ocaml/preprocess/parser_raw.mly" +# 4610 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94334 "src/ocaml/preprocess/parser_raw.ml" +# 94277 "src/ocaml/preprocess/parser_raw.ml" in -# 4519 "src/ocaml/preprocess/parser_raw.mly" +# 4538 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -94347,7 +94290,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 94351 "src/ocaml/preprocess/parser_raw.ml" +# 94294 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -94355,15 +94298,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94361 "src/ocaml/preprocess/parser_raw.ml" +# 94304 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4551 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94367 "src/ocaml/preprocess/parser_raw.ml" +# 94310 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94410,9 +94353,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 94416 "src/ocaml/preprocess/parser_raw.ml" +# 94359 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -94422,18 +94365,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 94426 "src/ocaml/preprocess/parser_raw.ml" +# 94369 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94431 "src/ocaml/preprocess/parser_raw.ml" +# 94374 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 94437 "src/ocaml/preprocess/parser_raw.ml" +# 94380 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -94441,11 +94384,11 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 4534 "src/ocaml/preprocess/parser_raw.mly" +# 4553 "src/ocaml/preprocess/parser_raw.mly" ( let ty, ltys = _3 in mktyp ~loc:_sloc (Ptyp_tuple ((Some label, ty) :: ltys)) ) -# 94449 "src/ocaml/preprocess/parser_raw.ml" +# 94392 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94472,39 +94415,39 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 94476 "src/ocaml/preprocess/parser_raw.ml" +# 94419 "src/ocaml/preprocess/parser_raw.ml" in let xs = let items = -# 1313 "src/ocaml/preprocess/parser_raw.mly" +# 1354 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94482 "src/ocaml/preprocess/parser_raw.ml" +# 94425 "src/ocaml/preprocess/parser_raw.ml" in -# 1778 "src/ocaml/preprocess/parser_raw.mly" +# 1824 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 94487 "src/ocaml/preprocess/parser_raw.ml" +# 94430 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 94493 "src/ocaml/preprocess/parser_raw.ml" +# 94436 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1232 "src/ocaml/preprocess/parser_raw.mly" +# 1276 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 94502 "src/ocaml/preprocess/parser_raw.ml" +# 94445 "src/ocaml/preprocess/parser_raw.ml" in -# 1771 "src/ocaml/preprocess/parser_raw.mly" +# 1817 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94508 "src/ocaml/preprocess/parser_raw.ml" +# 94451 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94545,7 +94488,7 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 94549 "src/ocaml/preprocess/parser_raw.ml" +# 94492 "src/ocaml/preprocess/parser_raw.ml" in let xs = let items = @@ -94553,65 +94496,65 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94559 "src/ocaml/preprocess/parser_raw.ml" +# 94502 "src/ocaml/preprocess/parser_raw.ml" in -# 1785 "src/ocaml/preprocess/parser_raw.mly" +# 1831 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 94564 "src/ocaml/preprocess/parser_raw.ml" +# 94507 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1244 "src/ocaml/preprocess/parser_raw.mly" +# 1288 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 94572 "src/ocaml/preprocess/parser_raw.ml" +# 94515 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1263 "src/ocaml/preprocess/parser_raw.mly" +# 1307 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 94582 "src/ocaml/preprocess/parser_raw.ml" +# 94525 "src/ocaml/preprocess/parser_raw.ml" in -# 1315 "src/ocaml/preprocess/parser_raw.mly" +# 1356 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 94588 "src/ocaml/preprocess/parser_raw.ml" +# 94531 "src/ocaml/preprocess/parser_raw.ml" in -# 1778 "src/ocaml/preprocess/parser_raw.mly" +# 1824 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 94594 "src/ocaml/preprocess/parser_raw.ml" +# 94537 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 94600 "src/ocaml/preprocess/parser_raw.ml" +# 94543 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1232 "src/ocaml/preprocess/parser_raw.mly" +# 1276 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 94609 "src/ocaml/preprocess/parser_raw.ml" +# 94552 "src/ocaml/preprocess/parser_raw.ml" in -# 1771 "src/ocaml/preprocess/parser_raw.mly" +# 1817 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94615 "src/ocaml/preprocess/parser_raw.ml" +# 94558 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94637,9 +94580,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1800 "src/ocaml/preprocess/parser_raw.mly" +# 1846 "src/ocaml/preprocess/parser_raw.mly" ( val_of_let_bindings ~loc:_sloc _1 ) -# 94643 "src/ocaml/preprocess/parser_raw.ml" +# 94586 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94673,9 +94616,9 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94679 "src/ocaml/preprocess/parser_raw.ml" +# 94622 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -94683,10 +94626,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1849 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in Pstr_extension (_1, add_docs_attrs docs _2) ) -# 94690 "src/ocaml/preprocess/parser_raw.ml" +# 94633 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -94694,15 +94637,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1279 "src/ocaml/preprocess/parser_raw.mly" +# 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 94700 "src/ocaml/preprocess/parser_raw.ml" +# 94643 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94706 "src/ocaml/preprocess/parser_raw.ml" +# 94649 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94726,23 +94669,65 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1806 "src/ocaml/preprocess/parser_raw.mly" +# 1852 "src/ocaml/preprocess/parser_raw.mly" ( Pstr_attribute _1 ) -# 94732 "src/ocaml/preprocess/parser_raw.ml" +# 94675 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1279 "src/ocaml/preprocess/parser_raw.mly" +# 1323 "src/ocaml/preprocess/parser_raw.mly" + ( mkstr ~loc:_sloc _1 ) +# 94683 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 1881 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 94689 "src/ocaml/preprocess/parser_raw.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (string Asttypes.loc * Parsetree.jkind_annotation) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.structure_item) = let _1 = + let _1 = +# 1854 "src/ocaml/preprocess/parser_raw.mly" + ( let name, jkind = _1 in + Pstr_kind_abbrev (name, jkind) + ) +# 94717 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1323 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 94740 "src/ocaml/preprocess/parser_raw.ml" +# 94725 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94746 "src/ocaml/preprocess/parser_raw.ml" +# 94731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94760,29 +94745,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.value_description * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.value_description * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1810 "src/ocaml/preprocess/parser_raw.mly" +# 1859 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 94772 "src/ocaml/preprocess/parser_raw.ml" +# 94757 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 94780 "src/ocaml/preprocess/parser_raw.ml" +# 94765 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94786 "src/ocaml/preprocess/parser_raw.ml" +# 94771 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94800,29 +94785,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.value_description * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.value_description * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1812 "src/ocaml/preprocess/parser_raw.mly" +# 1861 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 94812 "src/ocaml/preprocess/parser_raw.ml" +# 94797 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 94820 "src/ocaml/preprocess/parser_raw.ml" +# 94805 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94826 "src/ocaml/preprocess/parser_raw.ml" +# 94811 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94847,7 +94832,7 @@ module Tables = struct }; } = _menhir_stack in let bs : (Parsetree.type_declaration list) = Obj.magic bs in - let a : ((Asttypes.rec_flag * string Location.loc option) * + let a : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) = Obj.magic a in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in @@ -94857,26 +94842,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1494 "src/ocaml/preprocess/parser_raw.mly" +# 1535 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 94863 "src/ocaml/preprocess/parser_raw.ml" +# 94848 "src/ocaml/preprocess/parser_raw.ml" in -# 3945 "src/ocaml/preprocess/parser_raw.mly" +# 3976 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94868 "src/ocaml/preprocess/parser_raw.ml" +# 94853 "src/ocaml/preprocess/parser_raw.ml" in -# 3928 "src/ocaml/preprocess/parser_raw.mly" +# 3959 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94874 "src/ocaml/preprocess/parser_raw.ml" +# 94859 "src/ocaml/preprocess/parser_raw.ml" in -# 1814 "src/ocaml/preprocess/parser_raw.mly" +# 1863 "src/ocaml/preprocess/parser_raw.mly" ( pstr_type _1 ) -# 94880 "src/ocaml/preprocess/parser_raw.ml" +# 94865 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -94884,15 +94869,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 94890 "src/ocaml/preprocess/parser_raw.ml" +# 94875 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94896 "src/ocaml/preprocess/parser_raw.ml" +# 94881 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -94965,7 +94950,7 @@ module Tables = struct let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -94977,16 +94962,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94983 "src/ocaml/preprocess/parser_raw.ml" +# 94968 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1527 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 94990 "src/ocaml/preprocess/parser_raw.ml" +# 94975 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -94994,46 +94979,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 95000 "src/ocaml/preprocess/parser_raw.ml" +# 94985 "src/ocaml/preprocess/parser_raw.ml" in let _4 = -# 5128 "src/ocaml/preprocess/parser_raw.mly" +# 5143 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 95006 "src/ocaml/preprocess/parser_raw.ml" +# 94991 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95013 "src/ocaml/preprocess/parser_raw.ml" +# 94998 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4303 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 95025 "src/ocaml/preprocess/parser_raw.ml" +# 95010 "src/ocaml/preprocess/parser_raw.ml" in -# 4286 "src/ocaml/preprocess/parser_raw.mly" +# 4309 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95031 "src/ocaml/preprocess/parser_raw.ml" +# 95016 "src/ocaml/preprocess/parser_raw.ml" in -# 1816 "src/ocaml/preprocess/parser_raw.mly" +# 1865 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 95037 "src/ocaml/preprocess/parser_raw.ml" +# 95022 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -95041,15 +95026,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95047 "src/ocaml/preprocess/parser_raw.ml" +# 95032 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95053 "src/ocaml/preprocess/parser_raw.ml" +# 95038 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95129,7 +95114,7 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95141,16 +95126,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95147 "src/ocaml/preprocess/parser_raw.ml" +# 95132 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1527 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 95154 "src/ocaml/preprocess/parser_raw.ml" +# 95139 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -95158,9 +95143,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 95164 "src/ocaml/preprocess/parser_raw.ml" +# 95149 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -95169,41 +95154,41 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 5130 "src/ocaml/preprocess/parser_raw.mly" +# 5145 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 95175 "src/ocaml/preprocess/parser_raw.ml" +# 95160 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95183 "src/ocaml/preprocess/parser_raw.ml" +# 95168 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4303 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 95195 "src/ocaml/preprocess/parser_raw.ml" +# 95180 "src/ocaml/preprocess/parser_raw.ml" in -# 4286 "src/ocaml/preprocess/parser_raw.mly" +# 4309 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95201 "src/ocaml/preprocess/parser_raw.ml" +# 95186 "src/ocaml/preprocess/parser_raw.ml" in -# 1816 "src/ocaml/preprocess/parser_raw.mly" +# 1865 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 95207 "src/ocaml/preprocess/parser_raw.ml" +# 95192 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -95211,15 +95196,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95217 "src/ocaml/preprocess/parser_raw.ml" +# 95202 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95223 "src/ocaml/preprocess/parser_raw.ml" +# 95208 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95237,29 +95222,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.type_exception * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.type_exception * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1818 "src/ocaml/preprocess/parser_raw.mly" +# 1867 "src/ocaml/preprocess/parser_raw.mly" ( pstr_exception _1 ) -# 95249 "src/ocaml/preprocess/parser_raw.ml" +# 95234 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95257 "src/ocaml/preprocess/parser_raw.ml" +# 95242 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95263 "src/ocaml/preprocess/parser_raw.ml" +# 95248 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95311,7 +95296,7 @@ module Tables = struct let body : (Parsetree.module_expr) = Obj.magic body in let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95322,9 +95307,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95328 "src/ocaml/preprocess/parser_raw.ml" +# 95313 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -95334,36 +95319,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 95340 "src/ocaml/preprocess/parser_raw.ml" +# 95325 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95348 "src/ocaml/preprocess/parser_raw.ml" +# 95333 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1855 "src/ocaml/preprocess/parser_raw.mly" +# 1896 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in let body = Mb.mk name body ~attrs ~loc ~docs in Pstr_module body, ext ) -# 95361 "src/ocaml/preprocess/parser_raw.ml" +# 95346 "src/ocaml/preprocess/parser_raw.ml" in -# 1820 "src/ocaml/preprocess/parser_raw.mly" +# 1869 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95367 "src/ocaml/preprocess/parser_raw.ml" +# 95352 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -95371,15 +95356,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95377 "src/ocaml/preprocess/parser_raw.ml" +# 95362 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95383 "src/ocaml/preprocess/parser_raw.ml" +# 95368 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95445,7 +95430,7 @@ module Tables = struct let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95458,9 +95443,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95464 "src/ocaml/preprocess/parser_raw.ml" +# 95449 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -95470,24 +95455,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 95476 "src/ocaml/preprocess/parser_raw.ml" +# 95461 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95484 "src/ocaml/preprocess/parser_raw.ml" +# 95469 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1894 "src/ocaml/preprocess/parser_raw.mly" +# 1935 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in @@ -95495,25 +95480,25 @@ module Tables = struct ext, Mb.mk name body ~attrs ~loc ~docs ) -# 95499 "src/ocaml/preprocess/parser_raw.ml" +# 95484 "src/ocaml/preprocess/parser_raw.ml" in -# 1494 "src/ocaml/preprocess/parser_raw.mly" +# 1535 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 95505 "src/ocaml/preprocess/parser_raw.ml" +# 95490 "src/ocaml/preprocess/parser_raw.ml" in -# 1882 "src/ocaml/preprocess/parser_raw.mly" +# 1923 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95511 "src/ocaml/preprocess/parser_raw.ml" +# 95496 "src/ocaml/preprocess/parser_raw.ml" in -# 1822 "src/ocaml/preprocess/parser_raw.mly" +# 1871 "src/ocaml/preprocess/parser_raw.mly" ( pstr_recmodule _1 ) -# 95517 "src/ocaml/preprocess/parser_raw.ml" +# 95502 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -95521,15 +95506,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95527 "src/ocaml/preprocess/parser_raw.ml" +# 95512 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95533 "src/ocaml/preprocess/parser_raw.ml" +# 95518 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95547,29 +95532,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_type_declaration * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_type_declaration * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1824 "src/ocaml/preprocess/parser_raw.mly" +# 1873 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_modtype body, ext) ) -# 95559 "src/ocaml/preprocess/parser_raw.ml" +# 95544 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95567 "src/ocaml/preprocess/parser_raw.ml" +# 95552 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95573 "src/ocaml/preprocess/parser_raw.ml" +# 95558 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95587,29 +95572,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1826 "src/ocaml/preprocess/parser_raw.mly" +# 1875 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_open body, ext) ) -# 95599 "src/ocaml/preprocess/parser_raw.ml" +# 95584 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95607 "src/ocaml/preprocess/parser_raw.ml" +# 95592 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95613 "src/ocaml/preprocess/parser_raw.ml" +# 95598 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95679,14 +95664,14 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let body : (Parsetree.class_expr) = Obj.magic body in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 95685 "src/ocaml/preprocess/parser_raw.ml" +# 95670 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95699,9 +95684,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95705 "src/ocaml/preprocess/parser_raw.ml" +# 95690 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -95711,24 +95696,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 95717 "src/ocaml/preprocess/parser_raw.ml" +# 95702 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95725 "src/ocaml/preprocess/parser_raw.ml" +# 95710 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2269 "src/ocaml/preprocess/parser_raw.mly" +# 2308 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -95736,25 +95721,25 @@ module Tables = struct ext, Ci.mk id body ~virt ~params ~attrs ~loc ~docs ) -# 95740 "src/ocaml/preprocess/parser_raw.ml" +# 95725 "src/ocaml/preprocess/parser_raw.ml" in -# 1494 "src/ocaml/preprocess/parser_raw.mly" +# 1535 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 95746 "src/ocaml/preprocess/parser_raw.ml" +# 95731 "src/ocaml/preprocess/parser_raw.ml" in -# 2258 "src/ocaml/preprocess/parser_raw.mly" +# 2297 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95752 "src/ocaml/preprocess/parser_raw.ml" +# 95737 "src/ocaml/preprocess/parser_raw.ml" in -# 1828 "src/ocaml/preprocess/parser_raw.mly" +# 1877 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class l, ext) ) -# 95758 "src/ocaml/preprocess/parser_raw.ml" +# 95743 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -95762,15 +95747,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95768 "src/ocaml/preprocess/parser_raw.ml" +# 95753 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95774 "src/ocaml/preprocess/parser_raw.ml" +# 95759 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95788,29 +95773,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (string Location.loc option * Parsetree.class_type_declaration list) = Obj.magic _1 in + let _1 : (string Asttypes.loc option * Parsetree.class_type_declaration list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1830 "src/ocaml/preprocess/parser_raw.mly" +# 1879 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class_type l, ext) ) -# 95800 "src/ocaml/preprocess/parser_raw.ml" +# 95785 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1340 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 95808 "src/ocaml/preprocess/parser_raw.ml" +# 95793 "src/ocaml/preprocess/parser_raw.ml" in -# 1832 "src/ocaml/preprocess/parser_raw.mly" +# 1881 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95814 "src/ocaml/preprocess/parser_raw.ml" +# 95799 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95855,7 +95840,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let thing : (Parsetree.module_expr) = Obj.magic thing in let _1 : (Parsetree.attributes) = Obj.magic _1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let kind : (Parsetree.include_kind) = Obj.magic kind in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_kind_ in @@ -95864,22 +95849,22 @@ module Tables = struct let attrs2 = let _1 = _1_inlined1 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95870 "src/ocaml/preprocess/parser_raw.ml" +# 95855 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95877 "src/ocaml/preprocess/parser_raw.ml" +# 95862 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_kind_ in let _sloc = (_symbolstartpos, _endpos) in -# 1938 "src/ocaml/preprocess/parser_raw.mly" +# 1979 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -95887,7 +95872,7 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 95891 "src/ocaml/preprocess/parser_raw.ml" +# 95876 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_kind_) in @@ -95895,45 +95880,12 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1834 "src/ocaml/preprocess/parser_raw.mly" +# 1883 "src/ocaml/preprocess/parser_raw.mly" ( let incl, ext = _1 in let item = mkstr ~loc:_sloc (Pstr_include incl) in wrap_str_ext ~loc:_sloc item ext ) -# 95904 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.structure_item) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1839 "src/ocaml/preprocess/parser_raw.mly" - ( - let name, jkind = _1 in - Jane_syntax.Layouts.(str_item_of - ~loc:(make_loc _sloc) - (Lstr_kind_abbrev (name, jkind))) - ) -# 95937 "src/ocaml/preprocess/parser_raw.ml" +# 95889 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95956,9 +95908,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5205 "src/ocaml/preprocess/parser_raw.mly" +# 5220 "src/ocaml/preprocess/parser_raw.mly" ( "-" ) -# 95962 "src/ocaml/preprocess/parser_raw.ml" +# 95914 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -95981,9 +95933,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5206 "src/ocaml/preprocess/parser_raw.mly" +# 5221 "src/ocaml/preprocess/parser_raw.mly" ( "-." ) -# 95987 "src/ocaml/preprocess/parser_raw.ml" +# 95939 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96036,9 +95988,9 @@ module Tables = struct let _v : (Parsetree.row_field) = let _5 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96042 "src/ocaml/preprocess/parser_raw.ml" +# 95994 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined1_ in @@ -96047,18 +95999,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 96051 "src/ocaml/preprocess/parser_raw.ml" +# 96003 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96056 "src/ocaml/preprocess/parser_raw.ml" +# 96008 "src/ocaml/preprocess/parser_raw.ml" in -# 4863 "src/ocaml/preprocess/parser_raw.mly" +# 4878 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96062 "src/ocaml/preprocess/parser_raw.ml" +# 96014 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -96066,20 +96018,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96072 "src/ocaml/preprocess/parser_raw.ml" +# 96024 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4849 "src/ocaml/preprocess/parser_raw.mly" +# 4864 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _5 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 _3 _4 ) -# 96083 "src/ocaml/preprocess/parser_raw.ml" +# 96035 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96111,9 +96063,9 @@ module Tables = struct let _v : (Parsetree.row_field) = let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96117 "src/ocaml/preprocess/parser_raw.ml" +# 96069 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -96122,20 +96074,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96128 "src/ocaml/preprocess/parser_raw.ml" +# 96080 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4853 "src/ocaml/preprocess/parser_raw.mly" +# 4868 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _2 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] ) -# 96139 "src/ocaml/preprocess/parser_raw.ml" +# 96091 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96167,7 +96119,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = let arg = # 124 "" ( None ) -# 96171 "src/ocaml/preprocess/parser_raw.ml" +# 96123 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined1_ in let dir = @@ -96176,23 +96128,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96182 "src/ocaml/preprocess/parser_raw.ml" +# 96134 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96188 "src/ocaml/preprocess/parser_raw.ml" +# 96140 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96196 "src/ocaml/preprocess/parser_raw.ml" +# 96148 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96223,9 +96175,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1085 "src/ocaml/preprocess/parser_raw.mly" +# 1129 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 96229 "src/ocaml/preprocess/parser_raw.ml" +# 96181 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -96236,23 +96188,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5110 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 96242 "src/ocaml/preprocess/parser_raw.ml" +# 96194 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96250 "src/ocaml/preprocess/parser_raw.ml" +# 96202 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96256 "src/ocaml/preprocess/parser_raw.ml" +# 96208 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96262,23 +96214,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96268 "src/ocaml/preprocess/parser_raw.ml" +# 96220 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96274 "src/ocaml/preprocess/parser_raw.ml" +# 96226 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96282 "src/ocaml/preprocess/parser_raw.ml" +# 96234 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96309,9 +96261,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1023 "src/ocaml/preprocess/parser_raw.mly" +# 1067 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 96315 "src/ocaml/preprocess/parser_raw.ml" +# 96267 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -96322,23 +96274,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5096 "src/ocaml/preprocess/parser_raw.mly" +# 5111 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 96328 "src/ocaml/preprocess/parser_raw.ml" +# 96280 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96336 "src/ocaml/preprocess/parser_raw.ml" +# 96288 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96342 "src/ocaml/preprocess/parser_raw.ml" +# 96294 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96348,23 +96300,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96354 "src/ocaml/preprocess/parser_raw.ml" +# 96306 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96360 "src/ocaml/preprocess/parser_raw.ml" +# 96312 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96368 "src/ocaml/preprocess/parser_raw.ml" +# 96320 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96404,23 +96356,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5097 "src/ocaml/preprocess/parser_raw.mly" +# 5112 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 96410 "src/ocaml/preprocess/parser_raw.ml" +# 96362 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96418 "src/ocaml/preprocess/parser_raw.ml" +# 96370 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96424 "src/ocaml/preprocess/parser_raw.ml" +# 96376 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96430,23 +96382,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96436 "src/ocaml/preprocess/parser_raw.ml" +# 96388 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96442 "src/ocaml/preprocess/parser_raw.ml" +# 96394 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96450 "src/ocaml/preprocess/parser_raw.ml" +# 96402 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96486,23 +96438,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5098 "src/ocaml/preprocess/parser_raw.mly" +# 5113 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 96492 "src/ocaml/preprocess/parser_raw.ml" +# 96444 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96500 "src/ocaml/preprocess/parser_raw.ml" +# 96452 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96506 "src/ocaml/preprocess/parser_raw.ml" +# 96458 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96512,23 +96464,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96518 "src/ocaml/preprocess/parser_raw.ml" +# 96470 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96524 "src/ocaml/preprocess/parser_raw.ml" +# 96476 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96532 "src/ocaml/preprocess/parser_raw.ml" +# 96484 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96568,23 +96520,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 5099 "src/ocaml/preprocess/parser_raw.mly" +# 5114 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 96574 "src/ocaml/preprocess/parser_raw.ml" +# 96526 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96582 "src/ocaml/preprocess/parser_raw.ml" +# 96534 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96588 "src/ocaml/preprocess/parser_raw.ml" +# 96540 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96594,23 +96546,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96600 "src/ocaml/preprocess/parser_raw.ml" +# 96552 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96606 "src/ocaml/preprocess/parser_raw.ml" +# 96558 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96614 "src/ocaml/preprocess/parser_raw.ml" +# 96566 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96650,23 +96602,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 5100 "src/ocaml/preprocess/parser_raw.mly" +# 5115 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 96656 "src/ocaml/preprocess/parser_raw.ml" +# 96608 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96664 "src/ocaml/preprocess/parser_raw.ml" +# 96616 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96670 "src/ocaml/preprocess/parser_raw.ml" +# 96622 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96676,23 +96628,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96682 "src/ocaml/preprocess/parser_raw.ml" +# 96634 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3105 "src/ocaml/preprocess/parser_raw.mly" +# 3140 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96688 "src/ocaml/preprocess/parser_raw.ml" +# 96640 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96696 "src/ocaml/preprocess/parser_raw.ml" +# 96648 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96724,7 +96676,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = let arg = # 124 "" ( None ) -# 96728 "src/ocaml/preprocess/parser_raw.ml" +# 96680 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined1_ in let dir = @@ -96733,23 +96685,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96739 "src/ocaml/preprocess/parser_raw.ml" +# 96691 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96745 "src/ocaml/preprocess/parser_raw.ml" +# 96697 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96753 "src/ocaml/preprocess/parser_raw.ml" +# 96705 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96780,9 +96732,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1085 "src/ocaml/preprocess/parser_raw.mly" +# 1129 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 96786 "src/ocaml/preprocess/parser_raw.ml" +# 96738 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -96793,23 +96745,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5110 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 96799 "src/ocaml/preprocess/parser_raw.ml" +# 96751 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96807 "src/ocaml/preprocess/parser_raw.ml" +# 96759 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96813 "src/ocaml/preprocess/parser_raw.ml" +# 96765 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96819,23 +96771,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96825 "src/ocaml/preprocess/parser_raw.ml" +# 96777 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96831 "src/ocaml/preprocess/parser_raw.ml" +# 96783 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96839 "src/ocaml/preprocess/parser_raw.ml" +# 96791 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96866,9 +96818,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1023 "src/ocaml/preprocess/parser_raw.mly" +# 1067 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 96872 "src/ocaml/preprocess/parser_raw.ml" +# 96824 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -96879,23 +96831,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5096 "src/ocaml/preprocess/parser_raw.mly" +# 5111 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 96885 "src/ocaml/preprocess/parser_raw.ml" +# 96837 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96893 "src/ocaml/preprocess/parser_raw.ml" +# 96845 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96899 "src/ocaml/preprocess/parser_raw.ml" +# 96851 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96905,23 +96857,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96911 "src/ocaml/preprocess/parser_raw.ml" +# 96863 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96917 "src/ocaml/preprocess/parser_raw.ml" +# 96869 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 96925 "src/ocaml/preprocess/parser_raw.ml" +# 96877 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -96961,23 +96913,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5097 "src/ocaml/preprocess/parser_raw.mly" +# 5112 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 96967 "src/ocaml/preprocess/parser_raw.ml" +# 96919 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 96975 "src/ocaml/preprocess/parser_raw.ml" +# 96927 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 96981 "src/ocaml/preprocess/parser_raw.ml" +# 96933 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -96987,23 +96939,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 96993 "src/ocaml/preprocess/parser_raw.ml" +# 96945 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 96999 "src/ocaml/preprocess/parser_raw.ml" +# 96951 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 97007 "src/ocaml/preprocess/parser_raw.ml" +# 96959 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97043,23 +96995,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5098 "src/ocaml/preprocess/parser_raw.mly" +# 5113 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 97049 "src/ocaml/preprocess/parser_raw.ml" +# 97001 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 97057 "src/ocaml/preprocess/parser_raw.ml" +# 97009 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 97063 "src/ocaml/preprocess/parser_raw.ml" +# 97015 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -97069,23 +97021,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 97075 "src/ocaml/preprocess/parser_raw.ml" +# 97027 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 97081 "src/ocaml/preprocess/parser_raw.ml" +# 97033 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 97089 "src/ocaml/preprocess/parser_raw.ml" +# 97041 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97125,23 +97077,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 5099 "src/ocaml/preprocess/parser_raw.mly" +# 5114 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 97131 "src/ocaml/preprocess/parser_raw.ml" +# 97083 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 97139 "src/ocaml/preprocess/parser_raw.ml" +# 97091 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 97145 "src/ocaml/preprocess/parser_raw.ml" +# 97097 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -97151,23 +97103,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 97157 "src/ocaml/preprocess/parser_raw.ml" +# 97109 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 97163 "src/ocaml/preprocess/parser_raw.ml" +# 97115 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 97171 "src/ocaml/preprocess/parser_raw.ml" +# 97123 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97207,23 +97159,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 5100 "src/ocaml/preprocess/parser_raw.mly" +# 5115 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 97213 "src/ocaml/preprocess/parser_raw.ml" +# 97165 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1301 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 97221 "src/ocaml/preprocess/parser_raw.ml" +# 97173 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 97227 "src/ocaml/preprocess/parser_raw.ml" +# 97179 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -97233,23 +97185,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 97239 "src/ocaml/preprocess/parser_raw.ml" +# 97191 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3141 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 97245 "src/ocaml/preprocess/parser_raw.ml" +# 97197 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 97253 "src/ocaml/preprocess/parser_raw.ml" +# 97205 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97289,37 +97241,37 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97295 "src/ocaml/preprocess/parser_raw.ml" +# 97247 "src/ocaml/preprocess/parser_raw.ml" in -# 1785 "src/ocaml/preprocess/parser_raw.mly" +# 1831 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 97300 "src/ocaml/preprocess/parser_raw.ml" +# 97252 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1244 "src/ocaml/preprocess/parser_raw.mly" +# 1288 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 97308 "src/ocaml/preprocess/parser_raw.ml" +# 97260 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1232 "src/ocaml/preprocess/parser_raw.mly" +# 1276 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 97317 "src/ocaml/preprocess/parser_raw.ml" +# 97269 "src/ocaml/preprocess/parser_raw.ml" in -# 1534 "src/ocaml/preprocess/parser_raw.mly" +# 1575 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 97323 "src/ocaml/preprocess/parser_raw.ml" +# 97275 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97352,21 +97304,21 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 97356 "src/ocaml/preprocess/parser_raw.ml" +# 97308 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1232 "src/ocaml/preprocess/parser_raw.mly" +# 1276 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 97364 "src/ocaml/preprocess/parser_raw.ml" +# 97316 "src/ocaml/preprocess/parser_raw.ml" in -# 1538 "src/ocaml/preprocess/parser_raw.mly" +# 1579 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 97370 "src/ocaml/preprocess/parser_raw.ml" +# 97322 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97396,9 +97348,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.toplevel_phrase) = -# 1542 "src/ocaml/preprocess/parser_raw.mly" +# 1583 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97402 "src/ocaml/preprocess/parser_raw.ml" +# 97354 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97421,9 +97373,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.toplevel_phrase) = -# 1545 "src/ocaml/preprocess/parser_raw.mly" +# 1586 "src/ocaml/preprocess/parser_raw.mly" ( raise End_of_file ) -# 97427 "src/ocaml/preprocess/parser_raw.ml" +# 97379 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97446,9 +97398,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4647 "src/ocaml/preprocess/parser_raw.mly" +# 4666 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 97452 "src/ocaml/preprocess/parser_raw.ml" +# 97404 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97489,18 +97441,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 97493 "src/ocaml/preprocess/parser_raw.ml" +# 97445 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97498 "src/ocaml/preprocess/parser_raw.ml" +# 97450 "src/ocaml/preprocess/parser_raw.ml" in -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4677 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 97504 "src/ocaml/preprocess/parser_raw.ml" +# 97456 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_ty_) in @@ -97508,11 +97460,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4649 "src/ocaml/preprocess/parser_raw.mly" +# 4668 "src/ocaml/preprocess/parser_raw.mly" ( let ty, ltys = _1 in mktyp ~loc:_sloc (Ptyp_tuple ((None, ty) :: ltys)) ) -# 97516 "src/ocaml/preprocess/parser_raw.ml" +# 97468 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97542,9 +97494,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_constraint) = -# 3576 "src/ocaml/preprocess/parser_raw.mly" +# 3607 "src/ocaml/preprocess/parser_raw.mly" ( Pconstraint _2 ) -# 97548 "src/ocaml/preprocess/parser_raw.ml" +# 97500 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97588,9 +97540,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.type_constraint) = -# 3577 "src/ocaml/preprocess/parser_raw.mly" +# 3608 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (Some _2, _4) ) -# 97594 "src/ocaml/preprocess/parser_raw.ml" +# 97546 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97620,9 +97572,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_constraint) = -# 3578 "src/ocaml/preprocess/parser_raw.mly" +# 3609 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (None, _2) ) -# 97626 "src/ocaml/preprocess/parser_raw.ml" +# 97578 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97638,9 +97590,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = -# 4023 "src/ocaml/preprocess/parser_raw.mly" +# 4054 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, Public, None) ) -# 97644 "src/ocaml/preprocess/parser_raw.ml" +# 97596 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97670,9 +97622,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = -# 4025 "src/ocaml/preprocess/parser_raw.mly" +# 4056 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 97676 "src/ocaml/preprocess/parser_raw.ml" +# 97628 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97695,9 +97647,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5046 "src/ocaml/preprocess/parser_raw.mly" +# 5061 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97701 "src/ocaml/preprocess/parser_raw.ml" +# 97653 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97743,39 +97695,39 @@ module Tables = struct let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _3 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97749 "src/ocaml/preprocess/parser_raw.ml" +# 97701 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = -# 4117 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_var tyvar ) -# 97758 "src/ocaml/preprocess/parser_raw.ml" +# 4148 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_var (tyvar, None) ) +# 97710 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_tyvar_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97767 "src/ocaml/preprocess/parser_raw.ml" +# 97719 "src/ocaml/preprocess/parser_raw.ml" in -# 4120 "src/ocaml/preprocess/parser_raw.mly" +# 4151 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97773 "src/ocaml/preprocess/parser_raw.ml" +# 97725 "src/ocaml/preprocess/parser_raw.ml" in -# 4111 "src/ocaml/preprocess/parser_raw.mly" +# 4142 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 97779 "src/ocaml/preprocess/parser_raw.ml" +# 97731 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97814,38 +97766,38 @@ module Tables = struct let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _3 = let _1 = _1_inlined2 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97820 "src/ocaml/preprocess/parser_raw.ml" +# 97772 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = let _1 = -# 4119 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_any ) -# 97829 "src/ocaml/preprocess/parser_raw.ml" +# 4150 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_any None ) +# 97781 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1277 "src/ocaml/preprocess/parser_raw.mly" +# 1321 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97837 "src/ocaml/preprocess/parser_raw.ml" +# 97789 "src/ocaml/preprocess/parser_raw.ml" in -# 4120 "src/ocaml/preprocess/parser_raw.mly" +# 4151 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97843 "src/ocaml/preprocess/parser_raw.ml" +# 97795 "src/ocaml/preprocess/parser_raw.ml" in -# 4111 "src/ocaml/preprocess/parser_raw.mly" +# 4142 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 97849 "src/ocaml/preprocess/parser_raw.ml" +# 97801 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97861,9 +97813,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 4033 "src/ocaml/preprocess/parser_raw.mly" +# 4064 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97867 "src/ocaml/preprocess/parser_raw.ml" +# 97819 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97886,9 +97838,9 @@ module Tables = struct let _startpos = _startpos_p_ in let _endpos = _endpos_p_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 4035 "src/ocaml/preprocess/parser_raw.mly" +# 4066 "src/ocaml/preprocess/parser_raw.mly" ( [p] ) -# 97892 "src/ocaml/preprocess/parser_raw.ml" +# 97844 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97928,18 +97880,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 97932 "src/ocaml/preprocess/parser_raw.ml" +# 97884 "src/ocaml/preprocess/parser_raw.ml" in -# 1397 "src/ocaml/preprocess/parser_raw.mly" +# 1438 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97937 "src/ocaml/preprocess/parser_raw.ml" +# 97889 "src/ocaml/preprocess/parser_raw.ml" in -# 4039 "src/ocaml/preprocess/parser_raw.mly" +# 4070 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 97943 "src/ocaml/preprocess/parser_raw.ml" +# 97895 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97965,17 +97917,17 @@ module Tables = struct } = _menhir_stack in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 97971 "src/ocaml/preprocess/parser_raw.ml" +# 97923 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5043 "src/ocaml/preprocess/parser_raw.mly" +# 5058 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "#" ) -# 97979 "src/ocaml/preprocess/parser_raw.ml" +# 97931 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -97994,17 +97946,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98000 "src/ocaml/preprocess/parser_raw.ml" +# 97952 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5040 "src/ocaml/preprocess/parser_raw.mly" +# 5055 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98008 "src/ocaml/preprocess/parser_raw.ml" +# 97960 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98027,9 +97979,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5049 "src/ocaml/preprocess/parser_raw.mly" +# 5064 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98033 "src/ocaml/preprocess/parser_raw.ml" +# 97985 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98045,9 +97997,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4131 "src/ocaml/preprocess/parser_raw.mly" +# 4162 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, NoInjectivity ) -# 98051 "src/ocaml/preprocess/parser_raw.ml" +# 98003 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98070,9 +98022,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4132 "src/ocaml/preprocess/parser_raw.mly" +# 4163 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, NoInjectivity ) -# 98076 "src/ocaml/preprocess/parser_raw.ml" +# 98028 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98095,9 +98047,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4133 "src/ocaml/preprocess/parser_raw.mly" +# 4164 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, NoInjectivity ) -# 98101 "src/ocaml/preprocess/parser_raw.ml" +# 98053 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98120,9 +98072,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4134 "src/ocaml/preprocess/parser_raw.mly" +# 4165 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, Injective ) -# 98126 "src/ocaml/preprocess/parser_raw.ml" +# 98078 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98152,9 +98104,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4135 "src/ocaml/preprocess/parser_raw.mly" +# 4166 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 98158 "src/ocaml/preprocess/parser_raw.ml" +# 98110 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98184,9 +98136,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4135 "src/ocaml/preprocess/parser_raw.mly" +# 4166 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 98190 "src/ocaml/preprocess/parser_raw.ml" +# 98142 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98216,9 +98168,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4136 "src/ocaml/preprocess/parser_raw.mly" +# 4167 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 98222 "src/ocaml/preprocess/parser_raw.ml" +# 98174 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98248,9 +98200,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4136 "src/ocaml/preprocess/parser_raw.mly" +# 4167 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 98254 "src/ocaml/preprocess/parser_raw.ml" +# 98206 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98269,21 +98221,21 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1015 "src/ocaml/preprocess/parser_raw.mly" +# 1059 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98275 "src/ocaml/preprocess/parser_raw.ml" +# 98227 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 4138 "src/ocaml/preprocess/parser_raw.mly" +# 4169 "src/ocaml/preprocess/parser_raw.mly" ( if _1 = "+!" then Covariant, Injective else if _1 = "-!" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 98287 "src/ocaml/preprocess/parser_raw.ml" +# 98239 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98302,21 +98254,21 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1068 "src/ocaml/preprocess/parser_raw.mly" +# 1112 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98308 "src/ocaml/preprocess/parser_raw.ml" +# 98260 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 4143 "src/ocaml/preprocess/parser_raw.mly" +# 4174 "src/ocaml/preprocess/parser_raw.mly" ( if _1 = "!+" then Covariant, Injective else if _1 = "!-" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 98320 "src/ocaml/preprocess/parser_raw.ml" +# 98272 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98335,20 +98287,20 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1024 "src/ocaml/preprocess/parser_raw.mly" +# 1068 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 98341 "src/ocaml/preprocess/parser_raw.ml" +# 98293 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parser_types.Constant.t) = let _endpos = _endpos__1_ in + let _v : (Parsetree.constant) = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4920 "src/ocaml/preprocess/parser_raw.mly" +# 4935 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _sloc Positive _1 ) -# 98352 "src/ocaml/preprocess/parser_raw.ml" +# 98304 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98367,17 +98319,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 998 "src/ocaml/preprocess/parser_raw.mly" +# 1042 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 98373 "src/ocaml/preprocess/parser_raw.ml" +# 98325 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parser_types.Constant.t) = -# 4921 "src/ocaml/preprocess/parser_raw.mly" + let _v : (Parsetree.constant) = +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _1 ) -# 98381 "src/ocaml/preprocess/parser_raw.ml" +# 98333 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98411,39 +98363,39 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 98415 "src/ocaml/preprocess/parser_raw.ml" +# 98367 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _1 = -# 1313 "src/ocaml/preprocess/parser_raw.mly" +# 1354 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98421 "src/ocaml/preprocess/parser_raw.ml" +# 98373 "src/ocaml/preprocess/parser_raw.ml" in -# 1565 "src/ocaml/preprocess/parser_raw.mly" +# 1606 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98426 "src/ocaml/preprocess/parser_raw.ml" +# 98378 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 98432 "src/ocaml/preprocess/parser_raw.ml" +# 98384 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1236 "src/ocaml/preprocess/parser_raw.mly" +# 1280 "src/ocaml/preprocess/parser_raw.mly" ( extra_def _startpos _endpos _1 ) -# 98441 "src/ocaml/preprocess/parser_raw.ml" +# 98393 "src/ocaml/preprocess/parser_raw.ml" in -# 1558 "src/ocaml/preprocess/parser_raw.mly" +# 1599 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98447 "src/ocaml/preprocess/parser_raw.ml" +# 98399 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98491,7 +98443,7 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 98495 "src/ocaml/preprocess/parser_raw.ml" +# 98447 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _1 = @@ -98499,61 +98451,61 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98505 "src/ocaml/preprocess/parser_raw.ml" +# 98457 "src/ocaml/preprocess/parser_raw.ml" in -# 1785 "src/ocaml/preprocess/parser_raw.mly" +# 1831 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 98510 "src/ocaml/preprocess/parser_raw.ml" +# 98462 "src/ocaml/preprocess/parser_raw.ml" in -# 1254 "src/ocaml/preprocess/parser_raw.mly" +# 1298 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 98516 "src/ocaml/preprocess/parser_raw.ml" +# 98468 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1252 "src/ocaml/preprocess/parser_raw.mly" +# 1296 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 98524 "src/ocaml/preprocess/parser_raw.ml" +# 98476 "src/ocaml/preprocess/parser_raw.ml" in -# 1315 "src/ocaml/preprocess/parser_raw.mly" +# 1356 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 98530 "src/ocaml/preprocess/parser_raw.ml" +# 98482 "src/ocaml/preprocess/parser_raw.ml" in -# 1565 "src/ocaml/preprocess/parser_raw.mly" +# 1606 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98536 "src/ocaml/preprocess/parser_raw.ml" +# 98488 "src/ocaml/preprocess/parser_raw.ml" in # 267 "" ( xs @ ys ) -# 98542 "src/ocaml/preprocess/parser_raw.ml" +# 98494 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1236 "src/ocaml/preprocess/parser_raw.mly" +# 1280 "src/ocaml/preprocess/parser_raw.mly" ( extra_def _startpos _endpos _1 ) -# 98551 "src/ocaml/preprocess/parser_raw.ml" +# 98503 "src/ocaml/preprocess/parser_raw.ml" in -# 1558 "src/ocaml/preprocess/parser_raw.mly" +# 1599 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98557 "src/ocaml/preprocess/parser_raw.ml" +# 98509 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98590,9 +98542,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (string) = -# 4950 "src/ocaml/preprocess/parser_raw.mly" +# 4965 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 98596 "src/ocaml/preprocess/parser_raw.ml" +# 98548 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98611,17 +98563,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98617 "src/ocaml/preprocess/parser_raw.ml" +# 98569 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4958 "src/ocaml/preprocess/parser_raw.mly" +# 4973 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98625 "src/ocaml/preprocess/parser_raw.ml" +# 98577 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98644,9 +98596,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4959 "src/ocaml/preprocess/parser_raw.mly" +# 4974 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98650 "src/ocaml/preprocess/parser_raw.ml" +# 98602 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98669,9 +98621,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5034 "src/ocaml/preprocess/parser_raw.mly" +# 5049 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98675 "src/ocaml/preprocess/parser_raw.ml" +# 98627 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98716,46 +98668,46 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98722 "src/ocaml/preprocess/parser_raw.ml" +# 98674 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let label = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98735 "src/ocaml/preprocess/parser_raw.ml" +# 98687 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98743 "src/ocaml/preprocess/parser_raw.ml" +# 98695 "src/ocaml/preprocess/parser_raw.ml" in let attrs = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98749 "src/ocaml/preprocess/parser_raw.ml" +# 98701 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5198 "src/ocaml/preprocess/parser_raw.mly" +# 5213 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 98754 "src/ocaml/preprocess/parser_raw.ml" +# 98706 "src/ocaml/preprocess/parser_raw.ml" in -# 2414 "src/ocaml/preprocess/parser_raw.mly" +# 2453 "src/ocaml/preprocess/parser_raw.mly" ( (label, mutable_, Cfk_virtual ty), attrs ) -# 98759 "src/ocaml/preprocess/parser_raw.ml" +# 98711 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98800,46 +98752,46 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98806 "src/ocaml/preprocess/parser_raw.ml" +# 98758 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98819 "src/ocaml/preprocess/parser_raw.ml" +# 98771 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98827 "src/ocaml/preprocess/parser_raw.ml" +# 98779 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98833 "src/ocaml/preprocess/parser_raw.ml" +# 98785 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 98838 "src/ocaml/preprocess/parser_raw.ml" +# 98790 "src/ocaml/preprocess/parser_raw.ml" in -# 2416 "src/ocaml/preprocess/parser_raw.mly" +# 2455 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 98843 "src/ocaml/preprocess/parser_raw.ml" +# 98795 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98890,9 +98842,9 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98896 "src/ocaml/preprocess/parser_raw.ml" +# 98848 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -98900,40 +98852,40 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98910 "src/ocaml/preprocess/parser_raw.ml" +# 98862 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 98918 "src/ocaml/preprocess/parser_raw.ml" +# 98870 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98926 "src/ocaml/preprocess/parser_raw.ml" +# 98878 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 98932 "src/ocaml/preprocess/parser_raw.ml" +# 98884 "src/ocaml/preprocess/parser_raw.ml" in -# 2416 "src/ocaml/preprocess/parser_raw.mly" +# 2455 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 98937 "src/ocaml/preprocess/parser_raw.ml" +# 98889 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -98985,43 +98937,43 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.type_constraint) = Obj.magic _5 in let _1_inlined1 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 98991 "src/ocaml/preprocess/parser_raw.ml" +# 98943 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99004 "src/ocaml/preprocess/parser_raw.ml" +# 98956 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99012 "src/ocaml/preprocess/parser_raw.ml" +# 98964 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99019 "src/ocaml/preprocess/parser_raw.ml" +# 98971 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = -# 5201 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 99025 "src/ocaml/preprocess/parser_raw.ml" +# 98977 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__7_ in @@ -99037,11 +98989,11 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2419 "src/ocaml/preprocess/parser_raw.mly" +# 2458 "src/ocaml/preprocess/parser_raw.mly" ( let e = mkexp_type_constraint ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 99045 "src/ocaml/preprocess/parser_raw.ml" +# 98997 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99099,9 +99051,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.type_constraint) = Obj.magic _5 in let _1_inlined2 : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 99105 "src/ocaml/preprocess/parser_raw.ml" +# 99057 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -99109,37 +99061,37 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99119 "src/ocaml/preprocess/parser_raw.ml" +# 99071 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99127 "src/ocaml/preprocess/parser_raw.ml" +# 99079 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99136 "src/ocaml/preprocess/parser_raw.ml" +# 99088 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = -# 5202 "src/ocaml/preprocess/parser_raw.mly" +# 5217 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 99143 "src/ocaml/preprocess/parser_raw.ml" +# 99095 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -99154,11 +99106,11 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2419 "src/ocaml/preprocess/parser_raw.mly" +# 2458 "src/ocaml/preprocess/parser_raw.mly" ( let e = mkexp_type_constraint ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 99162 "src/ocaml/preprocess/parser_raw.ml" +# 99114 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99177,17 +99129,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1023 "src/ocaml/preprocess/parser_raw.mly" +# 1067 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 99183 "src/ocaml/preprocess/parser_raw.ml" +# 99135 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 4913 "src/ocaml/preprocess/parser_raw.mly" +# 4928 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pconst_integer (n, m) ) -# 99191 "src/ocaml/preprocess/parser_raw.ml" +# 99143 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99206,17 +99158,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 975 "src/ocaml/preprocess/parser_raw.mly" +# 1019 "src/ocaml/preprocess/parser_raw.mly" (char) -# 99212 "src/ocaml/preprocess/parser_raw.ml" +# 99164 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 4914 "src/ocaml/preprocess/parser_raw.mly" +# 4929 "src/ocaml/preprocess/parser_raw.mly" ( Pconst_char _1 ) -# 99220 "src/ocaml/preprocess/parser_raw.ml" +# 99172 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99235,18 +99187,18 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1085 "src/ocaml/preprocess/parser_raw.mly" +# 1129 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 99241 "src/ocaml/preprocess/parser_raw.ml" +# 99193 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 4915 "src/ocaml/preprocess/parser_raw.mly" +# 4930 "src/ocaml/preprocess/parser_raw.mly" ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) ) -# 99250 "src/ocaml/preprocess/parser_raw.ml" +# 99202 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99265,17 +99217,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 997 "src/ocaml/preprocess/parser_raw.mly" +# 1041 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 99271 "src/ocaml/preprocess/parser_raw.ml" +# 99223 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 4917 "src/ocaml/preprocess/parser_raw.mly" +# 4932 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _1 in Pconst_float (f, m) ) -# 99279 "src/ocaml/preprocess/parser_raw.ml" +# 99231 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99341,17 +99293,17 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.value_description * string Location.loc option) = let attrs2 = + let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5311 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99355 "src/ocaml/preprocess/parser_raw.ml" +# 99307 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -99361,30 +99313,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99367 "src/ocaml/preprocess/parser_raw.ml" +# 99319 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5300 "src/ocaml/preprocess/parser_raw.mly" +# 5315 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99375 "src/ocaml/preprocess/parser_raw.ml" +# 99327 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3889 "src/ocaml/preprocess/parser_raw.mly" +# 3920 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~attrs ~modalities ~loc ~docs, ext ) -# 99388 "src/ocaml/preprocess/parser_raw.ml" +# 99340 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99400,9 +99352,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.virtual_flag) = -# 5162 "src/ocaml/preprocess/parser_raw.mly" +# 5177 "src/ocaml/preprocess/parser_raw.mly" ( Concrete ) -# 99406 "src/ocaml/preprocess/parser_raw.ml" +# 99358 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99425,9 +99377,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.virtual_flag) = -# 5163 "src/ocaml/preprocess/parser_raw.mly" +# 5178 "src/ocaml/preprocess/parser_raw.mly" ( Virtual ) -# 99431 "src/ocaml/preprocess/parser_raw.ml" +# 99383 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99450,9 +99402,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 5186 "src/ocaml/preprocess/parser_raw.mly" +# 5201 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 99456 "src/ocaml/preprocess/parser_raw.ml" +# 99408 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99482,9 +99434,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 5187 "src/ocaml/preprocess/parser_raw.mly" +# 5202 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 99488 "src/ocaml/preprocess/parser_raw.ml" +# 99440 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99514,9 +99466,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 5188 "src/ocaml/preprocess/parser_raw.mly" +# 5203 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 99520 "src/ocaml/preprocess/parser_raw.ml" +# 99472 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99539,9 +99491,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 5193 "src/ocaml/preprocess/parser_raw.mly" +# 5208 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 99545 "src/ocaml/preprocess/parser_raw.ml" +# 99497 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99571,9 +99523,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 5194 "src/ocaml/preprocess/parser_raw.mly" +# 5209 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 99577 "src/ocaml/preprocess/parser_raw.ml" +# 99529 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99603,9 +99555,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 5195 "src/ocaml/preprocess/parser_raw.mly" +# 5210 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 99609 "src/ocaml/preprocess/parser_raw.ml" +# 99561 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99653,7 +99605,7 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _4 : (Asttypes.private_flag) = Obj.magic _4 in let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in @@ -99667,27 +99619,27 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 99671 "src/ocaml/preprocess/parser_raw.ml" +# 99623 "src/ocaml/preprocess/parser_raw.ml" in -# 1327 "src/ocaml/preprocess/parser_raw.mly" +# 1368 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 99676 "src/ocaml/preprocess/parser_raw.ml" +# 99628 "src/ocaml/preprocess/parser_raw.ml" in -# 3994 "src/ocaml/preprocess/parser_raw.mly" +# 4025 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99682 "src/ocaml/preprocess/parser_raw.ml" +# 99634 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos_xs_ in let _5 = let _1 = _1_inlined2 in -# 4424 "src/ocaml/preprocess/parser_raw.mly" +# 4444 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99691 "src/ocaml/preprocess/parser_raw.ml" +# 99643 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -99696,16 +99648,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99702 "src/ocaml/preprocess/parser_raw.ml" +# 99654 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4338 "src/ocaml/preprocess/parser_raw.mly" +# 4359 "src/ocaml/preprocess/parser_raw.mly" ( let lident = loc_last _3 in Pwith_type (_3, @@ -99715,7 +99667,7 @@ module Tables = struct ~manifest:_5 ~priv:_4 ~loc:(make_loc _sloc))) ) -# 99719 "src/ocaml/preprocess/parser_raw.ml" +# 99671 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99768,9 +99720,9 @@ module Tables = struct let _v : (Parsetree.with_constraint) = let _5 = let _1 = _1_inlined2 in -# 4424 "src/ocaml/preprocess/parser_raw.mly" +# 4444 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99774 "src/ocaml/preprocess/parser_raw.ml" +# 99726 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -99780,16 +99732,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99786 "src/ocaml/preprocess/parser_raw.ml" +# 99738 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4351 "src/ocaml/preprocess/parser_raw.mly" +# 4372 "src/ocaml/preprocess/parser_raw.mly" ( let lident = loc_last _3 in Pwith_typesubst (_3, @@ -99797,7 +99749,7 @@ module Tables = struct ~params:_2 ~manifest:_5 ~loc:(make_loc _sloc))) ) -# 99801 "src/ocaml/preprocess/parser_raw.ml" +# 99753 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99846,9 +99798,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99852 "src/ocaml/preprocess/parser_raw.ml" +# 99804 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -99857,15 +99809,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99863 "src/ocaml/preprocess/parser_raw.ml" +# 99815 "src/ocaml/preprocess/parser_raw.ml" in -# 4359 "src/ocaml/preprocess/parser_raw.mly" +# 4380 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_module (_2, _4) ) -# 99869 "src/ocaml/preprocess/parser_raw.ml" +# 99821 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99914,9 +99866,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99920 "src/ocaml/preprocess/parser_raw.ml" +# 99872 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -99925,15 +99877,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99931 "src/ocaml/preprocess/parser_raw.ml" +# 99883 "src/ocaml/preprocess/parser_raw.ml" in -# 4361 "src/ocaml/preprocess/parser_raw.mly" +# 4382 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modsubst (_2, _4) ) -# 99937 "src/ocaml/preprocess/parser_raw.ml" +# 99889 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -99989,15 +99941,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 99995 "src/ocaml/preprocess/parser_raw.ml" +# 99947 "src/ocaml/preprocess/parser_raw.ml" in -# 4363 "src/ocaml/preprocess/parser_raw.mly" +# 4384 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtype (l, rhs) ) -# 100001 "src/ocaml/preprocess/parser_raw.ml" +# 99953 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100053,15 +100005,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1240 "src/ocaml/preprocess/parser_raw.mly" +# 1284 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 100059 "src/ocaml/preprocess/parser_raw.ml" +# 100011 "src/ocaml/preprocess/parser_raw.ml" in -# 4365 "src/ocaml/preprocess/parser_raw.mly" +# 4386 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtypesubst (l, rhs) ) -# 100065 "src/ocaml/preprocess/parser_raw.ml" +# 100017 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100084,9 +100036,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 4368 "src/ocaml/preprocess/parser_raw.mly" +# 4389 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 100090 "src/ocaml/preprocess/parser_raw.ml" +# 100042 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100116,9 +100068,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 4369 "src/ocaml/preprocess/parser_raw.mly" +# 4390 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 100122 "src/ocaml/preprocess/parser_raw.ml" +# 100074 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -100154,9 +100106,9 @@ module MenhirInterpreter = struct | T_UNIQUE : unit terminal | T_UNDERSCORE : unit terminal | T_UIDENT : ( -# 1099 "src/ocaml/preprocess/parser_raw.mly" +# 1143 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100160 "src/ocaml/preprocess/parser_raw.ml" +# 100112 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_TYPE : unit terminal | T_TRY : unit terminal @@ -100166,9 +100118,9 @@ module MenhirInterpreter = struct | T_THEN : unit terminal | T_STRUCT : unit terminal | T_STRING : ( -# 1085 "src/ocaml/preprocess/parser_raw.mly" +# 1129 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 100172 "src/ocaml/preprocess/parser_raw.ml" +# 100124 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_STAR : unit terminal | T_STACK : unit terminal @@ -100180,22 +100132,22 @@ module MenhirInterpreter = struct | T_RBRACKET : unit terminal | T_RBRACE : unit terminal | T_QUOTED_STRING_ITEM : ( -# 1090 "src/ocaml/preprocess/parser_raw.mly" +# 1134 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 100186 "src/ocaml/preprocess/parser_raw.ml" +# 100138 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTED_STRING_EXPR : ( -# 1087 "src/ocaml/preprocess/parser_raw.mly" +# 1131 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 100191 "src/ocaml/preprocess/parser_raw.ml" +# 100143 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTE : unit terminal | T_QUESTION : unit terminal | T_PRIVATE : unit terminal | T_PREFIXOP : ( -# 1068 "src/ocaml/preprocess/parser_raw.mly" +# 1112 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100199 "src/ocaml/preprocess/parser_raw.ml" +# 100151 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_PLUSEQ : unit terminal | T_PLUSDOT : unit terminal @@ -100203,9 +100155,9 @@ module MenhirInterpreter = struct | T_PERCENT : unit terminal | T_OR : unit terminal | T_OPTLABEL : ( -# 1061 "src/ocaml/preprocess/parser_raw.mly" +# 1105 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100209 "src/ocaml/preprocess/parser_raw.ml" +# 100161 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_OPEN : unit terminal | T_ONCE : unit terminal @@ -100224,14 +100176,14 @@ module MenhirInterpreter = struct | T_LPAREN : unit terminal | T_LOCAL : unit terminal | T_LIDENT : ( -# 1041 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100230 "src/ocaml/preprocess/parser_raw.ml" +# 100182 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LETOP : ( -# 1019 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100235 "src/ocaml/preprocess/parser_raw.ml" +# 100187 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LET : unit terminal | T_LESSMINUS : unit terminal @@ -100250,62 +100202,62 @@ module MenhirInterpreter = struct | T_LBRACE : unit terminal | T_LAZY : unit terminal | T_LABEL : ( -# 1027 "src/ocaml/preprocess/parser_raw.mly" +# 1071 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100256 "src/ocaml/preprocess/parser_raw.ml" +# 100208 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_KIND_OF : unit terminal | T_KIND_ABBREV : unit terminal | T_INT : ( -# 1023 "src/ocaml/preprocess/parser_raw.mly" +# 1067 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100263 "src/ocaml/preprocess/parser_raw.ml" +# 100215 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INITIALIZER : unit terminal | T_INHERIT : unit terminal | T_INFIXOP4 : ( -# 1017 "src/ocaml/preprocess/parser_raw.mly" +# 1061 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100270 "src/ocaml/preprocess/parser_raw.ml" +# 100222 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP3 : ( -# 1016 "src/ocaml/preprocess/parser_raw.mly" +# 1060 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100275 "src/ocaml/preprocess/parser_raw.ml" +# 100227 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP2 : ( -# 1015 "src/ocaml/preprocess/parser_raw.mly" +# 1059 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100280 "src/ocaml/preprocess/parser_raw.ml" +# 100232 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP1 : ( -# 1014 "src/ocaml/preprocess/parser_raw.mly" +# 1058 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100285 "src/ocaml/preprocess/parser_raw.ml" +# 100237 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP0 : ( -# 1011 "src/ocaml/preprocess/parser_raw.mly" +# 1055 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100290 "src/ocaml/preprocess/parser_raw.ml" +# 100242 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INCLUDE : unit terminal | T_IN : unit terminal | T_IF : unit terminal | T_HASH_SUFFIX : unit terminal | T_HASH_INT : ( -# 1024 "src/ocaml/preprocess/parser_raw.mly" +# 1068 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100299 "src/ocaml/preprocess/parser_raw.ml" +# 100251 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASH_FLOAT : ( -# 998 "src/ocaml/preprocess/parser_raw.mly" +# 1042 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100304 "src/ocaml/preprocess/parser_raw.ml" +# 100256 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHOP : ( -# 1081 "src/ocaml/preprocess/parser_raw.mly" +# 1125 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100309 "src/ocaml/preprocess/parser_raw.ml" +# 100261 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHLPAREN : unit terminal | T_HASH : unit terminal @@ -100319,9 +100271,9 @@ module MenhirInterpreter = struct | T_FUN : unit terminal | T_FOR : unit terminal | T_FLOAT : ( -# 997 "src/ocaml/preprocess/parser_raw.mly" +# 1041 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 100325 "src/ocaml/preprocess/parser_raw.ml" +# 100277 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_FALSE : unit terminal | T_EXTERNAL : unit terminal @@ -100335,25 +100287,25 @@ module MenhirInterpreter = struct | T_DOWNTO : unit terminal | T_DOTTILDE : unit terminal | T_DOTOP : ( -# 1018 "src/ocaml/preprocess/parser_raw.mly" +# 1062 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100341 "src/ocaml/preprocess/parser_raw.ml" +# 100293 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DOTLESS : unit terminal | T_DOTDOT : unit terminal | T_DOT : unit terminal | T_DONE : unit terminal | T_DOCSTRING : ( -# 1107 "src/ocaml/preprocess/parser_raw.mly" +# 1151 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) -# 100350 "src/ocaml/preprocess/parser_raw.ml" +# 100302 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DO : unit terminal | T_CONSTRAINT : unit terminal | T_COMMENT : ( -# 1106 "src/ocaml/preprocess/parser_raw.mly" +# 1150 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) -# 100357 "src/ocaml/preprocess/parser_raw.ml" +# 100309 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_COMMA : unit terminal | T_COLONRBRACKET : unit terminal @@ -100363,9 +100315,9 @@ module MenhirInterpreter = struct | T_COLON : unit terminal | T_CLASS : unit terminal | T_CHAR : ( -# 975 "src/ocaml/preprocess/parser_raw.mly" +# 1019 "src/ocaml/preprocess/parser_raw.mly" (char) -# 100369 "src/ocaml/preprocess/parser_raw.ml" +# 100321 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_BEGIN : unit terminal | T_BARRBRACKET : unit terminal @@ -100378,9 +100330,9 @@ module MenhirInterpreter = struct | T_ASSERT : unit terminal | T_AS : unit terminal | T_ANDOP : ( -# 1020 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100384 "src/ocaml/preprocess/parser_raw.ml" +# 100336 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_AND : unit terminal | T_AMPERSAND : unit terminal @@ -100392,15 +100344,15 @@ module MenhirInterpreter = struct | N_virtual_with_private_flag : (Asttypes.private_flag) nonterminal | N_virtual_with_mutable_flag : (Asttypes.mutable_flag) nonterminal | N_virtual_flag : (Asttypes.virtual_flag) nonterminal - | N_value_description : (Parsetree.value_description * string Location.loc option) nonterminal + | N_value_description : (Parsetree.value_description * string Asttypes.loc option) nonterminal | N_value_constant : (Parsetree.constant) nonterminal - | N_value : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + | N_value : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) nonterminal | N_val_longident : (Longident.t) nonterminal | N_val_ident : (string) nonterminal | N_val_extra_ident : (string) nonterminal | N_use_file : (Parsetree.toplevel_phrase list) nonterminal - | N_unboxed_constant : (Parser_types.Constant.t) nonterminal + | N_unboxed_constant : (Parsetree.constant) nonterminal | N_type_variance : (Asttypes.variance * Asttypes.injectivity) nonterminal | N_type_unboxed_longident : (Longident.t) nonterminal | N_type_trailing_no_hash : (string) nonterminal @@ -100419,21 +100371,21 @@ module MenhirInterpreter = struct | N_structure : (Parsetree.structure) nonterminal | N_strict_function_or_labeled_tuple_type : (Parsetree.core_type) nonterminal | N_strict_binding_modes : (Parsetree.modes -> Parsetree.expression) nonterminal - | N_str_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal + | N_str_exception_declaration : (Parsetree.type_exception * string Asttypes.loc option) nonterminal | N_single_attr_id : (string) nonterminal | N_simple_pattern_not_ident : (Parsetree.pattern) nonterminal | N_simple_pattern : (Parsetree.pattern) nonterminal | N_simple_expr : (Parsetree.expression) nonterminal | N_simple_delimited_pattern : (Parsetree.pattern) nonterminal | N_signed_value_constant : (Parsetree.constant) nonterminal - | N_signed_constant : (Parser_types.Constant.t) nonterminal + | N_signed_constant : (Parsetree.constant) nonterminal | N_signature_item : (Parsetree.signature_item) nonterminal | N_signature : (Parsetree.signature) nonterminal - | N_sig_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal + | N_sig_exception_declaration : (Parsetree.type_exception * string Asttypes.loc option) nonterminal | N_seq_expr : (Parsetree.expression) nonterminal - | N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_ : ((Longident.t Location.loc * Parsetree.expression) list) nonterminal + | N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_ : ((Longident.t Asttypes.loc * Parsetree.expression) list) nonterminal | N_separated_or_terminated_nonempty_list_SEMI_pattern_ : (Parsetree.pattern list) nonterminal - | N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_ : ((string Location.loc * Parsetree.expression) list) nonterminal + | N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_ : ((string Asttypes.loc * Parsetree.expression) list) nonterminal | N_separated_or_terminated_nonempty_list_SEMI_expr_ : (Parsetree.expression list) nonterminal | N_row_field : (Parsetree.row_field) nonterminal | N_reversed_separated_nontrivial_llist_COMMA_one_type_parameter_of_several_ : (Parsetree.core_type list) nonterminal @@ -100444,17 +100396,16 @@ module MenhirInterpreter = struct | N_reversed_separated_nonempty_llist_COMMA_core_type_ : (Parsetree.core_type list) nonterminal | N_reversed_separated_nonempty_llist_BAR_row_field_ : (Parsetree.row_field list) nonterminal | N_reversed_separated_nonempty_llist_AND_with_constraint_ : (Parsetree.with_constraint list) nonterminal - | N_reversed_separated_nonempty_llist_AND_comprehension_clause_binding_ : (Jane_syntax.Comprehensions.clause_binding list) nonterminal + | N_reversed_separated_nonempty_llist_AND_comprehension_clause_binding_ : (Parsetree.comprehension_clause_binding list) nonterminal | N_reversed_separated_nonempty_llist_AMPERSAND_core_type_no_attr_ : (Parsetree.core_type list) nonterminal | N_reversed_preceded_or_separated_nonempty_llist_BAR_match_case_ : (Parsetree.case list) nonterminal - | N_reversed_nonempty_llist_typevar_ : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) nonterminal + | N_reversed_nonempty_llist_typevar_ : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal | N_reversed_nonempty_llist_name_tag_ : (string list) nonterminal | N_reversed_nonempty_llist_labeled_simple_expr_ : ((Parsetree.arg_label * Parsetree.expression) list) nonterminal | N_reversed_nonempty_llist_functor_arg_ : ((Lexing.position * Parsetree.functor_parameter) list) nonterminal - | N_reversed_nonempty_llist_comprehension_clause_ : (Jane_syntax.Comprehensions.clause list) nonterminal + | N_reversed_nonempty_llist_comprehension_clause_ : (Parsetree.comprehension_clause list) nonterminal | N_reversed_nonempty_concat_fun_param_as_list_ : (Parsetree.function_param list) nonterminal - | N_reversed_llist_preceded_CONSTRAINT_constrain__ : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) nonterminal + | N_reversed_llist_preceded_CONSTRAINT_constrain__ : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) nonterminal | N_reversed_labeled_tuple_pattern_pattern_no_exn_ : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) nonterminal | N_reversed_labeled_tuple_pattern_pattern_ : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) nonterminal | N_reversed_labeled_tuple_body : ((string option * Parsetree.expression) list) nonterminal @@ -100463,11 +100414,11 @@ module MenhirInterpreter = struct | N_reversed_bar_llist_constructor_declaration_ : (Parsetree.constructor_declaration list) nonterminal | N_reverse_product_jkind : (Parsetree.jkind_annotation list) nonterminal | N_record_expr_content : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list) nonterminal + (Longident.t Asttypes.loc * Parsetree.expression) list) nonterminal | N_rec_flag : (Asttypes.rec_flag) nonterminal | N_private_virtual_flags : (Asttypes.private_flag * Asttypes.virtual_flag) nonterminal | N_private_flag : (Asttypes.private_flag) nonterminal - | N_primitive_declaration : (Parsetree.value_description * string Location.loc option) nonterminal + | N_primitive_declaration : (Parsetree.value_description * string Asttypes.loc option) nonterminal | N_post_item_attribute : (Parsetree.attribute) nonterminal | N_possibly_poly_core_type_no_attr_ : (Parsetree.core_type) nonterminal | N_possibly_poly_core_type_ : (Parsetree.core_type) nonterminal @@ -100498,33 +100449,33 @@ module MenhirInterpreter = struct | N_option_preceded_EQUAL_expr__ : (Parsetree.expression option) nonterminal | N_option_preceded_COLON_core_type__ : (Parsetree.core_type option) nonterminal | N_option_preceded_COLON_atomic_type__ : (Parsetree.core_type option) nonterminal - | N_option_preceded_AS_mkrhs_LIDENT___ : (string Location.loc option) nonterminal - | N_option_jkind_constraint_ : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) nonterminal + | N_option_preceded_AS_mkrhs_LIDENT___ : (string Asttypes.loc option) nonterminal + | N_option_jkind_constraint_ : (Parsetree.jkind_annotation option) nonterminal | N_option_SEMI_ : (unit option) nonterminal | N_option_BAR_ : (unit option) nonterminal | N_opt_ampersand : (bool) nonterminal | N_operator : (string) nonterminal - | N_open_description : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) nonterminal - | N_open_declaration : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) nonterminal + | N_open_description : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) nonterminal + | N_open_declaration : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) nonterminal | N_object_type : (Parsetree.core_type) nonterminal | N_nonempty_type_kind : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) nonterminal | N_nonempty_list_raw_string_ : (string list) nonterminal - | N_nonempty_list_newtype_ : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) nonterminal + | N_nonempty_list_newtype_ : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal | N_nonempty_list_mode_legacy_ : (Parsetree.modes) nonterminal | N_nonempty_list_mode_ : (Parsetree.modes) nonterminal | N_nonempty_list_modality_ : (Parsetree.modalities) nonterminal - | N_nonempty_list_mkrhs_LIDENT__ : (string Location.loc list) nonterminal - | N_newtypes : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) nonterminal - | N_newtype : (string Location.loc * Parsetree.jkind_annotation Location.loc option) nonterminal + | N_nonempty_list_mkrhs_LIDENT__ : (string Asttypes.loc list) nonterminal + | N_newtypes : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal + | N_newtype : (string Asttypes.loc * Parsetree.jkind_annotation option) nonterminal | N_name_tag : (string) nonterminal | N_mutable_virtual_flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) nonterminal - | N_mutable_or_global_flag : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) nonterminal + | N_mutable_or_global_flag : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) nonterminal | N_mutable_flag : (Asttypes.mutable_flag) nonterminal | N_mty_longident : (Longident.t) nonterminal - | N_module_type_subst : (Parsetree.module_type_declaration * string Location.loc option) nonterminal - | N_module_type_declaration : (Parsetree.module_type_declaration * string Location.loc option) nonterminal + | N_module_type_subst : (Parsetree.module_type_declaration * string Asttypes.loc option) nonterminal + | N_module_type_declaration : (Parsetree.module_type_declaration * string Asttypes.loc option) nonterminal | N_module_type : (Parsetree.module_type) nonterminal - | N_module_subst : (Parsetree.module_substitution * string Location.loc option) nonterminal + | N_module_subst : (Parsetree.module_substitution * string Asttypes.loc option) nonterminal | N_module_name : (string option) nonterminal | N_module_expr : (Parsetree.module_expr) nonterminal | N_module_declaration_body : (Parsetree.module_type) nonterminal @@ -100540,11 +100491,11 @@ module MenhirInterpreter = struct | N_mk_longident_mod_ext_longident___anonymous_47_ : (Longident.t) nonterminal | N_mk_longident_mod_ext_longident_UIDENT_ : (Longident.t) nonterminal | N_mk_longident_mod_ext_longident_LIDENT_ : (Longident.t) nonterminal - | N_method_ : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + | N_method_ : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) nonterminal | N_meth_list : (Parsetree.object_field list * Asttypes.closed_flag) nonterminal | N_match_case : (Parsetree.case) nonterminal - | N_listx_SEMI_record_pat_field_UNDERSCORE_ : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) nonterminal + | N_listx_SEMI_record_pat_field_UNDERSCORE_ : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) nonterminal | N_list_use_file_element_ : (Parsetree.toplevel_phrase list list) nonterminal | N_list_text_str_structure_item__ : (Parsetree.structure_item list list) nonterminal | N_list_text_cstr_class_field__ : (Parsetree.class_field list list) nonterminal @@ -100580,30 +100531,30 @@ module MenhirInterpreter = struct | N_label_declarations : (Parsetree.label_declaration list) nonterminal | N_label_declaration_semi : (Parsetree.label_declaration) nonterminal | N_label_declaration : (Parsetree.label_declaration) nonterminal - | N_kind_abbreviation_decl : (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation) nonterminal - | N_jkind_constraint : (Ocaml_parsing.Jane_syntax.Jkind.annotation) nonterminal - | N_jkind_annotation : (Ocaml_parsing.Jane_syntax.Jkind.annotation) nonterminal - | N_jkind : (Parsetree.jkind_annotation) nonterminal + | N_kind_abbreviation_decl : (string Asttypes.loc * Parsetree.jkind_annotation) nonterminal + | N_jkind_desc : (Parsetree.jkind_annotation_desc) nonterminal + | N_jkind_constraint : (Parsetree.jkind_annotation) nonterminal + | N_jkind_annotation : (Parsetree.jkind_annotation) nonterminal | N_item_extension : (Parsetree.extension) nonterminal | N_interface : (Parsetree.signature) nonterminal | N_index_mod : (string) nonterminal | N_include_kind : (Parsetree.include_kind) nonterminal | N_implementation : (Parsetree.structure) nonterminal | N_ident : (string) nonterminal - | N_generic_type_declaration_nonrec_flag_type_kind_ : ((Asttypes.rec_flag * string Location.loc option) * + | N_generic_type_declaration_nonrec_flag_type_kind_ : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) nonterminal - | N_generic_type_declaration_no_nonrec_flag_type_subst_kind_ : ((Asttypes.rec_flag * string Location.loc option) * + | N_generic_type_declaration_no_nonrec_flag_type_subst_kind_ : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) nonterminal | N_generic_constructor_declaration_epsilon_ : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) nonterminal + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) nonterminal | N_generic_constructor_declaration_BAR_ : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) nonterminal - | N_generalized_constructor_arguments : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) nonterminal + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) nonterminal + | N_generalized_constructor_arguments : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) nonterminal | N_functor_args : ((Lexing.position * Parsetree.functor_parameter) list) nonterminal | N_functor_arg : (Lexing.position * Parsetree.functor_parameter) nonterminal | N_function_type : (Parsetree.core_type) nonterminal @@ -100618,7 +100569,7 @@ module MenhirInterpreter = struct | N_extension_constructor_rebind_epsilon_ : (Parsetree.extension_constructor) nonterminal | N_extension_constructor_rebind_BAR_ : (Parsetree.extension_constructor) nonterminal | N_extension : (Parsetree.extension) nonterminal - | N_ext : (string Location.loc option) nonterminal + | N_ext : (string Asttypes.loc option) nonterminal | N_direction_flag : (Asttypes.direction_flag) nonterminal | N_delimited_type_supporting_local_open : (Parsetree.core_type) nonterminal | N_delimited_type : (Parsetree.core_type) nonterminal @@ -100629,12 +100580,12 @@ module MenhirInterpreter = struct | N_constr_longident : (Longident.t) nonterminal | N_constr_ident : (string) nonterminal | N_constr_extra_nonprefix_ident : (string) nonterminal - | N_constant : (Parser_types.Constant.t) nonterminal - | N_comprehension_iterator : (Jane_syntax.Comprehensions.iterator) nonterminal - | N_comprehension_clause_binding : (Jane_syntax.Comprehensions.clause_binding) nonterminal - | N_comprehension_clause : (Jane_syntax.Comprehensions.clause) nonterminal + | N_constant : (Parsetree.constant) nonterminal + | N_comprehension_iterator : (Parsetree.comprehension_iterator) nonterminal + | N_comprehension_clause_binding : (Parsetree.comprehension_clause_binding) nonterminal + | N_comprehension_clause : (Parsetree.comprehension_clause) nonterminal | N_clty_longident : (Longident.t) nonterminal - | N_class_type_declarations : (string Location.loc option * Parsetree.class_type_declaration list) nonterminal + | N_class_type_declarations : (string Asttypes.loc option * Parsetree.class_type_declaration list) nonterminal | N_class_type : (Parsetree.class_type) nonterminal | N_class_simple_expr : (Parsetree.class_expr) nonterminal | N_class_signature : (Parsetree.class_type) nonterminal @@ -100648,7 +100599,7 @@ module MenhirInterpreter = struct | N_class_expr : (Parsetree.class_expr) nonterminal | N_attribute : (Parsetree.attribute) nonterminal | N_attr_payload : (Parsetree.payload) nonterminal - | N_attr_id : (string Location.loc) nonterminal + | N_attr_id : (string Asttypes.loc) nonterminal | N_atomic_type : (Parsetree.core_type) nonterminal | N_atat_mode_expr : (Parsetree.modes) nonterminal | N_at_mode_expr : (Parsetree.modes) nonterminal @@ -101093,11 +101044,11 @@ module MenhirInterpreter = struct | 206 -> X (N N_item_extension) | 205 -> - X (N N_jkind) - | 204 -> X (N N_jkind_annotation) - | 203 -> + | 204 -> X (N N_jkind_constraint) + | 203 -> + X (N N_jkind_desc) | 202 -> X (N N_kind_abbreviation_decl) | 201 -> @@ -101478,22 +101429,22 @@ module MenhirInterpreter = struct assert false and lr0_incoming = - (16, "\000\000\000\006\000H\000\004\000\006\000\b\000\n\000\012\000\018\000\020\000\022\000\024\000\026\000\030\000 \000(\0000\000>\000J\000N\000R\000T\000V\000X\000Z\000\\\000f\000h\000l\000n\000r\000\144\000\154\000\156\000\168\000\170\000\172\000\196\000\198\000\200\000\202\000\206\000\208\000\212\000\220\000\222\000\224\000\236\000\240\000\242\001\002\001\006\001\022\001\024\001\028\000_\000\234\002\011\002\011\001\207\000\136\002\011\000\012\001\207\001e\000j\000$\000@\000B\000D\000F\000H\000J\000^\000b\000d\000p\000v\000\158\000\160\000\162\000\164\000\166\000\180\000\192\000\214\000\228\000j\000,\000\232\001\161\000.\000t\000\138\001\161\0002\000t\000\142\001\161\0004\000t\000\252\001\n\001\014\001\018\001\020\001\026\001\030\001 \001\001\000.\000n\0001\001\000\000\014\000P\000l\001\015\001\015\001\015\000\016\000\018\0008\000:\000\018\000n\001\167\000<\000n\001\000\000L\000j\000\016\001\000\000\016\000j\000\148\000:\001\167\000j\000:\001\167\001\000\000\175\001\030\001\155\000\004\000n\000\174\001\000\000j\000\\\001\207\001e\000\018\000(\001e\000\020\001\207\001e\000@\000F\001\014\000V\000d\001\014\000j\000\162\001\014\000F\000d\0009\000\016\001e\001\000\001\153\001\155\000^\000n\001\021\001\021\001\030\001\155\001\167\002\007\001e\000:\001\167\001e\001\000\001\153\000C\000\135\000.\000\246\000\225\000\225\0009\000\016\001e\000:\001\167\001e\000A\000n\001\000\001\153\000\249\000\214\000\018\000\024\000>\000j\000.\000v\000j\000:\001\167\000z\002\011\000\014\000\016\000\018\000\022\001\207\001e\000\028\000j\000n\000\250\000|\001\012\000\253\000~\0002\000\253\000\138\000\182\000n\001\000\000n\000\184\000n\0017\000j\0017\000.\000\234\000\018\001G\000\234\000n\001I\001\237\000;\000=\000?\000E\001\007\0017\000\234\000j\000K\000`\000K\001\020\000n\001\017\001\017\002\017\000`\000K\002\017\000Y\000\229\000j\000Y\000\127\000.\000\184\001\237\000;\000E\0017\000\234\000=\000?\001?\001A\000\246\000\016\001\000\001\153\000:\001\167\001\000\001\153\001\015\000j\000\149\000:\001\167\000j\000:\001\167\001\000\001\153\000.\000\234\001\183\001\199\001\205\001\211\001\213\001\215\000.\000`\000K\002\017\000Y\001\015\000K\000`\000K\002\017\000Y\001\015\000K\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\002\r\000$\000n\001\000\002\r\000\184\001\237\000;\000E\000\129\000$\000n\001\000\002\r\002\r\002\r\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\002\007\002\023\001\024\000:\001\167\000j\000\016\001\000\001\153\000.\000:\001\167\001\000\001\153\000.\001\215\000.\000\246\000\016\001\000\001\153\000:\001\167\001\000\001\153\001\215\000K\002\017\001\215\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000K\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000K\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\001\015\000K\002\017\000Y\001\015\000K\002\017\002\017\001\215\001\211\002\r\000$\000\129\000.\002\r\000$\000\129\000.\001\012\001\016\001\167\000Q\000}\000\139\0002\001\012\000}\001\027\000R\001\030\000\255\000\145\001\030\002\023\001e\002\023\001e\001\215\000Q\0002\000}\001\012\000\139\0002\000\139\0002\000\139\0002\000\192\000\151\0002\001\027\001\027\001\215\001\000\001\215\000\250\001\215\000I\000.\000\246\000\028\000j\000n\000I\000.\000n\000\246\000\028\000j\000n\000I\000.\000n\000\"\000&\000@\000T\001\207\001e\000j\000\016\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000F\000\152\000\176\000\178\000\204\000d\000\152\000\176\000\178\000\204\000j\000F\000\\\001\207\001e\000\016\000\018\001-\000.\001\000\000\\\000\020\000R\001e\000\016\000 \001e\000\020\001\207\001e\000V\000A\000n\000\249\000G\000\161\000\134\002\011\000*\0006\000D\000F\000N\001\014\001\207\001e\000j\000\012\001e\000P\000X\001\207\001e\000n\0015\000\234\000\018\000n\001;\001=\001\253\000b\000d\000h\001\207\001e\000j\000@\000\128\000l\000n\000t\000p\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\128\000\130\000\138\0002\000\142\001=\001Q\0004\001\139\001\000\001\215\000\243\000\214\000\144\001\207\001e\000\152\000\174\000n\000E\0017\000\234\000\176\000\178\000\182\000\146\000\184\000E\000\204\000\206\001\004\000+\0001\0003\0007\000a\000c\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000g\000i\000\232\000F\000d\000i\000k\001\027\0015\000\234\000j\000.\000\212\001\207\001e\000c\000\165\000\199\000\201\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\001\205\001\223\001\227\000\232\000\201\000\254\000\201\001\012\000\201\001\024\0001\002\007\001\027\000\201\001\133\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000\232\000\201\001\223\000j\000\020\001\021\000.\000c\000d\000\254\000.\000\201\000.\001\000\001\215\000.\000\201\000\254\000.\000\201\000.\000\138\0002\000w\0002\000\201\000,\000w\000g\000\232\000\201\000\165\000.\000\201\000c\000\201\000\237\000,\000\016\000,\000\251\001Q\001\b\000w\001\b\000\248\000w\000\248\000\146\000c\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000\232\000\163\000\197\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000\232\000\197\000\254\000\201\001\012\000\201\001\024\0001\002\007\000\199\001\131\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000\232\000\197\000\232\000\197\000\146\000c\000\232\000\197\000n\000\146\000c\0001\000\028\000j\000n\001\000\000\149\000\234\001\215\001\018\001\017\002\015\001\215\002\015\002\017\001\015\001\141\000.\001\141\000.\000n\000<\000j\001\015\001\141\000\214\000r\000N\001\014\001\207\001e\000\196\001e\000j\000.\001-\001\000\000j\000.\000`\000\196\001e\000\155\001\181\001\179\000`\001#\001)\000\004\000\020\000A\001\139\000\214\000>\000\252\002\023\000\031\002\023\000\161\000\242\001\215\000\214\001\215\000C\000\\\000\020\001#\000\214\001)\000`\001)\002\007\0017\000\234\000\018\001\167\001C\001\167\001\205\000\252\001)\0015\000\214\0017\000\234\000\252\0017\000!\000\141\001\028\000!\0017\001\181\001)\001)\000.\001)\000.\001\179\000`\000\227\001/\000j\000.\001/\000.\001\000\001)\000.\000\227\002\007\0015\001\205\001/\000\170\000\130\000\138\000\140\000n\000\214\000\142\000n\000\182\000\144\001\207\001e\000\226\000\230\000\146\001\006\001\207\001e\000\172\001\207\001e\000\198\001\207\001e\001\012\000\201\000\b\000\200\001\207\001e\000L\000\016\000j\000j\000j\000\201\001\000\000\149\000\234\001\215\002\015\001\215\002\015\002\017\001u\000.\001u\000.\000\201\001\000\000\149\000\234\001\215\002\015\001\215\002\015\002\017\001\015\001y\000\235\000.\001y\000\235\000.\000n\000\195\000j\000\020\000j\000n\001\000\001\153\000.\000n\001\000\001\153\000.\001\r\001\023\000.\001\025\000n\001\r\000\201\001\000\000\149\000\234\001\215\000.\001\015\000\201\001\000\000\149\000\234\001\215\001\215\001u\000.\001w\000.\001u\000.\000\146\000j\000\201\001\000\000\149\000\234\001\215\000.\001\015\000\201\000.\001\000\000\149\000\234\001\215\000.\001\215\001u\000.\001u\000.\000c\000c\000\159\001\135\001\189\001\187\001\000\002\r\000\245\000`\000\198\001\207\001e\000\147\000\246\000\028\000j\000n\000I\000.\000n\000\146\001\014\000+\000/\0001\0007\000e\000\174\000n\000\180\000e\000\184\000n\000\228\000j\000\198\001\207\001e\000\147\000,\000\202\001\207\001e\000\201\000\214\000\210\001\022\001\207\001e\000e\000\234\000j\000S\000\198\001\207\001e\000\147\001\012\001O\001O\000e\000\028\000j\000n\000I\000.\000n\000<\000n\000L\000e\001\027\0015\000\234\000j\000.\000D\000F\000\\\001\207\001e\001/\001\000\001)\000.\000b\000d\000p\000c\001\000\001\215\000\214\000s\000\167\000\246\000\028\000j\000n\000I\000.\000n\000\146\000e\000\246\000\028\000j\000n\000I\000.\000n\000\146\000e\0019\001\205\001\223\001\229\000\198\001\207\001e\000\147\001\027\000e\001}\000\170\000s\001\185\001\191\000$\000\198\001\207\001e\000\147\001\191\000B\000\198\001\207\001e\000\147\001\191\000D\000\198\001\207\001e\000\147\001\191\000F\000\198\001\207\001e\000\147\001\191\000H\000\198\001\207\001e\000\147\001\191\000J\000\198\001\207\001e\000\147\001\191\000^\000\198\001\207\001e\000\147\001\191\000b\000\198\001\207\001e\000\147\001\191\000d\000\198\001\207\001e\000\147\001\191\000v\000\198\001\207\001e\000\147\001\191\000\158\000\198\001\207\001e\000\147\001\191\000\160\000\198\001\207\001e\000\147\001\191\000\162\000\198\001\207\001e\000\147\001\191\000\164\000\198\001\207\001e\000\147\001\191\000\166\000\198\001\207\001e\000\147\001\191\000\192\000\198\001\207\001e\000\147\001\191\000\214\000\198\001\207\001e\000\147\001\191\000\246\000\028\000j\000n\000I\000.\000n\000\146\000e\000\198\001\207\001e\000\147\001\191\000\252\000\198\001\207\001e\000\147\001\191\000\254\000\198\001\207\001e\000\147\001\191\001\n\000\198\001\207\001e\000\147\001\191\001\018\000\198\001\207\001e\000\147\001\191\001\020\000\198\001\207\001e\000\147\001\191\001\030\000\198\001\207\001e\000\147\001\191\001 \000\198\001\207\001e\000\147\001\191\002\007\001\223\000e\002\025\000\198\001\207\001e\000\147\001\191\000,\000H\002\011\000s\000s\001\028\001e\000j\0001\002\017\000.\000\214\000s\000[\001\187\000I\000\233\000\214\001\185\001\193\001\189\0001\001\000\000\020\001\023\000\234\001\215\000\214\000s\002\015\000\214\000s\000\149\000\234\001\215\000\214\000s\002\015\000\214\000s\000I\000\214\000s\002\015\000\214\000s\000[\002\017\000\214\000s\000a\001\000\001\215\000\214\000s\002\015\000\214\000s\002\017\000\214\000s\000\197\000\214\000s\001\015\0001\001\000\000\149\000\234\001\215\000\214\000s\002\015\000\214\000s\000I\000\214\000s\002\015\000\214\000s\000[\002\017\000\214\000s\001\127\001\129\000\187\001_\001_\002\021\001\191\000\198\001\207\001e\000\147\001\191\000\197\000\214\000s\001q\000\170\000s\001\026\001s\001s\001\014\000s\000.\000\128\000\198\001\207\001e\000\147\000\b\000\198\001\207\001e\000\147\001\191\000\202\000\143\001\028\001e\000\014\000\201\000\170\000\198\001\207\001e\000\147\001\191\000P\000\201\000\170\000\198\001\207\001e\000\147\001\191\000l\000\201\000\170\000\198\001\207\001e\000\147\001\191\000\201\000\170\000\198\001\207\001e\000\147\001\191\000\214\000\198\001\207\001e\000\147\000\026\000\224\001\209\000\198\001\207\001e\000\147\001\191\001\191\001\209\000\198\001\207\001e\000\147\001\191\001\231\001\233\001\233\000\157\000\248\001\235\001\235\000\248\000{\000\248\001\191\000,\000{\001\191\000\157\000\248\000\130\000\198\001\207\001e\000\147\000\157\001\b\001\b\000{\001\b\001\191\000\157\001\b\000\138\0002\000\198\001\207\001e\000\147\000\157\0002\000{\0002\001\191\000\157\0002\000\140\000y\000\188\000\142\000e\000\004\000u\001\139\000\233\000\241\000,\000u\000u\000\177\0004\0015\000\234\000n\0001\000\146\000e\000\228\000j\000{\000.\000t\000\198\001\207\001e\000\147\001\191\000\138\000{\0002\000t\000\198\001\207\001e\000\147\001\191\000\142\000{\0004\000t\000\198\001\207\001e\000\147\001\191\000\234\000j\000s\000.\000t\000\198\001\207\001e\000\147\001\191\000\138\000s\0002\000t\000\198\001\207\001e\000\147\001\191\000\142\000s\0004\000t\000\198\001\207\001e\000\147\001\191\0015\000\228\000j\000{\000.\000t\000\198\001\207\001e\000\147\001\191\000\138\000{\0002\000t\000\198\001\207\001e\000\147\001\191\000\142\000{\0004\000t\000\198\001\207\001e\000\147\001\191\001\139\000t\000\198\001\207\001e\000\147\001\191\000e\000\153\001\137\001\137\001\191\000s\000.\000\138\000s\0002\000\142\000s\0004\0015\000\228\000j\000{\000.\000\138\000{\0002\000\142\000{\0004\001\139\000s\000s\001\209\000s\000\240\000s\000\236\000{\000{\000.\000\138\000{\0002\000\142\000{\0004\000e\000\198\001\207\001e\000\147\001\191\001\193\000s\000`\000s\000`\000\234\000s\001O\000\147\000s\000\030\000\198\001\207\001e\000\147\000\222\000\198\001\207\001e\000\147\001\191\001\191\000\222\000\198\001\207\001e\000\147\001\191\000\220\000s\000\220\000e\000\198\001\207\001e\000\147\000\190\001\191\000\190\000e\000e\000\198\001\207\001e\000\147\000\167\000.\001\191\000\177\0004\000\198\001\207\001e\000\147\001\191\000\241\000,\000y\000\188\000y\000\188\000\198\001\207\001e\000\147\000\157\0002\000{\0002\001\191\000\157\0002\000\198\001\207\001e\000\147\000\157\001\b\001\b\000{\001\b\001\191\000\157\001\b\000s\001\207\001e\001/\000\170\000s\000\\\001\207\001e\001-\000\214\001/\001\000\001)\000\214\001/\0013\000\170\000s\001\181\0013\000\212\001\207\001e\000\018\000j\000\254\000.\000\138\001\225\000R\000\142\000Z\000\194\001\031\000n\001\000\000\149\000\234\002\023\000\189\001\018\000n\001\019\001\019\000\231\001e\000,\001e\002\023\001\143\0004\001\145\001\143\001\147\000\194\002\r\000\231\000\131\000$\000\194\002\r\000\231\002\r\000\231\001\219\002\r\000\231\001\000\000j\000:\001\167\001\000\001\153\000.\000\246\000\016\001\000\001\153\000:\001\167\001\000\001\153\001\215\000\149\000\234\001\219\000`\002\r\002\r\001\219\000`\002\r\002\r\001\177\001e\000\170\000s\001\227\001\207\001e\0000\000\179\001\129\001_\000s\000\235\000.\001\141\000\235\000.\000n\000[\000\198\001\207\001e\000\147\001\191\000s\000\198\001\207\001e\000\147\000\157\000\248\000\248\000{\000\248\001\191\000\157\000\248\000e\000\\\001\207\001e\001/\000.\001\000\001)\000.\000s\000.\000I\000.\002\015\000.\000s\000\004\000\147\000s\000\198\001\207\001e\000\147\000.\000\250\001)\000.\001\000\001)\000.\000\250\001)\000.\001\191\000.\000\250\001)\000.\001\000\001)\000.\000\250\001)\000.\001/\001_\001\207\001e\001/\001_\000\\\000\020\001\207\001e\001\167\000\214\001)\000\239\001_\001\207\001e\0000\001-\0013\001_\001\028\001e\001-\0013\001_\001i\001i\001-\0013\001_\000x\002\011\000<\000\201\000\b\000s\000\132\002\011\000\150\000n\000\214\001\153\000\168\000\196\000\208\001\207\001e\0001\001\000\000\149\000\234\001\215\000\191\000\231\000\214\000\"\001\011\001\011\001_\001\215\000\212\001\207\001e\001\225\000\214\000j\0015\000\234\000j\001\223\001e\001_\001\177\001e\001_\001\000\000*\000N\001\014\001\207\001e\0017\001_\001\207\001e\0017\001_\000\\\000\020\001\207\001e\001\167\000\252\001)\001_\001\207\001e\000\018\000\252\0017\001_\0000\001-\001\000\001)\001_\001\028\001e\001-\001\000\001)\001_\001g\001g\001-\000\214\0015\001_\001\000\001)\0011\001_\001\181\0011\000\212\001\207\001e\001\225\001\002\000\020\001\207\001e\000\n\000'\000\138\000C\000\133\0002\000\246\000C\001\195\000n\000\214\000T\001e\000j\001\215\000.\001\249\000\012\001e\000\n\000Z\000Z\000\n\001\029\000n\001\000\001\215\001_\000f\001e\000\n\000>\000>\000\n\000\181\000n\001\000\000\191\001_\000\156\001e\000r\000N\001\014\001e\0015\000\170\000\138\000\137\0002\001\237\000\246\001\215\001\215\001\205\001\237\001\245\002\007\001e\0015\000\170\001\245\001\245\001_\000\242\001e\001\215\000\214\001\215\001\221\001_\001Y\000\220\001\157\001_\001\197\001\247\001Y\001\245\001_\001\028\001e\000'\001\195\000n\000\214\001\245\001_\001k\001k\001\207\001e\000'\001\195\000n\001\000\000n\001\000\000K\000`\000\138\001\215\000K\000`\000\229\000K\000`\0017\000\234\000n\001\205\001\241\001\245\001\241\001\241\001\241\001_\001\028\001e\000'\001\195\000n\001\000\001\241\001_\001m\001m\000)\000m\000q\000\185\001\003\001%\001'\001+\001]\001\149\001\157\001_\001\163\001\207\001e\001)\001_\000\231\001\169\001\028\001e\000A\000n\000\249\000G\000\161\001_\001c\001\151\001c\001\171\001\028\001e\000A\000n\000\249\000\252\000\138\000\142\001\143\0004\000\232\001\012\001\225\001\177\001e\000\173\001\012\001\175\001\t\000\161\001_\001a\001\173\001\175\001\215\000\214\000>\000\142\001\143\0004\000\232\001\217\001\225\001\177\001e\000\142\001\143\0004\000\232\001\217\001\217\001a\001\197\001\239\001]\000o\001]\001\215\001\002\001\207\001e\000'\001\195\000n\000j\000\214\000T\001e\001\251\000\012\001\014\001e\000Z\001!\000n\000\214\000s\000I\000\214\000s\000-\001_\001e\000\n\000Z\000Z\000\n\000%\000n\001\000\001\215\001!\000n\000\214\000s\000I\000\214\000s\000f\001\014\001e\000>\000\183\000n\001\000\000\020\001\023\000\234\001\215\000\214\000s\000\191\000\214\000s\000[\001K\001_\001e\000\n\000>\000>\000\n\000#\000n\001\000\000\191\000\183\000n\001\000\000\020\001\023\000\234\001\215\000\214\000s\000\191\000\214\000s\000[\000\154\001e\000s\001_\000\156\001\014\001e\000j\000r\000H\002\011\001e\000\179\001\129\001_\000N\001\014\001e\0015\000\170\000\138\000\137\0002\001\253\000\200\001e\001\135\000`\001{\000\170\001\205\001\243\000\153\001\253\002\005\002\007\002\021\002\005\001\255\001\255\002\005\001e\0015\000\170\002\005\001e\000\179\001\129\001_\002\005\000.\001\000\001\241\000.\002\005\001\024\000n\000\247\001_\001e\002\005\000\247\001_\000\242\001e\001\221\001_\001W\000\220\001\157\001_\001\197\002\003\001W\002\005\001\000\001\241\000\214\002\005\001\135\002\001\002\001\001_\001\028\001e\000'\001\195\000n\002\001\001_\001o\001o\000)\000U\000r\000]\000q\000\185\001\005\001'\001[\001}\001\149\001\157\001_\001\163\001\207\001e\001/\001_\001\169\001c\001\197\001\239\000W\000s\001_\001[\000\193\001[\001}\002\t\0002\000\193\0002\000s\001_\001[\001[\002\t\0002\001_\000E\000B\000\183\001\012\001\225\000\214\001\223\001e\000\171\001_\001\175\001\203\001\173\001\175\001\201\001\203\001\225\000\214\001\223\001e\000A\000n\000\249\000G\000\161\001_\000E\000B\000\183\000\171\001_\000W\000\220\001/\001)\000.\000\146\000c\000\232\000\201\000\146\000c\000\232\000\201\000n\000\201\000.\001\000\001\215\000.\001\251\001W\000\220\000e\000\146\000e\000\198\001\207\001e\000\147\001\191\000\146\000e\000\198\001\207\001e\000\147\001\191\000n\000s\000\004\000\147\000s\000\193\0002\000n\001\000\000\189\001e\000,\001e\000\232\001M\002\r\000,\001M\000\192\001M\000\192\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000\142\001\143\0004\000\232\001\215\001\217\001\t\000\252\001\t\000\161\001_\000E\000B\000\183\000\169\001_\001\175\001\173\001\175\000A\000n\000\249\000\252\001\t\000\161\001_\000E\000B\000\183\000\169\001_\000o\000\220\001)\000.\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000K\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000K\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\002\r\000$\000\129\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\002\r\000$\000\129\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\001\215\001\153\000.\001\215\001\155\000.\001\153\000.\000\246\000\016\001\000\001\153\000:\001\167\001\000\001\153\001\215\000:\001\167\000\191\000\231\001_\002\t\0002\001e\000s\000\240\000s\000\236\000W\000\218\001\165\000\000\000o\000\218\001\159\000\000\000j\000\254\000.\0003\000\223\0017\000\234\000j\000\254\000.\0003\001\167\001E\001\167\001\227\002\019\000\218\000\000\000\221\001\223\000\218\000\000\000\219\001\215\000\218\000\000\000s\000\218\000\217\000\000\000\215\0017\000\218\000\000\000\213\0015\000\218\000\000\000\211\001/\000\218\000\000\000\209\001)\000\218\000\000\000\207\001#\000\218\000\000\000\201\000\218\000\205\000\000\000/\000\218\000\203\0015\000\234\000\000\000\174\001\167\000\024\000\"\000\152\000\206\000/\0015\000\184\001\167\000\024\000\"\000\152\000\206\000/\0015\000\218\000M\000O\000*\000U\001U\000s\001_\000*\001U\000*\000\000\000*\000O\000U\001S\001S\000s\001_\001S\001S\0005\000s\001_\001S\000\218\001S\000\218") + (16, "\000\000\000\006\000H\000\004\000\006\000\b\000\n\000\012\000\018\000\020\000\022\000\024\000\026\000\030\000 \000(\0000\000>\000J\000N\000R\000T\000V\000X\000Z\000\\\000f\000h\000l\000n\000r\000\144\000\154\000\156\000\168\000\170\000\172\000\196\000\198\000\200\000\202\000\206\000\208\000\212\000\220\000\222\000\224\000\236\000\240\000\242\001\002\001\006\001\022\001\024\001\028\000_\000\234\002\011\002\011\001\207\000\136\002\011\000\012\001\207\001e\000j\000$\000@\000B\000D\000F\000H\000J\000^\000b\000d\000p\000v\000\158\000\160\000\162\000\164\000\166\000\180\000\192\000\214\000\228\000j\000,\000\232\001\161\000.\000t\000\138\001\161\0002\000t\000\142\001\161\0004\000t\000\252\001\n\001\014\001\018\001\020\001\026\001\030\001 \001\001\000.\000n\0001\001\000\000\014\000P\000l\001\015\001\015\001\015\000\016\000\018\0008\000:\000\018\000n\001\167\000<\000n\001\000\000L\000j\000\016\001\000\000\016\000j\000\148\000:\001\167\000j\000:\001\167\001\000\000\175\001\030\001\151\001\155\000\004\000n\000\174\001\000\000j\000\\\001\207\001e\000\018\000(\001e\001\018\000n\001\019\001\019\000o\000\220\000\231\000\020\001\207\001e\000@\000F\001\014\000V\000d\001\014\000j\000\162\001\014\000F\000d\0009\000\016\001e\001\000\001\155\000^\000n\001\021\001\021\001\030\001\155\001\167\002\007\001e\000:\001\167\001e\001\000\001\155\000C\000\135\000.\000\246\000\225\000\225\0009\000\016\001e\000:\001\167\001e\000A\000n\001\000\001\155\000\249\000\214\000\018\000\024\000>\000j\000.\000v\000j\000:\001\167\000z\002\011\000\014\000\016\000\018\000\022\001\207\001e\000\028\000j\000n\000\250\000|\001\012\000\253\000~\0002\000\253\000\138\000\182\000n\001\000\000n\000\184\000n\0017\000j\0017\000.\000\234\000\018\001G\000\234\000n\001I\001\237\000;\000=\000?\000E\001\007\0017\000\234\000j\000K\000`\000K\001\020\000n\001\017\001\017\002\017\000`\000K\002\017\000Y\000\229\000j\000Y\000\127\000.\000\184\001\237\000;\000E\0017\000\234\000=\000?\001?\001A\000\246\000\016\001\000\001\155\000:\001\167\001\000\001\155\001\015\000j\000\149\000:\001\167\000j\000:\001\167\001\000\001\155\000.\000\234\001\183\001\199\001\205\001\211\001\213\001\215\000.\000`\000K\002\017\000Y\001\015\000K\000`\000K\002\017\000Y\001\015\000K\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\002\r\000$\000n\001\000\002\r\000\184\001\237\000;\000E\000\129\000$\000n\001\000\002\r\002\r\002\r\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\002\007\002\023\001\024\000:\001\167\000j\000\016\001\000\001\155\000.\000:\001\167\001\000\001\155\000.\001\215\000.\000\246\000\016\001\000\001\155\000:\001\167\001\000\001\155\001\215\000K\002\017\001\215\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000K\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000K\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\001\015\000K\002\017\000Y\001\015\000K\002\017\002\017\001\215\001\211\002\r\000$\000\129\000.\002\r\000$\000\129\000.\001\012\001\016\001\167\000Q\000}\000\139\0002\001\012\000}\001\027\000R\001\030\000\255\000\145\001\030\002\023\001e\002\023\001e\001\215\000Q\0002\000}\001\012\000\139\0002\000\139\0002\000\139\0002\000\192\000\151\0002\001\027\001\027\001\215\001\000\001\215\000\250\001\215\000I\000.\000\246\000\028\000j\000n\000I\000.\000n\000\246\000\028\000j\000n\000I\000.\000n\000\"\000&\000@\000T\001\207\001e\000j\000\016\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000F\000\152\000\176\000\178\000\204\000d\000\152\000\176\000\178\000\204\000j\000F\000\\\001\207\001e\000\016\000\018\001-\000.\001\000\000\\\000\020\000R\001e\000\016\000 \001e\000\020\001\207\001e\000V\000A\000n\000\249\000G\000\161\000\134\002\011\000*\0006\000D\000F\000N\001\014\001\207\001e\000j\000\012\001e\000P\000X\001\207\001e\000n\0015\000\234\000\018\000n\001;\001=\001\253\000b\000d\000h\001\207\001e\000j\000@\000\128\000l\000n\000t\000p\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\128\000\130\000\138\0002\000\142\001=\001Q\0004\001\139\001\000\001\215\000\243\000\214\000\144\001\207\001e\000\152\000\174\000n\000E\0017\000\234\000\176\000\178\000\182\000\146\000\184\000E\000\204\000\206\001\004\000+\0001\0003\0007\000a\000c\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000g\000i\000\232\000F\000d\000i\000k\001\027\0015\000\234\000j\000.\000\212\001\207\001e\000c\000\165\000\199\000\201\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\001\205\001\223\001\227\000\232\000\201\000\254\000\201\001\012\000\201\001\024\0001\002\007\001\027\000\201\001\133\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000\232\000\201\001\223\000j\000\020\001\021\000.\000c\000d\000\254\000.\000\201\000.\001\000\001\215\000.\000\201\000\254\000.\000\201\000.\000\138\0002\000w\0002\000\201\000,\000w\000g\000\232\000\201\000\165\000.\000\201\000c\000\201\000\237\000,\000\016\000,\000\251\001Q\001\b\000w\001\b\000\248\000w\000\248\000\146\000c\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000\232\000\163\000\197\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000\232\000\197\000\254\000\201\001\012\000\201\001\024\0001\002\007\000\199\001\131\000\246\000\028\000j\000n\001\000\001\215\000.\000n\000\146\000c\000\232\000\197\000\232\000\197\000\146\000c\000\232\000\197\000n\000\146\000c\0001\000\028\000j\000n\001\000\000\149\000\234\001\215\001\018\001\017\002\015\001\215\002\015\002\017\001\015\001\141\000.\001\141\000.\000n\000<\000j\001\015\001\141\000\214\000r\000N\001\014\001\207\001e\000\196\001e\000j\000.\001-\001\000\000j\000.\000`\000\196\001e\000\155\001\181\001\179\000`\001#\001)\000\004\000\020\000A\001\139\000\214\000>\000\252\002\023\000\031\002\023\000\161\000\242\001\215\000\214\001\215\000C\000\\\000\020\001#\000\214\001)\000`\001)\002\007\0017\000\234\000\018\001\167\001C\001\167\001\205\000\252\001)\0015\000\214\0017\000\234\000\252\0017\000!\000\141\001\028\000!\0017\001\181\001)\001)\000.\001)\000.\001\179\000`\000\227\001/\000j\000.\001/\000.\001\000\001)\000.\000\227\002\007\0015\001\205\001/\000\170\000\130\000\138\000\140\000n\000\214\000\142\000n\000\182\000\144\001\207\001e\000\226\000\230\000\146\001\006\001\207\001e\000\172\001\207\001e\000\198\001\207\001e\001\012\000\201\000\b\000\200\001\207\001e\000L\000\016\000j\000j\000j\000\201\001\000\000\149\000\234\001\215\002\015\001\215\002\015\002\017\001u\000.\001u\000.\000\201\001\000\000\149\000\234\001\215\002\015\001\215\002\015\002\017\001\015\001y\000\235\000.\001y\000\235\000.\000n\000\195\000j\000\020\000j\000n\001\000\001\155\000.\000n\001\000\001\155\000.\001\r\001\023\000.\001\025\000n\001\r\000\201\001\000\000\149\000\234\001\215\000.\001\015\000\201\001\000\000\149\000\234\001\215\001\215\001u\000.\001w\000.\001u\000.\000\146\000j\000\201\001\000\000\149\000\234\001\215\000.\001\015\000\201\000.\001\000\000\149\000\234\001\215\000.\001\215\001u\000.\001u\000.\000c\000c\000\159\001\135\001\189\001\187\001\000\002\r\000\245\000`\000\198\001\207\001e\000\147\000\246\000\028\000j\000n\000I\000.\000n\000\146\001\014\000+\000/\0001\0007\000e\000\174\000n\000\180\000e\000\184\000n\000\228\000j\000\198\001\207\001e\000\147\000,\000\202\001\207\001e\000\201\000\214\000\210\001\022\001\207\001e\000e\000\234\000j\000S\000\198\001\207\001e\000\147\001\012\001O\001O\000e\000\028\000j\000n\000I\000.\000n\000<\000n\000L\000e\001\027\0015\000\234\000j\000.\000D\000F\000\\\001\207\001e\001/\001\000\001)\000.\000b\000d\000p\000c\001\000\001\215\000\214\000s\000\167\000\246\000\028\000j\000n\000I\000.\000n\000\146\000e\000\246\000\028\000j\000n\000I\000.\000n\000\146\000e\0019\001\205\001\223\001\229\000\198\001\207\001e\000\147\001\027\000e\001}\000\170\000s\001\185\001\191\000$\000\198\001\207\001e\000\147\001\191\000B\000\198\001\207\001e\000\147\001\191\000D\000\198\001\207\001e\000\147\001\191\000F\000\198\001\207\001e\000\147\001\191\000H\000\198\001\207\001e\000\147\001\191\000J\000\198\001\207\001e\000\147\001\191\000^\000\198\001\207\001e\000\147\001\191\000b\000\198\001\207\001e\000\147\001\191\000d\000\198\001\207\001e\000\147\001\191\000v\000\198\001\207\001e\000\147\001\191\000\158\000\198\001\207\001e\000\147\001\191\000\160\000\198\001\207\001e\000\147\001\191\000\162\000\198\001\207\001e\000\147\001\191\000\164\000\198\001\207\001e\000\147\001\191\000\166\000\198\001\207\001e\000\147\001\191\000\192\000\198\001\207\001e\000\147\001\191\000\214\000\198\001\207\001e\000\147\001\191\000\246\000\028\000j\000n\000I\000.\000n\000\146\000e\000\198\001\207\001e\000\147\001\191\000\252\000\198\001\207\001e\000\147\001\191\000\254\000\198\001\207\001e\000\147\001\191\001\n\000\198\001\207\001e\000\147\001\191\001\018\000\198\001\207\001e\000\147\001\191\001\020\000\198\001\207\001e\000\147\001\191\001\030\000\198\001\207\001e\000\147\001\191\001 \000\198\001\207\001e\000\147\001\191\002\007\001\223\000e\002\025\000\198\001\207\001e\000\147\001\191\000,\000H\002\011\000s\000s\001\028\001e\000j\0001\002\017\000.\000\214\000s\000[\001\187\000I\000\233\000\214\001\185\001\193\001\189\0001\001\000\000\020\001\023\000\234\001\215\000\214\000s\002\015\000\214\000s\000\149\000\234\001\215\000\214\000s\002\015\000\214\000s\000I\000\214\000s\002\015\000\214\000s\000[\002\017\000\214\000s\000a\001\000\001\215\000\214\000s\002\015\000\214\000s\002\017\000\214\000s\000\197\000\214\000s\001\015\0001\001\000\000\149\000\234\001\215\000\214\000s\002\015\000\214\000s\000I\000\214\000s\002\015\000\214\000s\000[\002\017\000\214\000s\001\127\001\129\000\187\001_\001_\002\021\001\191\000\198\001\207\001e\000\147\001\191\000\197\000\214\000s\001q\000\170\000s\001\026\001s\001s\001\014\000s\000.\000\128\000\198\001\207\001e\000\147\000\b\000\198\001\207\001e\000\147\001\191\000\202\000\143\001\028\001e\000\014\000\201\000\170\000\198\001\207\001e\000\147\001\191\000P\000\201\000\170\000\198\001\207\001e\000\147\001\191\000l\000\201\000\170\000\198\001\207\001e\000\147\001\191\000\201\000\170\000\198\001\207\001e\000\147\001\191\000\214\000\198\001\207\001e\000\147\000\026\000\224\001\209\000\198\001\207\001e\000\147\001\191\001\191\001\209\000\198\001\207\001e\000\147\001\191\001\231\001\233\001\233\000\157\000\248\001\235\001\235\000\248\000{\000\248\001\191\000,\000{\001\191\000\157\000\248\000\130\000\198\001\207\001e\000\147\000\157\001\b\001\b\000{\001\b\001\191\000\157\001\b\000\138\0002\000\198\001\207\001e\000\147\000\157\0002\000{\0002\001\191\000\157\0002\000\140\000y\000\188\000\142\000e\000\004\000u\001\139\000\233\000\241\000,\000u\000u\000\177\0004\0015\000\234\000n\0001\000\146\000e\000\228\000j\000{\000.\000t\000\198\001\207\001e\000\147\001\191\000\138\000{\0002\000t\000\198\001\207\001e\000\147\001\191\000\142\000{\0004\000t\000\198\001\207\001e\000\147\001\191\000\234\000j\000s\000.\000t\000\198\001\207\001e\000\147\001\191\000\138\000s\0002\000t\000\198\001\207\001e\000\147\001\191\000\142\000s\0004\000t\000\198\001\207\001e\000\147\001\191\0015\000\228\000j\000{\000.\000t\000\198\001\207\001e\000\147\001\191\000\138\000{\0002\000t\000\198\001\207\001e\000\147\001\191\000\142\000{\0004\000t\000\198\001\207\001e\000\147\001\191\001\139\000t\000\198\001\207\001e\000\147\001\191\000e\000\153\001\137\001\137\001\191\000s\000.\000\138\000s\0002\000\142\000s\0004\0015\000\228\000j\000{\000.\000\138\000{\0002\000\142\000{\0004\001\139\000s\000s\001\209\000s\000\240\000s\000\236\000{\000{\000.\000\138\000{\0002\000\142\000{\0004\000e\000\198\001\207\001e\000\147\001\191\001\193\000s\000`\000s\000`\000\234\000s\001O\000\147\000s\000\030\000\198\001\207\001e\000\147\000\222\000\198\001\207\001e\000\147\001\191\001\191\000\222\000\198\001\207\001e\000\147\001\191\000\220\000s\000\220\000e\000\198\001\207\001e\000\147\000\190\001\191\000\190\000e\000e\000\198\001\207\001e\000\147\000\167\000.\001\191\000\177\0004\000\198\001\207\001e\000\147\001\191\000\241\000,\000y\000\188\000y\000\188\000\198\001\207\001e\000\147\000\157\0002\000{\0002\001\191\000\157\0002\000\198\001\207\001e\000\147\000\157\001\b\001\b\000{\001\b\001\191\000\157\001\b\000s\001\207\001e\001/\000\170\000s\000\\\001\207\001e\001-\000\214\001/\001\000\001)\000\214\001/\0013\000\170\000s\001\181\0013\000\212\001\207\001e\000\018\000j\000\254\000.\000\138\001\225\000R\000\142\000Z\000\194\001\031\000n\001\000\000\149\000\234\002\023\000\189\000\231\001e\000,\001e\002\023\001\143\0004\001\145\001\143\001\147\000\194\002\r\000\231\000\131\000$\000\194\002\r\000\231\002\r\000\231\001\219\002\r\000\231\001\000\000j\000:\001\167\001\000\001\155\000.\000\246\000\016\001\000\001\155\000:\001\167\001\000\001\155\001\215\000\149\000\234\001\219\000`\002\r\002\r\001\219\000`\002\r\002\r\001\177\001e\000\170\000s\001\227\001\207\001e\0000\000\179\001\129\001_\000s\000\235\000.\001\141\000\235\000.\000n\000[\000\198\001\207\001e\000\147\001\191\000s\000\198\001\207\001e\000\147\000\157\000\248\000\248\000{\000\248\001\191\000\157\000\248\000e\000\\\001\207\001e\001/\000.\001\000\001)\000.\000s\000.\000I\000.\002\015\000.\000s\000\004\000\147\000s\000\198\001\207\001e\000\147\000.\000\250\001)\000.\001\000\001)\000.\000\250\001)\000.\001\191\000.\000\250\001)\000.\001\000\001)\000.\000\250\001)\000.\001/\001_\001\207\001e\001/\001_\000\\\000\020\001\207\001e\001\167\000\214\001)\000\239\001_\001\207\001e\0000\001-\0013\001_\001\028\001e\001-\0013\001_\001i\001i\001-\0013\001_\000x\002\011\000<\000\201\000\b\000s\000\132\002\011\000\150\000n\000\214\001\155\000\168\000\196\000\208\001\207\001e\0001\001\000\000\149\000\234\001\215\000\191\000\231\000\214\000\"\001\011\001\011\001_\001\215\000\212\001\207\001e\001\225\000\214\000j\0015\000\234\000j\001\223\001e\001_\001\177\001e\001_\001\000\000o\001\215\001\002\000\020\001\207\001e\000\n\000'\000\138\000C\000\133\0002\000\246\000C\001\195\000n\000\214\000T\001e\000j\001\215\000.\001\249\000\012\001e\000\n\000Z\000Z\000\n\001\029\000n\001\000\001\215\001_\000f\001e\000\n\000>\000>\000\n\000\181\000n\001\000\000\191\001_\000\156\001e\000r\000N\001\014\001e\0015\000\170\000\138\000\137\0002\001\237\000\246\001\215\001\215\001\205\001\237\001\245\002\007\001e\0015\000\170\001\245\001\245\001_\000\242\001e\001\215\000\214\001\215\001\221\001_\001Y\000\220\001\157\001_\001\197\001\247\001Y\001\245\001_\001\028\001e\000'\001\195\000n\000\214\001\245\001_\001k\001k\001\207\001e\000'\001\195\000n\000j\000\214\000T\001e\001\251\000\012\001\014\001e\000Z\001!\000n\000\214\000s\000I\000\214\000s\000-\001_\001e\000\n\000Z\000Z\000\n\000%\000n\001\000\001\215\001!\000n\000\214\000s\000I\000\214\000s\000f\001\014\001e\000>\000\183\000n\001\000\000\020\001\023\000\234\001\215\000\214\000s\000\191\000\214\000s\000[\001K\001_\001e\000\n\000>\000>\000\n\000#\000n\001\000\000\191\000\183\000n\001\000\000\020\001\023\000\234\001\215\000\214\000s\000\191\000\214\000s\000[\000\154\001e\000s\001_\000\156\001\014\001e\000j\000r\000H\002\011\001e\000\179\001\129\001_\000N\001\014\001e\0015\000\170\000\138\000\137\0002\001\253\000\200\001e\001\135\000`\001{\000\170\001\205\001\243\000\153\001\253\002\005\002\007\002\021\002\005\001\255\001\255\002\005\001e\0015\000\170\002\005\001e\000\179\001\129\001_\002\005\000.\001\000\000n\001\000\000K\000`\000\138\001\215\000K\000`\000\229\000K\000`\0017\000\234\000n\001\205\001\241\001\245\001\241\001\241\001\241\000.\002\005\001\024\000n\000\247\001_\001e\002\005\000\247\001_\000\242\001e\001\221\001_\001W\000\220\001\157\001_\001\197\002\003\001W\002\005\001\000\001\241\000\214\002\005\001\135\002\001\002\001\001_\001\028\001e\000'\001\195\000n\002\001\001_\001o\001o\000)\000U\000r\000]\000q\000\185\001\005\001'\001[\001}\001\149\001\157\001_\001\163\001\207\001e\001/\001_\001\169\001\028\001e\000A\000n\000\249\000G\000\161\001_\001c\001\153\001c\001\197\001\239\000W\000s\001_\001[\000\193\001[\001}\002\t\0002\000\193\0002\000s\001_\001[\001[\002\t\0002\001_\000E\000B\000\183\001\012\001\225\000\214\001\223\001e\001\177\001e\000\171\001_\001\175\001\203\001\173\001\175\001\201\001\203\001\225\000\214\001\223\001e\001\177\001e\000A\000n\000\249\000G\000\161\001_\000E\000B\000\183\000\171\001_\000W\000\220\001/\001)\000.\000\146\000c\000\232\000\201\000\146\000c\000\232\000\201\000n\000\201\000.\001\000\001\215\000.\001\251\001W\000\220\000e\000\146\000e\000\198\001\207\001e\000\147\001\191\000\146\000e\000\198\001\207\001e\000\147\001\191\000n\000s\000\004\000\147\000s\000\193\0002\000n\001\000\000\189\001e\000,\001e\000\232\001M\002\r\000,\001M\000\192\001M\000\192\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000\138\000\142\001\143\0004\000\232\001\012\001\225\000\173\001\012\001\175\001\173\001\175\001\215\001\217\001\225\000\142\001\143\0004\000\232\001\t\001\215\000\214\000>\000\142\001\143\0004\000\232\001\217\000\142\001\143\0004\000\232\001\217\001\217\000\252\001\t\000\161\001_\000E\000B\000\183\000\169\001_\001\175\001\173\001\175\000A\000n\000\249\000\252\001\t\000\161\001_\000E\000B\000\183\000\169\001_\000*\000N\001\014\001\207\001e\0017\001_\001\207\001e\0017\001_\000\\\000\020\001\207\001e\001\167\000\252\001)\001_\001\207\001e\000\018\000\252\0017\001_\0000\001-\001\000\001)\001_\001\028\001e\001-\001\000\001)\001_\001g\001g\001-\000\214\0015\001_\001\000\001)\0011\001_\001\181\0011\000\212\001\207\001e\001\225\001\002\001\207\001e\000'\001\195\000n\001\000\001\241\001_\001\028\001e\000'\001\195\000n\001\000\001\241\001_\001m\001m\000)\000m\000q\000\185\001\003\001%\001'\001+\001]\001\149\001\157\001_\001\163\001\207\001e\001)\001_\000\231\001\169\001c\001\171\001\028\001e\000A\000n\000\249\000\252\001\t\000\161\001_\001a\001a\001\197\001\239\001]\001]\001)\000.\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000K\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\000K\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\002\r\000$\000\129\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\002\r\000$\000\129\000`\000K\002\017\000Y\001\015\000K\002\017\002\017\000`\000K\002\017\000Y\001\015\000K\002\017\001\215\001\155\000.\001\215\001\151\000.\001\155\001\155\000.\000\246\000\016\001\000\001\155\000:\001\167\001\000\001\155\001\215\000:\001\167\000\191\000\231\001_\002\t\0002\001e\000s\000\240\000s\000\236\000W\000\218\001\165\000\000\000o\000\218\001\159\000\000\000j\000\254\000.\0003\000\223\0017\000\234\000j\000\254\000.\0003\001\167\001E\001\167\001\227\002\019\000\218\000\000\000\221\001\223\000\218\000\000\000\219\001\215\000\218\000\000\000s\000\218\000\217\000\000\000\215\0017\000\218\000\000\000\213\0015\000\218\000\000\000\211\001/\000\218\000\000\000\209\001)\000\218\000\000\000\207\001#\000\218\000\000\000\201\000\218\000\205\000\000\000/\000\218\000\203\0015\000\234\000\000\000\174\001\167\000\024\000\"\000\152\000\206\000/\0015\000\184\001\167\000\024\000\"\000\152\000\206\000/\0015\000\218\000M\000O\000*\000U\001U\000s\001_\000*\001U\000*\000\000\000*\000O\000U\001S\001S\000s\001_\001S\001S\0005\000s\001_\001S\000\218\001S\000\218") and rhs = - ((16, "\001\165\001\159\000\223\000\221\000\219\000\217\000\215\000\213\000\211\000\209\000\207\000\205\000\203\000M\0005\000F\000D\001\183\002\023\001\024\000:\001\167\002\023\001\024\000j\000:\001\167\001\000\001\153\000.\002\023\001\024\000j\000\016\001\000\001\153\000.\001\028\001e\001\129\001_\001E\001\227\001\020\001\017\001\018\001\017\001\213\000E\002\r\000E\000j\000\127\000.\000E\000;\002\r\000;\000j\000\127\000.\000;\000\184\001\237\002\r\000\184\001\237\000j\000\127\000.\000\184\001\237\0017\000\234\001\211\000:\001\167\000\016\000j\000:\001\167\001\000\001\153\000.\000j\000\016\001\000\001\153\000.\000_\000_\000\234\002\011\000\193\000\136\002\011\002\t\0002\001\243\000\200\001e\001\255\001{\000\170\002\005\000r\000N\001e\0015\000\170\002\005\000r\000N\001\014\001e\0015\000\170\002\005\002\005\002\007\001\243\000\153\001\205\000\156\001e\002\005\000\247\001_\000\156\001\014\001e\002\005\000\247\001_\000\012\000-\001_\000f\001K\001_\000\242\001e\001\221\001_\000\154\001e\000s\001_\001\157\001_\001\197\000\214\002\005\001\000\001\241\000\214\002\005\001\135\002\001\001\135\000`\002\005\001\135\001\255\001=\000j\000\201\000.\000j\000\201\001\000\001\215\000.\000j\001\215\000.\000\156\001e\001\245\001_\000\012\001e\001\029\000n\001\000\001\215\001_\000f\001e\000\181\000n\001\000\000\191\001_\000\242\001e\001\221\001_\001\157\001_\001\197\001\237\000\138\000\137\0002\001\237\001\205\000T\001e\001\249\001Y\000\220\001\245\002\007\000r\000N\001e\0015\000\170\001\245\000r\000N\001\014\001e\0015\000\170\001\245\000j\002\005\000.\001\253\000\138\000\137\0002\001\253\000j\002\005\001\000\001\241\000.\000T\001e\001\251\001W\000\220\001\245\000\229\000K\000`\001\241\000n\001\000\000K\000`\001\241\000K\000`\001\241\001\002\000\020\001\207\001e\000'\001\195\000n\000\214\001\245\001_\001k\001I\000\202\000\143\000\b\001\191\000\b\000\198\001\207\001e\000\147\001e\000\201\001\231\001e\000l\000\201\000\170\001\191\001e\000l\000\201\000\170\000\198\001\207\001e\000\147\001e\000\014\000\201\000\170\001\191\001e\000\014\000\201\000\170\000\198\001\207\001e\000\147\001e\000P\000\201\000\170\001\191\001e\000P\000\201\000\170\000\198\001\207\001e\000\147\000\214\001\191\001\209\001\191\000\214\001\191\001\209\000\198\001\207\001e\000\147\000\214\000\198\001\207\001e\000\147\001\209\001\191\000\214\000\198\001\207\001e\000\147\001\209\000\198\001\207\001e\000\147\000\170\001\191\000\170\000\198\001\207\001e\000\147\000+\0007\000\138\0002\000j\000.\000\206\000\024\000\018\000j\000\254\000.\001\227\0015\0015\000\234\000j\000\254\000.\000j\000\254\000.\001\227\001\215\000\214\001\215\002\r\000\231\000\194\002\r\000\231\000\131\000$\002\r\000\231\000\131\000$\000\194\002\r\000\231\000\142\001\143\0004\001\012\000\173\002\023\001\215\002\007\001\007\001\199\001\211\000j\001\215\000.\000j\000\\\001\207\001e\001)\000.\000\138\000Q\0002\000\138\001\012\000\139\0002\000\138\000}\001\012\000\139\0002\000~\000\253\000\139\0002\000~\0002\000|\000\253\000\139\0002\000|\000\253\000\139\000\192\000\151\0002\000\182\002\r\000$\000\129\000.\000\182\000n\001\000\002\r\000$\000\129\000.\000\026\000\224\000H\002\011\000z\002\011\000\193\0002\0008\001\012\001\225\000\214\001\223\001e\001\225\000\214\001\223\001e\001\205\000\132\002\011\002\t\0002\000\138\000\133\0002\000\198\001\207\001e\000\147\001\185\000e\000r\000\\\001\207\001e\001-\0013\000\170\000s\000r\000\212\001\207\001e\001\225\001\177\001e\000\170\000s\000r\000N\001\207\001e\001/\000\170\000s\000r\000N\001\014\001\207\001e\001/\000\170\000s\000h\001\207\001e\000s\000\004\000\147\000\022\001\207\001e\000s\000\004\000\147\000\172\001\207\001e\000s\000\030\001\191\000\222\001\191\000\172\001\207\001e\000s\000\030\001\191\000\222\000\198\001\207\001e\000\147\000\172\001\207\001e\000s\000\030\000\198\001\207\001e\000\147\000\222\001\191\000\172\001\207\001e\000s\000\030\000\198\001\207\001e\000\147\000\222\000\198\001\207\001e\000\147\000\172\001\207\001e\000s\000\030\001\191\000\172\001\207\001e\000s\000\030\000\198\001\207\001e\000\147\000\006\001\207\001e\000s\000\240\000s\000\236\000\202\001\207\001e\000\201\000\214\000s\001\209\000s\000\240\000s\000\236\001\022\001\207\001e\000e\000\144\001\207\001e\000e\000S\001\191\000S\000\198\001\207\001e\000\147\002\025\001\191\002\025\000\198\001\207\001e\000\147\000\200\001\207\001e\001\187\000\245\000`\001\193\000e\000\153\000&\000e\000\167\001\223\000e\001\027\000e\001\191\000\166\001\191\001\191\000\166\000\198\001\207\001e\000\147\001\191\001\020\001\191\001\191\001\020\000\198\001\207\001e\000\147\001\191\001\018\001\191\001\191\001\018\000\198\001\207\001e\000\147\001\191\000\164\001\191\001\191\000\164\000\198\001\207\001e\000\147\001\191\000\162\001\191\001\191\000\162\000\198\001\207\001e\000\147\001\191\000\160\001\191\001\191\000\160\000\198\001\207\001e\000\147\001\191\000^\001\191\001\191\000^\000\198\001\207\001e\000\147\001\191\000\158\001\191\001\191\000\158\000\198\001\207\001e\000\147\001\191\000F\001\191\001\191\000F\000\198\001\207\001e\000\147\001\191\000D\001\191\001\191\000D\000\198\001\207\001e\000\147\001\191\000B\001\191\001\191\000B\000\198\001\207\001e\000\147\001\191\000d\001\191\001\191\000d\000\198\001\207\001e\000\147\001\191\000b\001\191\001\191\000b\000\198\001\207\001e\000\147\001\191\000$\001\191\001\191\000$\000\198\001\207\001e\000\147\001\191\000H\001\191\001\191\000H\000\198\001\207\001e\000\147\001\191\000\214\001\191\001\191\000\214\000\198\001\207\001e\000\147\001\191\000v\001\191\001\191\000v\000\198\001\207\001e\000\147\001\191\000\192\001\191\001\191\000\192\000\198\001\207\001e\000\147\001\191\000J\001\191\001\191\000J\000\198\001\207\001e\000\147\001\191\001\n\001\191\001\191\001\n\000\198\001\207\001e\000\147\001\191\001\030\001\191\001\191\001\030\000\198\001\207\001e\000\147\001\191\001 \001\191\001\191\001 \000\198\001\207\001e\000\147\001\191\000\252\001\191\001\191\000\252\000\198\001\207\001e\000\147\001}\000\170\000s\000p\001q\000\170\000s\001\191\000\254\001\191\001\191\000\254\000\198\001\207\001e\000\147\000n\000t\001\191\000n\000t\000\198\001\207\001e\000\147\000e\000\234\001\139\000t\001\191\000e\000\234\001\139\000t\000\198\001\207\001e\000\147\000e\000\234\000j\000s\000.\000t\001\191\000e\000\234\000j\000s\000.\000t\000\198\001\207\001e\000\147\000e\000\234\000\142\000s\0004\000t\001\191\000e\000\234\000\142\000s\0004\000t\000\198\001\207\001e\000\147\000e\000\234\000\138\000s\0002\000t\001\191\000e\000\234\000\138\000s\0002\000t\000\198\001\207\001e\000\147\000e\000\228\000j\000{\000.\000t\001\191\000e\000\228\000j\000{\000.\000t\000\198\001\207\001e\000\147\000e\000\234\0015\000\228\000j\000{\000.\000t\001\191\000e\000\234\0015\000\228\000j\000{\000.\000t\000\198\001\207\001e\000\147\000e\000\228\000\142\000{\0004\000t\001\191\000e\000\228\000\142\000{\0004\000t\000\198\001\207\001e\000\147\000e\000\234\0015\000\228\000\142\000{\0004\000t\001\191\000e\000\234\0015\000\228\000\142\000{\0004\000t\000\198\001\207\001e\000\147\000e\000\228\000\138\000{\0002\000t\001\191\000e\000\228\000\138\000{\0002\000t\000\198\001\207\001e\000\147\000e\000\234\0015\000\228\000\138\000{\0002\000t\001\191\000e\000\234\0015\000\228\000\138\000{\0002\000t\000\198\001\207\001e\000\147\001\191\002\007\000l\000s\000\014\000s\000P\000s\000\210\000s\000j\000\020\001\023\000.\000j\000\020\000n\001\000\001\153\000.\001\135\000\159\001\191\001\191\000,\001\191\000,\000s\001\191\000,\000H\002\011\000s\000K\000Y\000j\000.\000j\001-\001\000\001)\000.\000\155\000R\001\219\001\000\001\219\000`\002\r\001\000\000\149\000\234\001\219\000`\002\r\001\000\002\r\001\000\000\149\000\234\002\r\001\012\001\225\001\177\001e\001\225\001\177\001e\000\020\001\207\001e\000A\000n\000\249\000\252\001\t\000\161\001_\000\020\001\207\001e\000V\000A\000n\000\249\000\252\001\t\000\161\001_\000\020\001\207\001e\000A\000n\000\249\000G\000\161\001_\000\020\001\207\001e\000V\000A\000n\000\249\000G\000\161\001_\000\018\000n\000W\000\218\000\168\000\168\000\196\000,\000\232\000o\000\218\000x\002\011\000\193\0002\0006\001\155\000^\001\021\001\155\000\004\001\215\001\167\000\148\001\215\000\016\000\175\000j\001\155\000.\001\155\001\000\001\153\000\150\000n\000\214\001\153\001\031\000n\001\000\000\189\000\231\001e\001\031\000n\001\000\000\189\000\231\001e\000,\001e\001\147\001\145\001\145\001\143\000n\000n\002\017\000n\001\000\001\215\000n\001\000\001\215\002\015\000n\001\000\000\149\000\234\001\215\000n\001\000\000\149\000\234\001\215\002\015\001=\000e\000\146\000e\000\028\000n\000\028\000j\000n\000I\000.\000<\000n\000L\000e\000<\000j\001\141\000\235\000.\000<\000j\001\015\001\141\000\235\000.\000<\000n\000L\000j\001y\000\235\000.\000L\000j\001\015\001y\000\235\000.\000L\000\195\000\028\000j\001\141\000.\000\028\000j\001\015\001\141\000.\000\028\000n\000\146\000c\000\146\000j\001u\000.\000\146\000j\001\015\001u\000.\000\146\000j\001\015\000\201\000.\000c\000j\001\015\001w\000.\000j\001u\000.\000j\001\015\001u\000.\000\146\000j\000\201\001\000\000\149\000\234\001\215\000.\000\146\000j\001\015\000\201\001\000\000\149\000\234\001\215\000.\000j\000\201\001\000\000\149\000\234\001\215\000.\001\133\000\246\000\201\001\133\000\246\000\146\000c\001\133\000\246\000\028\000n\001\133\000\246\000\028\000j\000n\001\000\001\215\000.\000\201\000\246\000\201\000\201\000\246\000\146\000c\000\201\000\246\000\028\000n\000\201\000\246\000\028\000j\000n\001\000\001\215\000.\000\146\000c\000\246\000\201\000\146\000c\000\246\000\146\000c\000\146\000c\000\246\000\028\000n\000\146\000c\000\246\000\028\000j\000n\001\000\001\215\000.\000\028\000n\000\246\000\201\000\028\000n\000\246\000\146\000c\000\028\000n\000\246\000\028\000n\000\028\000n\000\246\000\028\000j\000n\001\000\001\215\000.\000\028\000j\000n\001\000\001\215\000.\000\246\000\201\000\028\000j\000n\001\000\001\215\000.\000\246\000\146\000c\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000n\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000j\000n\001\000\001\215\000.\001\131\000\246\000\197\001\131\000\246\000\146\000c\001\131\000\246\000\028\000n\001\131\000\246\000\028\000j\000n\001\000\001\215\000.\000\197\000\246\000\197\000\197\000\246\000\146\000c\000\197\000\246\000\028\000n\000\197\000\246\000\028\000j\000n\001\000\001\215\000.\000\146\000c\000\246\000\197\000\146\000c\000\246\000\146\000c\000\146\000c\000\246\000\028\000n\000\146\000c\000\246\000\028\000j\000n\001\000\001\215\000.\000\028\000n\000\246\000\197\000\028\000n\000\246\000\146\000c\000\028\000n\000\246\000\028\000n\000\028\000n\000\246\000\028\000j\000n\001\000\001\215\000.\000\028\000j\000n\001\000\001\215\000.\000\246\000\197\000\028\000j\000n\001\000\001\215\000.\000\246\000\146\000c\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000n\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000j\000n\001\000\001\215\000.\001\127\0001\0001\000[\0001\000I\000\214\000s\0001\000I\002\015\000\214\000s\0001\002\017\000\214\000s\001\015\0001\000I\000\214\000s\001\015\0001\000I\002\015\000\214\000s\001\015\0001\002\017\000\214\000s\0001\001\000\000\149\000\234\001\215\000\214\000s\0001\001\000\000\149\000\234\001\215\002\015\000\214\000s\001\015\0001\001\000\000\149\000\234\001\215\000\214\000s\001\015\0001\001\000\000\149\000\234\001\215\002\015\000\214\000s\0001\001\000\000\020\001\023\000\234\001\215\000\214\000s\0001\001\000\000\020\001\023\000\234\001\215\002\015\000\214\000s\000\197\000\214\000s\000a\002\017\000\214\000s\000a\001\000\001\215\000\214\000s\000a\001\000\001\215\002\015\000\214\000s\001\015\0001\000[\000j\0001\002\017\000.\000[\000r\001\207\001e\000\179\001\129\001_\001}\002\021\000r\001e\000\179\001\129\001_\000r\000H\002\011\001e\000\179\001\129\001_\001{\002\021\000\201\000\201\002\017\000\201\001\000\001\215\000\201\001\000\001\215\002\015\000\201\001\000\000\149\000\234\001\215\000\201\001\000\000\149\000\234\001\215\002\015\000j\001u\000.\000\201\000\201\001\000\001\215\000\201\001\000\000\149\000\234\001\215\000\201\002\017\000\201\001\000\001\215\002\015\000\201\001\000\000\149\000\234\001\215\002\015\000j\001u\000.\0001\000[\0001\000c\001\000\001\215\000\214\000s\000\197\000\214\000s\001s\001q\001\026\001s\001\028\001e\000'\001\195\000n\002\001\001_\001o\001\028\001e\000'\001\195\000n\001\000\001\241\001_\001m\001\028\001e\000'\001\195\000n\000\214\001\245\001_\001k\001\028\001e\001-\0013\001_\001i\001\028\001e\001-\001\000\001)\001_\001g\002\007\001e\001\028\001e\000A\000n\000\249\000G\000\161\001_\001c\001\028\001e\000A\000n\000\249\000\252\001\t\000\161\001_\001a\000\187\001_\000*\001]\000m\001]\000*\001[\000*\000s\001_\001[\000U\001[\001\247\001Y\002\003\001W\000U\001U\000*\001S\000*\000s\001_\001S\000U\001S\000O\001S\001\139\000\243\000\237\001\139\000\243\000\237\000,\001\139\000\243\000\237\000,\000\016\000\251\001\139\000\243\000\237\000,\001Q\000\201\000`\000s\000\201\000\b\000s\000`\000s\000\201\000`\000\234\000n\001\000\000\189\001e\000,\001e\001M\002\r\000,\001M\000n\001\000\000\189\001e\000,\001e\002\r\000,\000n\001\000\000\189\001e\002\r\000\232\001e\000#\000n\001\000\000\191\001e\000\183\000n\000[\001\014\001e\000\183\000n\000[\001e\000\183\000n\001\000\000\191\000\214\000s\001\014\001e\000\183\000n\001\000\000\191\000\214\000s\001e\000\183\000n\001\000\000\020\001\023\000\234\001\215\000\214\000s\001\014\001e\000\183\000n\001\000\000\020\001\023\000\234\001\215\000\214\000s\000n\0017\000\234\000n\000\018\0017\000\234\000\018\001\167\000j\000\254\000.\0003\0017\000\234\001\167\0017\000\234\000j\000\254\000.\0017\000\234\0003\001\167\0017\000\234\001\167\000?\0017\000\234\000?\000=\0017\000\234\000=\000n\0015\000\234\000n\000\018\0015\000\234\000\018\0001\0015\000\234\0001\001G\0017\000j\0017\000.\001;\000\214\001/\001\000\001)\000\214\001/\001\181\0013\001\000\001)\001\181\0011\000 \001e\000W\000\220\000\196\001e\001\179\000`\001/\000\227\001/\002\007\0015\001/\000\227\001/\000j\000.\001\205\000\016\000\018\000\016\000\\\001\207\001e\000\018\000\252\0017\001_\000(\001e\000o\000\220\000\196\001e\001\179\000`\001)\000\\\000\020\000R\001e\001/\000j\001)\000.\001)\002\007\001#\000j\000.\000`\001)\001)\000`\001)\001)\000\004\000\141\001\205\001)\000\004\0017\000\\\000\020\001\207\001e\001\167\000\239\001_\000\\\000\020\001\207\001e\001\167\000\252\001)\001_\001C\000Z\000Z\000\194\000Z\000\n\000Z\000\n\000\n\000Z\001\016\001\167\000n\000j\000n\001\000\001\153\000.\001\r\000n\000n\001\021\000n\000n\001\019\000n\000n\001\017\000l\000\014\000P\000l\001\015\000\014\001\015\000P\001\015\001\025\001\025\001\r\000\"\000\"\001\011\001\215\000>\001\215\001\217\000>\001\217\001\215\000\214\001\217\001\215\000\214\000>\001\217\000\232\000>\000\232\001\215\000\214\000\232\001\215\000\214\000>\000\232\000\142\001\143\0004\000>\000\142\001\143\0004\001\215\000\214\000\142\001\143\0004\001\215\000\214\000>\000\142\001\143\0004\000v\001M\000\192\000v\000\192\000N\001\207\001e\001/\001_\000N\001\014\001\207\001e\001/\001_\000N\001\207\001e\0017\001_\000N\001\014\001\207\001e\0017\001_\000@\000p\001\026\000\228\000j\001\161\000.\000\228\000j\001\161\000.\000t\000\228\000\138\001\161\0002\000\228\000\138\001\161\0002\000t\000\228\000\142\001\161\0004\000\228\000\142\001\161\0004\000t\000\180\001\014\000\166\001\020\001\018\000\164\000\162\000\160\000^\000\158\000F\000D\000B\000d\000b\000$\000H\000\214\000v\000\192\000J\001\n\001\030\001 \000\252\001\030\001\012\000,\001\151\001\024\000n\001\000\002\r\001\000\001\215\000\214\001\191\000\214\000\198\001\207\001e\000\147\000\214\001)\000\214\000\201\000\214\000s\000I\001\018\001\019\000L\000<\000n\001\000\000j\001/\001\000\001)\000.\000j\001/\000.\000j\000\012\001e\001\191\000.\000j\000\012\001e\000\198\001\207\001e\000\147\000.\000j\000\012\001e\001\191\001\000\001)\000.\000j\000\012\001e\000\198\001\207\001e\000\147\001\000\001)\000.\000j\000\012\001e\001\191\001\000\001)\000\250\001)\000.\000j\000\012\001e\000\198\001\207\001e\000\147\001\000\001)\000\250\001)\000.\000j\000\012\001e\001\191\000\250\001)\000.\000j\000\012\001e\000\198\001\207\001e\000\147\000\250\001)\000.\000C\0009\000:\001\167\001e\001\000\001\153\0009\000\016\001e\001\000\001\153\002\019\000\218\001\223\000\218\001\215\000\218\000s\000\218\0017\000\218\0015\000\218\001/\000\218\001)\000\218\001#\000\218\000\201\000\218\000/\000\218\000\201\000\254\000\201\000\201\002\007\000\199\000\201\001\024\0001\000\201\001\012\000\201\000\165\000\212\001\207\001e\000\201\000c\001\223\000\201\001\223\000j\000\020\001\021\000.\000c\001\027\000\201\000\144\001\207\001e\000c\000\197\000\254\000\201\000\197\002\007\000\199\000\197\001\024\0001\000\197\001\012\000\201\000\163\000n\000\016\000W\001\000\000o\001\000\001\215\000<\000\201\000<\000\201\000\b\000s\001\215\000\149\000\234\001\215\002\023\000\149\000\234\002\023\000\134\002\011\002\t\0002\000\208\001\207\001e\0001\001\000\000\191\000\231\000\214\001\011\001_\000>\000>\000\n\000>\000\n\000\n\000>\0000\000u\000e\000\004\000u\001\155\001\030\001\155\000\175\001\030\001\155\001\173\001\175\000\173\001\175\001\173\001\201\001\175\001\203\000\171\001\175\000\171\001\203\001\173\001\175\000\169\001\175\000\167\000\246\001\191\000\167\000\246\000\198\001\207\001e\000\147\000\167\000\246\000\146\000e\000\167\000\246\000\028\000n\000\167\000\246\000\028\000j\000n\000I\000.\001\191\000\246\001\191\001\191\000\246\000\198\001\207\001e\000\147\001\191\000\246\000\146\000e\001\191\000\246\000\028\000n\001\191\000\246\000\028\000j\000n\000I\000.\000\198\001\207\001e\000\147\000\246\001\191\000\198\001\207\001e\000\147\000\246\000\198\001\207\001e\000\147\000\198\001\207\001e\000\147\000\246\000\146\000e\000\198\001\207\001e\000\147\000\246\000\028\000n\000\198\001\207\001e\000\147\000\246\000\028\000j\000n\000I\000.\000\146\000e\000\246\001\191\000\146\000e\000\246\000\198\001\207\001e\000\147\000\146\000e\000\246\000\146\000e\000\146\000e\000\246\000\028\000n\000\146\000e\000\246\000\028\000j\000n\000I\000.\000\028\000n\000\246\001\191\000\028\000n\000\246\000\198\001\207\001e\000\147\000\028\000n\000\246\000\146\000e\000\028\000n\000\246\000\028\000n\000\028\000n\000\246\000\028\000j\000n\000I\000.\000\028\000j\000n\000I\000.\000\246\001\191\000\028\000j\000n\000I\000.\000\246\000\198\001\207\001e\000\147\000\028\000j\000n\000I\000.\000\246\000\146\000e\000\028\000j\000n\000I\000.\000\246\000\028\000n\000\028\000j\000n\000I\000.\000\246\000\028\000j\000n\000I\000.\001\133\001\133\000\246\000\232\000\201\000\246\000\232\000\146\000c\000\246\000\232\000\028\000n\000\246\000\232\000\028\000j\000n\001\000\001\215\000.\000\246\000\232\001\131\001\131\000\246\000\232\000\197\000\246\000\232\000\146\000c\000\246\000\232\000\028\000n\000\246\000\232\000\028\000j\000n\001\000\001\215\000.\000\246\000\232\000\161\000\242\001\215\000\214\001\215\001\189\000\159\001\189\001\235\000\157\001\235\001\181\000\155\001\181\001\137\000\153\001\137\001\027\000\151\001\027\000:\001\167\000j\000:\001\167\001\000\001\153\000.\000\149\000:\001\167\000\149\000j\000:\001\167\001\000\001\153\000.\001O\001\012\001O\000\147\001\012\001O\002\023\000\145\001\030\002\023\001\233\000\143\001\028\001\233\000!\000\141\001\028\000!\000}\000\139\001\012\000}\001\215\000\137\000\246\001\215\000\225\000\135\000\246\000\225\000C\000\133\000\246\000C\002\r\000\231\000\194\002\r\000\231\000\131\000$\002\r\000\231\000\131\000$\000\194\002\r\000\231\002\r\000n\001\000\002\r\000\129\000$\002\r\000\129\000$\000n\001\000\002\r\000\127\000\246\001\215\000\127\000\246\000:\001\167\001\000\001\153\000\127\000\246\000\016\001\000\001\153\001\215\000\246\001\215\001\215\000\246\000:\001\167\001\000\001\153\001\215\000\246\000\016\001\000\001\153\000:\001\167\001\000\001\153\000\246\001\215\000:\001\167\001\000\001\153\000\246\000:\001\167\001\000\001\153\000:\001\167\001\000\001\153\000\246\000\016\001\000\001\153\000\016\001\000\001\153\000\246\001\215\000\016\001\000\001\153\000\246\000:\001\167\001\000\001\153\000\016\001\000\001\153\000\246\000\016\001\000\001\153\000Q\001\215\001\191\001\191\000,\000\198\001\207\001e\000\147\000\198\001\207\001e\000\147\000,\001\191\000,\000{\000\198\001\207\001e\000\147\000,\000{\000n\000\241\000n\000\241\000,\000n\000\241\000,\000y\000\201\000\201\000,\000\201\000,\000w\001\139\000\233\000\241\001\139\000\233\000\241\000,\001\139\000\233\000\241\000,\000u\001\185\000\198\001\207\001e\000\147\000\212\001\207\001e\001\225\001\177\001e\001_\001]\001\157\001_\001\197\000)\000\185\001\169\001c\001\171\001a\000\020\001\207\001e\000A\000E\000B\000\183\000\169\001_\000\020\001\207\001e\000V\000A\000E\000B\000\183\000\169\001_\000q\000\\\001\207\001e\001-\0011\001_\000\\\001\207\001e\001-\000\214\0015\001_\001+\000\\\001\207\001e\0000\001-\001\000\001)\001_\001g\001'\001%\001\003\001\002\001\207\001e\000'\001\195\000n\001\000\001\241\001_\001m\001\239\001\163\001\207\001e\001)\001_\000\231\001\149\000i\0007\000d\000\176\000d\000\178\000F\000\176\000F\000\178\000+\000d\000\152\000d\000\204\000F\000\152\000F\000\204\000\142\001Q\0004\000\138\000w\0002\000\130\000w\001\b\000\130\001\b\000\182\000\165\000.\000\128\000w\000\248\000\128\000\248\000\230\001\191\000\190\000\230\000\198\001\207\001e\000\147\000\190\000\226\000e\000j\000s\000.\000j\000s\000I\000.\000j\000s\000I\002\015\000.\000e\000\234\000j\000s\000.\000e\000\234\000\142\000s\0004\000e\000\234\000\138\000s\0002\000e\000\228\000j\000{\000.\000e\000\234\0015\000\228\000j\000{\000.\000e\000\228\000\142\000{\0004\000e\000\234\0015\000\228\000\142\000{\0004\000e\000\228\000\138\000{\0002\000e\000\234\0015\000\228\000\138\000{\0002\001\006\001\207\001e\000s\000\220\001\006\001\207\001e\000\220\000X\001\207\001e\001\253\000j\000\\\001\207\001e\001/\000.\000j\000\\\001\207\001e\001/\001\000\001)\000.\000T\001\207\001e\001\251\001W\000\220\000/\001\223\001\027\000@\000e\001\014\000e\000\140\000y\000\188\000\140\000\188\000e\000\234\001\139\0015\000\234\000j\000s\000.\0015\000\234\000\140\000y\000\188\000e\000\184\000n\000e\000\174\000n\000e\000\180\000e\001\205\000\016\0015\000\234\000j\000.\000\142\000\177\0004\0015\000\234\000\142\000\177\0004\000\130\000{\001\b\000\130\001\b\0015\000\234\000\130\000{\001\b\0015\000\234\000\130\001\b\000\138\000{\0002\0015\000\234\000\138\001\191\000\157\0002\0015\000\234\000\138\000\198\001\207\001e\000\147\000\157\0002\0015\000\234\000\130\001\191\000\157\001\b\0015\000\234\000\130\000\198\001\207\001e\000\147\000\157\001\b\0015\000\234\000\128\001\191\000\157\000\248\0015\000\234\000\128\000\198\001\207\001e\000\147\000\157\000\248\0015\000\234\000\138\000{\0002\0015\000\234\000\138\0002\0015\000\234\000j\000\\\001\207\001e\001/\001\000\001)\000.\000\182\000\167\000.\000\128\000{\000\248\000\128\000\248\0015\000\234\000\128\000{\000\248\0015\000\234\000\128\000\248\001\229\000\138\001\191\000\157\0002\000\138\000\198\001\207\001e\000\147\000\157\0002\000\130\001\191\000\157\001\b\000\130\000\198\001\207\001e\000\147\000\157\001\b\000\128\001\191\000\157\000\248\000\128\000\198\001\207\001e\000\147\000\157\000\248\0001\000a\000j\000\201\000.\000g\000j\000\\\001\207\001e\001-\000.\000j\000\\\001\207\001e\001-\001\000\001)\000.\000\016\000i\000\232\000i\001\223\001\027\000\184\000E\000\174\000E\0015\000\234\000g\0015\000\234\000\138\0002\0015\000\234\000j\000.\0015\000\234\000j\000\201\000.\001\205\000j\000\201\001\000\001\215\000.\000k\000n\000\018\001\028\001\024\001\022\001\006\001\002\000\242\000\240\000\236\000\224\000\222\000\220\000\212\000\208\000\206\000\202\000\200\000\198\000\196\000\172\000\170\000\168\000\156\000\154\000\144\000r\000l\000h\000f\000\\\000Z\000X\000V\000T\000R\000N\000J\000>\0000\000(\000 \000\030\000\026\000\024\000\022\000\020\000\012\000\n\000\b\000\006\000\004\000q\000\212\001\207\001e\001\225\000\214\001\223\001e\001_\000\214\000s\001\187\000\233\000\214\001\193\000\229\000j\000\149\000\234\001\215\000.\000`\000Y\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000\229\000K\000`\000Y\000\229\000K\002\017\000`\000Y\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\000Y\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000\229\001\015\000K\000`\000Y\000\229\001\015\000K\002\017\000`\000Y\000n\001\000\000j\000\149\000\234\001\215\000.\000`\000Y\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000n\001\000\000K\000`\000Y\000n\001\000\000K\002\017\000`\000Y\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\000Y\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000n\001\000\001\015\000K\000`\000Y\000n\001\000\001\015\000K\002\017\000`\000Y\000j\000\149\000\234\001\215\000.\000`\000Y\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000K\000`\000Y\000K\002\017\000`\000Y\001\015\000j\000\149\000\234\001\215\000.\000`\000Y\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\001\015\000K\000`\000Y\001\015\000K\002\017\000`\000Y\000\229\000j\000\149\000\234\001\215\000.\000`\000K\000\229\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000\229\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000\229\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000\229\000K\000`\000K\000\229\000K\000`\000K\002\017\000\229\000K\000`\001\015\000K\000\229\000K\000`\001\015\000K\002\017\000\229\000K\002\017\000`\000K\000\229\000K\002\017\000`\000K\002\017\000\229\000K\002\017\000`\001\015\000K\000\229\000K\002\017\000`\001\015\000K\002\017\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\000K\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000\229\001\015\000K\000`\000K\000\229\001\015\000K\000`\000K\002\017\000\229\001\015\000K\000`\001\015\000K\000\229\001\015\000K\000`\001\015\000K\002\017\000\229\001\015\000K\002\017\000`\000K\000\229\001\015\000K\002\017\000`\000K\002\017\000\229\001\015\000K\002\017\000`\001\015\000K\000\229\001\015\000K\002\017\000`\001\015\000K\002\017\000n\001\000\000j\000\149\000\234\001\215\000.\000`\000K\000n\001\000\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000n\001\000\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000n\001\000\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000n\001\000\000K\000`\000K\000n\001\000\000K\000`\000K\002\017\000n\001\000\000K\000`\001\015\000K\000n\001\000\000K\000`\001\015\000K\002\017\000n\001\000\000K\002\017\000`\000K\000n\001\000\000K\002\017\000`\000K\002\017\000n\001\000\000K\002\017\000`\001\015\000K\000n\001\000\000K\002\017\000`\001\015\000K\002\017\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\000K\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000n\001\000\001\015\000K\000`\000K\000n\001\000\001\015\000K\000`\000K\002\017\000n\001\000\001\015\000K\000`\001\015\000K\000n\001\000\001\015\000K\000`\001\015\000K\002\017\000n\001\000\001\015\000K\002\017\000`\000K\000n\001\000\001\015\000K\002\017\000`\000K\002\017\000n\001\000\001\015\000K\002\017\000`\001\015\000K\000n\001\000\001\015\000K\002\017\000`\001\015\000K\002\017\000j\000\149\000\234\001\215\000.\000`\000K\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000K\000`\000K\000K\000`\000K\002\017\000K\000`\001\015\000K\000K\000`\001\015\000K\002\017\000K\002\017\000`\000K\000K\002\017\000`\000K\002\017\000K\002\017\000`\001\015\000K\000K\002\017\000`\001\015\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\000`\000K\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\001\015\000K\000`\000K\001\015\000K\000`\000K\002\017\001\015\000K\000`\001\015\000K\001\015\000K\000`\001\015\000K\002\017\001\015\000K\002\017\000`\000K\001\015\000K\002\017\000`\000K\002\017\001\015\000K\002\017\000`\001\015\000K\001\015\000K\002\017\000`\001\015\000K\002\017\000n\001\000\002\r\000$\000\129\000`\000Y\000n\001\000\002\r\000$\000\129\002\017\000`\000Y\000n\001\000\001\015\002\r\000$\000\129\000`\000Y\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\000Y\000n\001\000\002\r\000$\000\129\000`\000K\000n\001\000\002\r\000$\000\129\000`\000K\002\017\000n\001\000\002\r\000$\000\129\000`\001\015\000K\000n\001\000\002\r\000$\000\129\000`\001\015\000K\002\017\000n\001\000\002\r\000$\000\129\002\017\000`\000K\000n\001\000\002\r\000$\000\129\002\017\000`\000K\002\017\000n\001\000\002\r\000$\000\129\002\017\000`\001\015\000K\000n\001\000\002\r\000$\000\129\002\017\000`\001\015\000K\002\017\000n\001\000\001\015\002\r\000$\000\129\000`\000K\000n\001\000\001\015\002\r\000$\000\129\000`\000K\002\017\000n\001\000\001\015\002\r\000$\000\129\000`\001\015\000K\000n\001\000\001\015\002\r\000$\000\129\000`\001\015\000K\002\017\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\000K\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\000K\002\017\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\001\015\000K\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\001\015\000K\002\017\000n\001\000\002\r\000$\000\129\001[\000s\001_\001[\001}\001\157\001_\001\197\000\185\000)\001\169\001c\000\020\001\207\001e\000A\000E\000B\000\183\000\171\001_\000\020\001\207\001e\000V\000A\000E\000B\000\183\000\171\001_\000]\000\\\001\207\001e\001-\0013\001_\000\\\001\207\001e\0000\001-\0013\001_\001i\001'\001\005\001\002\001\207\001e\000'\001\195\000n\002\001\001_\001o\001\239\001\163\001\207\001e\001/\001_\001\149\000d\000b\001\027\000R\000\255\000\145\001e\001\027\001e\000\184\001\167\000\184\001\167\000\"\000\184\001\167\000\152\000\184\001\167\000/\000\184\001\167\0015\000\184\001\167\000\206\000\184\001\167\000\024\000\174\001\167\000\174\001\167\000\"\000\174\001\167\000\152\000\174\001\167\000/\000\174\001\167\0015\000\174\001\167\000\206\000\174\001\167\000\024\000s\001_\000*\001U\000*\000O\000*\000\218\002\r\002\r\000$\000\129\001\000\001\215\001\000\001\215\000\250\001\215\000\250\001\215\000\214\001\t\001?\0009\000:\001\167\001e\0009\000\016\001e\000C\000j\000\135\000.\000n\000\174\000n\001A\000F\000d\001\014\000F\001\014\001\014\000F\000d\001\014\001\014\000d\000\162\000@\000\176\000\178\001S\000\218\000s\001_\001S\000\218\000j\001\001\000.\000n\0003\0019\001e\000%\000n\001\000\001\215\001e\001!\000n\000\214\000s\001\014\001e\001!\000n\000\214\000s\001e\001!\000n\000I\000\214\000s\001\014\001e\001!\000n\000I\000\214\000s\000\152\001\004\000\"\000\204\000\012\001\207\001e\0001\001\000\000\191\000\231\001_\000\n\000\n\000Z\000\n\000\n\000Z\000\n\000>\000\n\000\n\000>\000\020\000A\001\139\000\031\002\023\000\161\000\020\000A\001\139\000\252\002\023\000\\\0015\000\214\0017\000\\\0015\000\252\0017\000\\\000\020\001#\000\214\001)\000\\\000\020\001#\000\252\001)\000\214\000\214\000>"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\022\000\030\000%\000)\000*\000+\000-\000/\0000\0001\0003\0007\0008\000:\000>\000@\000C\000H\000K\000M\000N\000T\000Y\000Z\000]\000^\000b\000c\000f\000i\000o\000v\000x\000z\000{\000\128\000\134\000\137\000\140\000\144\000\148\000\150\000\151\000\153\000\157\000\159\000\162\000\164\000\165\000\168\000\173\000\173\000\176\000\176\000\180\000\187\000\194\000\198\000\200\000\201\000\202\000\206\000\207\000\212\000\214\000\220\000\227\000\230\000\231\000\235\000\240\000\245\000\246\000\250\000\255\001\002\001\r\001\014\001\016\001\018\001\023\001\026\001\031\001'\001,\0014\0019\001A\001E\001L\001S\001]\001_\001d\001e\001f\001h\001j\001k\001l\001m\001p\001q\001r\001w\001z\001{\001~\001\128\001\131\001\135\001\140\001\143\001\144\001\145\001\146\001\148\001\149\001\150\001\151\001\154\001\160\001\163\001\167\001\172\001\176\001\178\001\182\001\188\001\193\001\200\001\201\001\202\001\202\001\204\001\208\001\209\001\214\001\218\001\219\001\223\001\223\001\226\001\230\001\231\001\232\001\240\001\249\002\000\002\b\002\014\002\020\002\028\002'\0022\002@\002F\002O\002V\002a\002e\002i\002k\002p\002r\002w\002~\002\128\002\130\002\131\002\133\002\135\002\138\002\144\002\147\002\153\002\156\002\162\002\165\002\171\002\174\002\180\002\183\002\189\002\192\002\198\002\201\002\207\002\210\002\216\002\219\002\225\002\228\002\234\002\237\002\243\002\246\002\252\002\255\003\005\003\b\003\014\003\017\003\023\003\026\003 \003#\003)\003,\0032\0035\003;\003>\003D\003G\003M\003P\003V\003Y\003]\003`\003f\003i\003o\003t\003|\003\131\003\141\003\148\003\158\003\165\003\175\003\182\003\192\003\201\003\213\003\220\003\230\003\239\003\251\004\002\004\012\004\021\004!\004#\004%\004'\004)\004+\004/\0045\0046\0047\0048\004:\004=\004B\004C\004D\004F\004K\004L\004L\004N\004R\004X\004Z\004^\004b\004e\004o\004z\004\131\004\141\004\142\004\143\004\145\004\146\004\148\004\148\004\150\004\152\004\156\004\157\004\160\004\163\004\164\004\166\004\167\004\168\004\171\004\172\004\174\004\178\004\184\004\192\004\193\004\194\004\196\004\197\004\199\004\202\004\206\004\211\004\217\004\218\004\219\004\221\004\223\004\228\004\230\004\232\004\237\004\243\004\245\004\250\005\000\005\002\005\006\005\011\005\r\005\015\005\019\005\024\005\029\005\030\005\"\005%\005)\0051\005:\005A\005D\005H\005L\005T\005W\005[\005_\005g\005k\005p\005u\005~\005\130\005\135\005\140\005\149\005\157\005\166\005\175\005\188\005\191\005\195\005\199\005\207\005\210\005\214\005\218\005\226\005\230\005\235\005\240\005\249\005\253\006\002\006\007\006\016\006\024\006!\006*\0067\0068\0069\006;\006?\006D\006H\006M\006S\006X\006_\006g\006o\006x\006\128\006\137\006\140\006\144\006\149\006\155\006\158\006\163\006\169\006\171\006\176\006\183\006\185\006\186\006\188\006\191\006\195\006\200\006\206\006\209\006\210\006\213\006\218\006\220\006\224\006\230\006\233\006\235\006\236\006\241\006\244\006\245\006\248\006\248\007\000\007\000\007\t\007\t\007\018\007\018\007\024\007\024\007\031\007\031\007!\007!\007*\007*\0074\0074\0076\0076\0078\007:\007:\007<\007@\007B\007B\007D\007D\007F\007F\007H\007H\007J\007N\007P\007R\007U\007Y\007_\007d\007g\007l\007o\007v\007y\007\127\007\129\007\133\007\134\007\135\007\140\007\144\007\149\007\156\007\164\007\174\007\185\007\186\007\189\007\190\007\193\007\194\007\197\007\198\007\201\007\206\007\209\007\210\007\213\007\214\007\217\007\218\007\221\007\222\007\225\007\226\007\229\007\230\007\233\007\234\007\238\007\239\007\241\007\245\007\247\007\249\007\251\007\255\b\004\b\005\b\007\b\b\b\n\b\r\b\014\b\015\b\016\b\017\b\024\b\028\b!\b&\b)\b+\b,\b0\b3\b6\b7\b:\bA\bI\bJ\bJ\bK\bK\bL\bM\bM\bN\bO\bQ\bS\bU\bV\b[\b\\\b]\b_\b`\bb\bc\be\bf\bg\bh\bj\bl\bn\bo\bq\br\bt\bu\bw\bx\bz\b}\b\129\b\130\b\132\b\135\b\139\b\142\b\146\b\151\b\157\b\160\b\162\b\167\b\173\b\178\b\184\b\185\b\186\b\187\b\191\b\196\b\200\b\205\b\209\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\240\b\240\b\241\b\241\b\242\b\242\b\243\b\243\b\245\b\245\b\247\b\247\b\249\b\249\b\251\t\000\t\000\t\002\t\002\t\004\t\004\t\006\t\006\t\007\t\007\t\t\t\n\t\r\t\018\t\021\t\026\t\"\t)\t3\t<\tH\tO\tY\tZ\t`\te\tg\ti\tk\tm\to\tq\ts\tu\tw\ty\t{\t~\t\128\t\129\t\132\t\135\t\136\t\140\t\141\t\143\t\149\t\151\t\155\t\158\t\160\t\161\t\164\t\167\t\168\t\169\t\170\t\171\t\173\t\175\t\177\t\181\t\182\t\185\t\186\t\189\t\193\t\203\t\203\t\204\t\204\t\205\t\206\t\208\t\210\t\210\t\211\t\212\t\215\t\218\t\221\t\222\t\223\t\225\t\226\t\227\t\228\t\229\t\231\t\233\t\234\t\235\t\237\t\240\t\246\t\250\t\254\n\005\n\b\n\014\n\018\n\022\n\029\n#\n,\n3\n:\nD\nH\nO\nT\nY\na\ne\nl\nq\nv\n~\n\133\n\143\n\151\n\159\n\170\n\171\n\174\n\177\n\181\n\185\n\193\n\194\n\197\n\200\n\204\n\208\n\216\n\216\n\221\n\222\n\224\n\225\n\227\n\228\n\230\n\231\n\233\n\234\n\236\n\238\n\244\n\247\n\254\n\255\011\001\011\004\011\005\011\b\011\t\011\012\011\r\011\016\011\017\011\020\011\021\011\024\011\025\011\028\011\029\011 \011\"\011%\011)\011.\011/\0112\0115\011:\011=\011C\011H\011K\011Q\011V\011\\\011e\011m\011r\011z\011\129\011\130\011\131\011\132\011\134\011\138\011\143\011\146\011\152\011\154\011\157\011\161\011\162\011\164\011\167\011\170\011\174\011\179\011\180\011\184\011\191\011\192\011\194\011\195\011\196\011\197\011\199\011\201\011\210\011\220\011\221\011\227\011\234\011\235\011\244\011\245\011\246\011\247\012\001\012\002\012\b\012\t\012\n\012\011\012\r\012\015\012\017\012\019\012\020\012\022\012\024\012\026\012\028\012\031\012\"\012%\012'\012*\012-\012/\0122\0128\012:\012=\012A\012F\012K\012P\012U\012Z\012a\012f\012m\012r\012y\012~\012\130\012\134\012\140\012\148\012\154\012\155\012\156\012\157\012\159\012\161\012\164\012\166\012\169\012\174\012\179\012\182\012\185\012\188\012\189\012\190\012\194\012\197\012\202\012\205\012\207\012\212\012\216\012\219\012\225\012\234\012\240\012\249\012\255\r\b\r\r\r\017\r\027\r\030\r!\r#\r(\r,\r-\r1\r8\r<\rC\rG\rN\rO\rP\rS\rT\rZ\rb\rc\rf\rg\rh\rj\rl\ro\rs\rw\r|\r}\r\130\r\131\r\132\r\133\r\134\r\135\r\136\r\137\r\138\r\139\r\140\r\141\r\142\r\143\r\144\r\145\r\146\r\147\r\148\r\149\r\150\r\151\r\152\r\153\r\154\r\155\r\156\r\157\r\158\r\159\r\160\r\161\r\162\r\163\r\164\r\165\r\166\r\167\r\168\r\169\r\170\r\171\r\172\r\173\r\174\r\175\r\176\r\177\r\178\r\179\r\180\r\181\r\182\r\183\r\184\r\192\r\194\r\198\r\206\r\215\r\219\r\224\r\233\r\243\r\248\r\254\014\007\014\017\014\022\014\028\014&\0141\0147\014>\014E\014M\014P\014T\014\\\014e\014i\014n\014v\014\127\014\136\014\146\014\155\014\165\014\175\014\186\014\190\014\195\014\200\014\206\014\211\014\217\014\223\014\230\014\239\014\249\015\003\015\014\015\024\015#\015.\015:\015?\015E\015K\015R\015X\015_\015f\015n\015w\015\129\015\139\015\150\015\160\015\171\015\182\015\194\015\199\015\205\015\211\015\218\015\224\015\231\015\238\015\246\016\000\016\011\016\022\016\"\016-\0169\016E\016R\016X\016_\016f\016n\016u\016}\016\133\016\142\016\149\016\157\016\165\016\174\016\182\016\191\016\200\016\210\016\213\016\217\016\221\016\226\016\230\016\235\016\240\016\246\016\254\017\007\017\016\017\026\017#\017-\0177\017B\017F\017K\017P\017V\017[\017a\017g\017n\017u\017}\017\133\017\142\017\149\017\157\017\165\017\174\017\182\017\191\017\200\017\210\017\218\017\227\017\236\017\246\017\255\018\t\018\019\018\030\018#\018$\018'\018(\018*\018+\018,\018-\018/\0188\018B\018C\018I\018Q\018R\018S\018\\\018]\018b\018c\018d\018e\018j\018l\018n\018q\018t\018w\018z\018}\018\128\018\130\018\133\018\136\018\139\018\142\018\145\018\148\018\151\018\153\018\155\018\156\018\157\018\160\018\162\018\166\018\168\018\168\018\170\018\171\018\175\018\178\018\178\018\179\018\182\018\184\018\185\018\186\018\186\018\187\018\188\018\189\018\191\018\193\018\195\018\197\018\198\018\199\018\200\018\201\018\203\018\207\018\210\018\211\018\212\018\213\018\218\018\223\018\229\018\235\018\242\018\243\018\244\018\245\018\246\018\254\018\254\018\255\019\000\019\002\019\004\019\005\019\007\019\t\019\015\019\020\019\024\019\028\019!\019&\019'\019)")) + ((16, "\001\165\001\159\000\223\000\221\000\219\000\217\000\215\000\213\000\211\000\209\000\207\000\205\000\203\000M\0005\000F\000D\001\183\002\023\001\024\000:\001\167\002\023\001\024\000j\000:\001\167\001\000\001\155\000.\002\023\001\024\000j\000\016\001\000\001\155\000.\001\028\001e\001\129\001_\001E\001\227\001\020\001\017\001\018\001\017\001\213\000E\002\r\000E\000j\000\127\000.\000E\000;\002\r\000;\000j\000\127\000.\000;\000\184\001\237\002\r\000\184\001\237\000j\000\127\000.\000\184\001\237\0017\000\234\001\211\000:\001\167\000\016\000j\000:\001\167\001\000\001\155\000.\000j\000\016\001\000\001\155\000.\000_\000_\000\234\002\011\000\193\000\136\002\011\002\t\0002\001\243\000\200\001e\001\255\001{\000\170\002\005\000r\000N\001e\0015\000\170\002\005\000r\000N\001\014\001e\0015\000\170\002\005\002\005\002\007\001\243\000\153\001\205\000\156\001e\002\005\000\247\001_\000\156\001\014\001e\002\005\000\247\001_\000\012\000-\001_\000f\001K\001_\000\242\001e\001\221\001_\000\154\001e\000s\001_\001\157\001_\001\197\000\214\002\005\001\000\001\241\000\214\002\005\001\135\002\001\001\135\000`\002\005\001\135\001\255\001=\000j\000\201\000.\000j\000\201\001\000\001\215\000.\000j\001\215\000.\000\156\001e\001\245\001_\000\012\001e\001\029\000n\001\000\001\215\001_\000f\001e\000\181\000n\001\000\000\191\001_\000\242\001e\001\221\001_\001\157\001_\001\197\001\237\000\138\000\137\0002\001\237\001\205\000T\001e\001\249\001Y\000\220\001\245\002\007\000r\000N\001e\0015\000\170\001\245\000r\000N\001\014\001e\0015\000\170\001\245\000j\002\005\000.\001\253\000\138\000\137\0002\001\253\000j\002\005\001\000\001\241\000.\000T\001e\001\251\001W\000\220\001\245\000\229\000K\000`\001\241\000n\001\000\000K\000`\001\241\000K\000`\001\241\001\002\000\020\001\207\001e\000'\001\195\000n\000\214\001\245\001_\001k\001I\000\202\000\143\000\b\001\191\000\b\000\198\001\207\001e\000\147\001e\000\201\001\231\001e\000l\000\201\000\170\001\191\001e\000l\000\201\000\170\000\198\001\207\001e\000\147\001e\000\014\000\201\000\170\001\191\001e\000\014\000\201\000\170\000\198\001\207\001e\000\147\001e\000P\000\201\000\170\001\191\001e\000P\000\201\000\170\000\198\001\207\001e\000\147\000\214\001\191\001\209\001\191\000\214\001\191\001\209\000\198\001\207\001e\000\147\000\214\000\198\001\207\001e\000\147\001\209\001\191\000\214\000\198\001\207\001e\000\147\001\209\000\198\001\207\001e\000\147\000\170\001\191\000\170\000\198\001\207\001e\000\147\000+\0007\000\138\0002\000j\000.\000\206\000\024\000\018\000j\000\254\000.\001\227\0015\0015\000\234\000j\000\254\000.\000j\000\254\000.\001\227\001\215\000\214\001\215\002\r\000\231\000\194\002\r\000\231\000\131\000$\002\r\000\231\000\131\000$\000\194\002\r\000\231\000\142\001\143\0004\001\012\000\173\002\023\001\215\002\007\001\007\001\199\001\211\000j\001\215\000.\000j\000\\\001\207\001e\001)\000.\000\138\000Q\0002\000\138\001\012\000\139\0002\000\138\000}\001\012\000\139\0002\000~\000\253\000\139\0002\000~\0002\000|\000\253\000\139\0002\000|\000\253\000\139\000\192\000\151\0002\000\182\002\r\000$\000\129\000.\000\182\000n\001\000\002\r\000$\000\129\000.\000\026\000\224\000H\002\011\000z\002\011\000\193\0002\0008\001\012\001\225\000\214\001\223\001e\001\225\000\214\001\223\001e\001\205\000\132\002\011\002\t\0002\000\138\000\133\0002\000\198\001\207\001e\000\147\001\185\000e\000r\000\\\001\207\001e\001-\0013\000\170\000s\000r\000\212\001\207\001e\001\225\001\177\001e\000\170\000s\000r\000N\001\207\001e\001/\000\170\000s\000r\000N\001\014\001\207\001e\001/\000\170\000s\000h\001\207\001e\000s\000\004\000\147\000\022\001\207\001e\000s\000\004\000\147\000\172\001\207\001e\000s\000\030\001\191\000\222\001\191\000\172\001\207\001e\000s\000\030\001\191\000\222\000\198\001\207\001e\000\147\000\172\001\207\001e\000s\000\030\000\198\001\207\001e\000\147\000\222\001\191\000\172\001\207\001e\000s\000\030\000\198\001\207\001e\000\147\000\222\000\198\001\207\001e\000\147\000\172\001\207\001e\000s\000\030\001\191\000\172\001\207\001e\000s\000\030\000\198\001\207\001e\000\147\000\006\001\207\001e\000s\000\240\000s\000\236\000\202\001\207\001e\000\201\000\214\000s\001\209\000s\000\240\000s\000\236\001\022\001\207\001e\000e\000\144\001\207\001e\000e\000S\001\191\000S\000\198\001\207\001e\000\147\002\025\001\191\002\025\000\198\001\207\001e\000\147\000\200\001\207\001e\001\187\000\245\000`\001\193\000e\000\153\000&\000e\000\167\001\223\000e\001\027\000e\001\191\000\166\001\191\001\191\000\166\000\198\001\207\001e\000\147\001\191\001\020\001\191\001\191\001\020\000\198\001\207\001e\000\147\001\191\001\018\001\191\001\191\001\018\000\198\001\207\001e\000\147\001\191\000\164\001\191\001\191\000\164\000\198\001\207\001e\000\147\001\191\000\162\001\191\001\191\000\162\000\198\001\207\001e\000\147\001\191\000\160\001\191\001\191\000\160\000\198\001\207\001e\000\147\001\191\000^\001\191\001\191\000^\000\198\001\207\001e\000\147\001\191\000\158\001\191\001\191\000\158\000\198\001\207\001e\000\147\001\191\000F\001\191\001\191\000F\000\198\001\207\001e\000\147\001\191\000D\001\191\001\191\000D\000\198\001\207\001e\000\147\001\191\000B\001\191\001\191\000B\000\198\001\207\001e\000\147\001\191\000d\001\191\001\191\000d\000\198\001\207\001e\000\147\001\191\000b\001\191\001\191\000b\000\198\001\207\001e\000\147\001\191\000$\001\191\001\191\000$\000\198\001\207\001e\000\147\001\191\000H\001\191\001\191\000H\000\198\001\207\001e\000\147\001\191\000\214\001\191\001\191\000\214\000\198\001\207\001e\000\147\001\191\000v\001\191\001\191\000v\000\198\001\207\001e\000\147\001\191\000\192\001\191\001\191\000\192\000\198\001\207\001e\000\147\001\191\000J\001\191\001\191\000J\000\198\001\207\001e\000\147\001\191\001\n\001\191\001\191\001\n\000\198\001\207\001e\000\147\001\191\001\030\001\191\001\191\001\030\000\198\001\207\001e\000\147\001\191\001 \001\191\001\191\001 \000\198\001\207\001e\000\147\001\191\000\252\001\191\001\191\000\252\000\198\001\207\001e\000\147\001}\000\170\000s\000p\001q\000\170\000s\001\191\000\254\001\191\001\191\000\254\000\198\001\207\001e\000\147\000n\000t\001\191\000n\000t\000\198\001\207\001e\000\147\000e\000\234\001\139\000t\001\191\000e\000\234\001\139\000t\000\198\001\207\001e\000\147\000e\000\234\000j\000s\000.\000t\001\191\000e\000\234\000j\000s\000.\000t\000\198\001\207\001e\000\147\000e\000\234\000\142\000s\0004\000t\001\191\000e\000\234\000\142\000s\0004\000t\000\198\001\207\001e\000\147\000e\000\234\000\138\000s\0002\000t\001\191\000e\000\234\000\138\000s\0002\000t\000\198\001\207\001e\000\147\000e\000\228\000j\000{\000.\000t\001\191\000e\000\228\000j\000{\000.\000t\000\198\001\207\001e\000\147\000e\000\234\0015\000\228\000j\000{\000.\000t\001\191\000e\000\234\0015\000\228\000j\000{\000.\000t\000\198\001\207\001e\000\147\000e\000\228\000\142\000{\0004\000t\001\191\000e\000\228\000\142\000{\0004\000t\000\198\001\207\001e\000\147\000e\000\234\0015\000\228\000\142\000{\0004\000t\001\191\000e\000\234\0015\000\228\000\142\000{\0004\000t\000\198\001\207\001e\000\147\000e\000\228\000\138\000{\0002\000t\001\191\000e\000\228\000\138\000{\0002\000t\000\198\001\207\001e\000\147\000e\000\234\0015\000\228\000\138\000{\0002\000t\001\191\000e\000\234\0015\000\228\000\138\000{\0002\000t\000\198\001\207\001e\000\147\001\191\002\007\000l\000s\000\014\000s\000P\000s\000\210\000s\000j\000\020\001\023\000.\000j\000\020\000n\001\000\001\155\000.\001\135\000\159\001\191\001\191\000,\001\191\000,\000s\001\191\000,\000H\002\011\000s\000K\000Y\000j\000.\000j\001-\001\000\001)\000.\000\155\000R\001\219\001\000\001\219\000`\002\r\001\000\000\149\000\234\001\219\000`\002\r\001\000\002\r\001\000\000\149\000\234\002\r\001\012\001\225\001\177\001e\001\225\001\177\001e\000\020\001\207\001e\000A\000n\000\249\000\252\001\t\000\161\001_\000\020\001\207\001e\000V\000A\000n\000\249\000\252\001\t\000\161\001_\000\020\001\207\001e\000A\000n\000\249\000G\000\161\001_\000\020\001\207\001e\000V\000A\000n\000\249\000G\000\161\001_\000\018\000n\000W\000\218\000\168\000\168\000\196\000,\000\232\000o\000\218\000x\002\011\000\193\0002\0006\001\151\001\000\001\155\001\155\000^\001\021\001\155\000\004\001\215\001\167\000\148\001\215\000\016\000\175\000j\001\151\000.\000\150\000n\000\214\001\155\001\031\000n\001\000\000\189\000\231\001e\001\031\000n\001\000\000\189\000\231\001e\000,\001e\001\147\001\145\001\145\001\143\000n\000n\002\017\000n\001\000\001\215\000n\001\000\001\215\002\015\000n\001\000\000\149\000\234\001\215\000n\001\000\000\149\000\234\001\215\002\015\001=\000e\000\146\000e\000\028\000n\000\028\000j\000n\000I\000.\000<\000n\000L\000e\000<\000j\001\141\000\235\000.\000<\000j\001\015\001\141\000\235\000.\000<\000n\000L\000j\001y\000\235\000.\000L\000j\001\015\001y\000\235\000.\000L\000\195\000\028\000j\001\141\000.\000\028\000j\001\015\001\141\000.\000\028\000n\000\146\000c\000\146\000j\001u\000.\000\146\000j\001\015\001u\000.\000\146\000j\001\015\000\201\000.\000c\000j\001\015\001w\000.\000j\001u\000.\000j\001\015\001u\000.\000\146\000j\000\201\001\000\000\149\000\234\001\215\000.\000\146\000j\001\015\000\201\001\000\000\149\000\234\001\215\000.\000j\000\201\001\000\000\149\000\234\001\215\000.\001\133\000\246\000\201\001\133\000\246\000\146\000c\001\133\000\246\000\028\000n\001\133\000\246\000\028\000j\000n\001\000\001\215\000.\000\201\000\246\000\201\000\201\000\246\000\146\000c\000\201\000\246\000\028\000n\000\201\000\246\000\028\000j\000n\001\000\001\215\000.\000\146\000c\000\246\000\201\000\146\000c\000\246\000\146\000c\000\146\000c\000\246\000\028\000n\000\146\000c\000\246\000\028\000j\000n\001\000\001\215\000.\000\028\000n\000\246\000\201\000\028\000n\000\246\000\146\000c\000\028\000n\000\246\000\028\000n\000\028\000n\000\246\000\028\000j\000n\001\000\001\215\000.\000\028\000j\000n\001\000\001\215\000.\000\246\000\201\000\028\000j\000n\001\000\001\215\000.\000\246\000\146\000c\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000n\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000j\000n\001\000\001\215\000.\001\131\000\246\000\197\001\131\000\246\000\146\000c\001\131\000\246\000\028\000n\001\131\000\246\000\028\000j\000n\001\000\001\215\000.\000\197\000\246\000\197\000\197\000\246\000\146\000c\000\197\000\246\000\028\000n\000\197\000\246\000\028\000j\000n\001\000\001\215\000.\000\146\000c\000\246\000\197\000\146\000c\000\246\000\146\000c\000\146\000c\000\246\000\028\000n\000\146\000c\000\246\000\028\000j\000n\001\000\001\215\000.\000\028\000n\000\246\000\197\000\028\000n\000\246\000\146\000c\000\028\000n\000\246\000\028\000n\000\028\000n\000\246\000\028\000j\000n\001\000\001\215\000.\000\028\000j\000n\001\000\001\215\000.\000\246\000\197\000\028\000j\000n\001\000\001\215\000.\000\246\000\146\000c\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000n\000\028\000j\000n\001\000\001\215\000.\000\246\000\028\000j\000n\001\000\001\215\000.\001\127\0001\0001\000[\0001\000I\000\214\000s\0001\000I\002\015\000\214\000s\0001\002\017\000\214\000s\001\015\0001\000I\000\214\000s\001\015\0001\000I\002\015\000\214\000s\001\015\0001\002\017\000\214\000s\0001\001\000\000\149\000\234\001\215\000\214\000s\0001\001\000\000\149\000\234\001\215\002\015\000\214\000s\001\015\0001\001\000\000\149\000\234\001\215\000\214\000s\001\015\0001\001\000\000\149\000\234\001\215\002\015\000\214\000s\0001\001\000\000\020\001\023\000\234\001\215\000\214\000s\0001\001\000\000\020\001\023\000\234\001\215\002\015\000\214\000s\000\197\000\214\000s\000a\002\017\000\214\000s\000a\001\000\001\215\000\214\000s\000a\001\000\001\215\002\015\000\214\000s\001\015\0001\000[\000j\0001\002\017\000.\000[\000r\001\207\001e\000\179\001\129\001_\001}\002\021\000r\001e\000\179\001\129\001_\000r\000H\002\011\001e\000\179\001\129\001_\001{\002\021\000\201\000\201\002\017\000\201\001\000\001\215\000\201\001\000\001\215\002\015\000\201\001\000\000\149\000\234\001\215\000\201\001\000\000\149\000\234\001\215\002\015\000j\001u\000.\000\201\000\201\001\000\001\215\000\201\001\000\000\149\000\234\001\215\000\201\002\017\000\201\001\000\001\215\002\015\000\201\001\000\000\149\000\234\001\215\002\015\000j\001u\000.\0001\000[\0001\000c\001\000\001\215\000\214\000s\000\197\000\214\000s\001s\001q\001\026\001s\001\028\001e\000'\001\195\000n\002\001\001_\001o\001\028\001e\000'\001\195\000n\001\000\001\241\001_\001m\001\028\001e\000'\001\195\000n\000\214\001\245\001_\001k\001\028\001e\001-\0013\001_\001i\001\028\001e\001-\001\000\001)\001_\001g\002\007\001e\001\028\001e\000A\000n\000\249\000G\000\161\001_\001c\001\028\001e\000A\000n\000\249\000\252\001\t\000\161\001_\001a\000\187\001_\000*\001]\000m\001]\000*\001[\000*\000s\001_\001[\000U\001[\001\247\001Y\002\003\001W\000U\001U\000*\001S\000*\000s\001_\001S\000U\001S\000O\001S\001\139\000\243\000\237\001\139\000\243\000\237\000,\001\139\000\243\000\237\000,\000\016\000\251\001\139\000\243\000\237\000,\001Q\000\201\000`\000s\000\201\000\b\000s\000`\000s\000\201\000`\000\234\000n\001\000\000\189\001e\000,\001e\001M\002\r\000,\001M\000n\001\000\000\189\001e\000,\001e\002\r\000,\000n\001\000\000\189\001e\002\r\000\232\001e\000#\000n\001\000\000\191\001e\000\183\000n\000[\001\014\001e\000\183\000n\000[\001e\000\183\000n\001\000\000\191\000\214\000s\001\014\001e\000\183\000n\001\000\000\191\000\214\000s\001e\000\183\000n\001\000\000\020\001\023\000\234\001\215\000\214\000s\001\014\001e\000\183\000n\001\000\000\020\001\023\000\234\001\215\000\214\000s\000n\0017\000\234\000n\000\018\0017\000\234\000\018\001\167\000j\000\254\000.\0003\0017\000\234\001\167\0017\000\234\000j\000\254\000.\0017\000\234\0003\001\167\0017\000\234\001\167\000?\0017\000\234\000?\000=\0017\000\234\000=\000n\0015\000\234\000n\000\018\0015\000\234\000\018\0001\0015\000\234\0001\001G\0017\000j\0017\000.\001;\000\214\001/\001\000\001)\000\214\001/\001\181\0013\001\000\001)\001\181\0011\000 \001e\000W\000\220\000\196\001e\001\179\000`\001/\000\227\001/\002\007\0015\001/\000\227\001/\000j\000.\001\205\000\016\000\018\000\016\000\\\001\207\001e\000\018\000\252\0017\001_\000(\001e\000o\000\220\000\196\001e\001\179\000`\001)\000\\\000\020\000R\001e\001/\000j\001)\000.\001)\002\007\001#\000j\000.\000`\001)\001)\000`\001)\001)\000\004\000\141\001\205\001)\000\004\0017\000\\\000\020\001\207\001e\001\167\000\239\001_\000\\\000\020\001\207\001e\001\167\000\252\001)\001_\001C\000Z\000Z\000\194\000Z\000\n\000Z\000\n\000\n\000Z\001\016\001\167\000n\000j\000n\001\000\001\155\000.\001\r\000n\000n\001\021\000n\000n\001\019\000n\000n\001\017\000l\000\014\000P\000l\001\015\000\014\001\015\000P\001\015\001\025\001\025\001\r\000\"\000\"\001\011\001\215\000>\001\215\001\217\000>\001\217\001\215\000\214\001\217\001\215\000\214\000>\001\217\000\232\000>\000\232\001\215\000\214\000\232\001\215\000\214\000>\000\232\000\142\001\143\0004\000>\000\142\001\143\0004\001\215\000\214\000\142\001\143\0004\001\215\000\214\000>\000\142\001\143\0004\000v\001M\000\192\000v\000\192\000N\001\207\001e\001/\001_\000N\001\014\001\207\001e\001/\001_\000N\001\207\001e\0017\001_\000N\001\014\001\207\001e\0017\001_\000@\000p\001\026\000\228\000j\001\161\000.\000\228\000j\001\161\000.\000t\000\228\000\138\001\161\0002\000\228\000\138\001\161\0002\000t\000\228\000\142\001\161\0004\000\228\000\142\001\161\0004\000t\000\180\001\014\000\166\001\020\001\018\000\164\000\162\000\160\000^\000\158\000F\000D\000B\000d\000b\000$\000H\000\214\000v\000\192\000J\001\n\001\030\001 \000\252\001\030\001\012\000,\001\153\001\024\000n\001\000\002\r\001\000\001\215\000\214\001\191\000\214\000\198\001\207\001e\000\147\000\214\001)\000\214\000\201\000\214\000s\000I\001\018\001\019\000L\000<\000n\001\000\000j\001/\001\000\001)\000.\000j\001/\000.\000j\000\012\001e\001\191\000.\000j\000\012\001e\000\198\001\207\001e\000\147\000.\000j\000\012\001e\001\191\001\000\001)\000.\000j\000\012\001e\000\198\001\207\001e\000\147\001\000\001)\000.\000j\000\012\001e\001\191\001\000\001)\000\250\001)\000.\000j\000\012\001e\000\198\001\207\001e\000\147\001\000\001)\000\250\001)\000.\000j\000\012\001e\001\191\000\250\001)\000.\000j\000\012\001e\000\198\001\207\001e\000\147\000\250\001)\000.\000C\0009\000:\001\167\001e\001\000\001\155\0009\000\016\001e\001\000\001\155\002\019\000\218\001\223\000\218\001\215\000\218\000s\000\218\0017\000\218\0015\000\218\001/\000\218\001)\000\218\001#\000\218\000\201\000\218\000/\000\218\000\201\000\254\000\201\000\201\002\007\000\199\000\201\001\024\0001\000\201\001\012\000\201\000\165\000\212\001\207\001e\000\201\000c\001\223\000\201\001\223\000j\000\020\001\021\000.\000c\001\027\000\201\000\144\001\207\001e\000c\000\197\000\254\000\201\000\197\002\007\000\199\000\197\001\024\0001\000\197\001\012\000\201\000\163\000n\000\016\000W\001\000\000o\001\000\001\215\000<\000\201\000<\000\201\000\b\000s\001\215\000\149\000\234\001\215\002\023\000\149\000\234\002\023\000\134\002\011\002\t\0002\000\208\001\207\001e\0001\001\000\000\191\000\231\000\214\001\011\001_\000>\000>\000\n\000>\000\n\000\n\000>\0000\000u\000e\000\004\000u\001\155\001\030\001\155\000\175\001\030\001\155\001\173\001\175\000\173\001\175\001\173\001\201\001\175\001\203\000\171\001\175\000\171\001\203\001\173\001\175\000\169\001\175\000\167\000\246\001\191\000\167\000\246\000\198\001\207\001e\000\147\000\167\000\246\000\146\000e\000\167\000\246\000\028\000n\000\167\000\246\000\028\000j\000n\000I\000.\001\191\000\246\001\191\001\191\000\246\000\198\001\207\001e\000\147\001\191\000\246\000\146\000e\001\191\000\246\000\028\000n\001\191\000\246\000\028\000j\000n\000I\000.\000\198\001\207\001e\000\147\000\246\001\191\000\198\001\207\001e\000\147\000\246\000\198\001\207\001e\000\147\000\198\001\207\001e\000\147\000\246\000\146\000e\000\198\001\207\001e\000\147\000\246\000\028\000n\000\198\001\207\001e\000\147\000\246\000\028\000j\000n\000I\000.\000\146\000e\000\246\001\191\000\146\000e\000\246\000\198\001\207\001e\000\147\000\146\000e\000\246\000\146\000e\000\146\000e\000\246\000\028\000n\000\146\000e\000\246\000\028\000j\000n\000I\000.\000\028\000n\000\246\001\191\000\028\000n\000\246\000\198\001\207\001e\000\147\000\028\000n\000\246\000\146\000e\000\028\000n\000\246\000\028\000n\000\028\000n\000\246\000\028\000j\000n\000I\000.\000\028\000j\000n\000I\000.\000\246\001\191\000\028\000j\000n\000I\000.\000\246\000\198\001\207\001e\000\147\000\028\000j\000n\000I\000.\000\246\000\146\000e\000\028\000j\000n\000I\000.\000\246\000\028\000n\000\028\000j\000n\000I\000.\000\246\000\028\000j\000n\000I\000.\001\133\001\133\000\246\000\232\000\201\000\246\000\232\000\146\000c\000\246\000\232\000\028\000n\000\246\000\232\000\028\000j\000n\001\000\001\215\000.\000\246\000\232\001\131\001\131\000\246\000\232\000\197\000\246\000\232\000\146\000c\000\246\000\232\000\028\000n\000\246\000\232\000\028\000j\000n\001\000\001\215\000.\000\246\000\232\000\161\000\242\001\215\000\214\001\215\001\189\000\159\001\189\001\235\000\157\001\235\001\181\000\155\001\181\001\137\000\153\001\137\001\027\000\151\001\027\000:\001\167\000j\000:\001\167\001\000\001\155\000.\000\149\000:\001\167\000\149\000j\000:\001\167\001\000\001\155\000.\001O\001\012\001O\000\147\001\012\001O\002\023\000\145\001\030\002\023\001\233\000\143\001\028\001\233\000!\000\141\001\028\000!\000}\000\139\001\012\000}\001\215\000\137\000\246\001\215\000\225\000\135\000\246\000\225\000C\000\133\000\246\000C\002\r\000\231\000\194\002\r\000\231\000\131\000$\002\r\000\231\000\131\000$\000\194\002\r\000\231\002\r\000n\001\000\002\r\000\129\000$\002\r\000\129\000$\000n\001\000\002\r\000\127\000\246\001\215\000\127\000\246\000:\001\167\001\000\001\155\000\127\000\246\000\016\001\000\001\155\001\215\000\246\001\215\001\215\000\246\000:\001\167\001\000\001\155\001\215\000\246\000\016\001\000\001\155\000:\001\167\001\000\001\155\000\246\001\215\000:\001\167\001\000\001\155\000\246\000:\001\167\001\000\001\155\000:\001\167\001\000\001\155\000\246\000\016\001\000\001\155\000\016\001\000\001\155\000\246\001\215\000\016\001\000\001\155\000\246\000:\001\167\001\000\001\155\000\016\001\000\001\155\000\246\000\016\001\000\001\155\000Q\001\215\001\191\001\191\000,\000\198\001\207\001e\000\147\000\198\001\207\001e\000\147\000,\001\191\000,\000{\000\198\001\207\001e\000\147\000,\000{\000n\000\241\000n\000\241\000,\000n\000\241\000,\000y\000\201\000\201\000,\000\201\000,\000w\001\139\000\233\000\241\001\139\000\233\000\241\000,\001\139\000\233\000\241\000,\000u\001\185\000\198\001\207\001e\000\147\000\212\001\207\001e\001\225\001\177\001e\001_\000\231\001]\001\157\001_\001\197\001\149\000)\000\185\001\169\001c\001\171\001a\000\020\001\207\001e\000A\000E\000B\000\183\000\169\001_\000\020\001\207\001e\000V\000A\000E\000B\000\183\000\169\001_\000q\000\\\001\207\001e\001-\0011\001_\000\\\001\207\001e\001-\000\214\0015\001_\001+\000\\\001\207\001e\0000\001-\001\000\001)\001_\001g\001'\001%\001\003\001\002\001\207\001e\000'\001\195\000n\001\000\001\241\001_\001m\001\239\001\163\001\207\001e\001)\001_\000\231\000i\0007\000d\000\176\000d\000\178\000F\000\176\000F\000\178\000+\000d\000\152\000d\000\204\000F\000\152\000F\000\204\000\142\001Q\0004\000\138\000w\0002\000\130\000w\001\b\000\130\001\b\000\128\000w\000\248\000\128\000\248\000\182\000\165\000.\000\230\001\191\000\190\000\230\000\198\001\207\001e\000\147\000\190\000\226\000e\000j\000s\000.\000j\000s\000I\000.\000j\000s\000I\002\015\000.\000e\000\234\000j\000s\000.\000e\000\234\000\142\000s\0004\000e\000\234\000\138\000s\0002\000e\000\228\000j\000{\000.\000e\000\234\0015\000\228\000j\000{\000.\000e\000\228\000\142\000{\0004\000e\000\234\0015\000\228\000\142\000{\0004\000e\000\228\000\138\000{\0002\000e\000\234\0015\000\228\000\138\000{\0002\001\006\001\207\001e\000s\000\220\001\006\001\207\001e\000\220\000X\001\207\001e\001\253\000j\000\\\001\207\001e\001/\000.\000j\000\\\001\207\001e\001/\001\000\001)\000.\000T\001\207\001e\001\251\001W\000\220\000/\001\223\001\027\000@\000e\001\014\000e\000\140\000y\000\188\000\140\000\188\000e\000\234\001\139\0015\000\234\000j\000s\000.\0015\000\234\000\140\000y\000\188\000e\000\184\000n\000e\000\174\000n\000e\000\180\000e\001\205\000\016\0015\000\234\000j\000.\000\142\000\177\0004\0015\000\234\000\142\000\177\0004\000\130\000{\001\b\000\130\001\b\0015\000\234\000\130\000{\001\b\0015\000\234\000\130\001\b\000\138\000{\0002\0015\000\234\000\138\001\191\000\157\0002\0015\000\234\000\138\000\198\001\207\001e\000\147\000\157\0002\0015\000\234\000\130\001\191\000\157\001\b\0015\000\234\000\130\000\198\001\207\001e\000\147\000\157\001\b\0015\000\234\000\128\001\191\000\157\000\248\0015\000\234\000\128\000\198\001\207\001e\000\147\000\157\000\248\0015\000\234\000\138\000{\0002\0015\000\234\000\138\0002\0015\000\234\000j\000\\\001\207\001e\001/\001\000\001)\000.\000\182\000\167\000.\000\128\000{\000\248\000\128\000\248\0015\000\234\000\128\000{\000\248\0015\000\234\000\128\000\248\001\229\000\138\001\191\000\157\0002\000\138\000\198\001\207\001e\000\147\000\157\0002\000\130\001\191\000\157\001\b\000\130\000\198\001\207\001e\000\147\000\157\001\b\000\128\001\191\000\157\000\248\000\128\000\198\001\207\001e\000\147\000\157\000\248\0001\000a\000j\000\201\000.\000g\000j\000\\\001\207\001e\001-\000.\000j\000\\\001\207\001e\001-\001\000\001)\000.\000\016\000i\000\232\000i\001\223\001\027\000\184\000E\000\174\000E\0015\000\234\000g\0015\000\234\000\138\0002\0015\000\234\000j\000.\0015\000\234\000j\000\201\000.\001\205\000j\000\201\001\000\001\215\000.\000k\000n\000\018\001\028\001\024\001\022\001\006\001\002\000\242\000\240\000\236\000\224\000\222\000\220\000\212\000\208\000\206\000\202\000\200\000\198\000\196\000\172\000\170\000\168\000\156\000\154\000\144\000r\000l\000h\000f\000\\\000Z\000X\000V\000T\000R\000N\000J\000>\0000\000(\000 \000\030\000\026\000\024\000\022\000\020\000\012\000\n\000\b\000\006\000\004\000q\000\212\001\207\001e\001\225\000\214\001\223\001e\001_\000\214\000s\001\187\000\233\000\214\001\193\000\229\000j\000\149\000\234\001\215\000.\000`\000Y\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000\229\000K\000`\000Y\000\229\000K\002\017\000`\000Y\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\000Y\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000\229\001\015\000K\000`\000Y\000\229\001\015\000K\002\017\000`\000Y\000n\001\000\000j\000\149\000\234\001\215\000.\000`\000Y\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000n\001\000\000K\000`\000Y\000n\001\000\000K\002\017\000`\000Y\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\000Y\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000n\001\000\001\015\000K\000`\000Y\000n\001\000\001\015\000K\002\017\000`\000Y\000j\000\149\000\234\001\215\000.\000`\000Y\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\000K\000`\000Y\000K\002\017\000`\000Y\001\015\000j\000\149\000\234\001\215\000.\000`\000Y\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000Y\001\015\000K\000`\000Y\001\015\000K\002\017\000`\000Y\000\229\000j\000\149\000\234\001\215\000.\000`\000K\000\229\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000\229\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000\229\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000\229\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000\229\000K\000`\000K\000\229\000K\000`\000K\002\017\000\229\000K\000`\001\015\000K\000\229\000K\000`\001\015\000K\002\017\000\229\000K\002\017\000`\000K\000\229\000K\002\017\000`\000K\002\017\000\229\000K\002\017\000`\001\015\000K\000\229\000K\002\017\000`\001\015\000K\002\017\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\000K\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000\229\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000\229\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000\229\001\015\000K\000`\000K\000\229\001\015\000K\000`\000K\002\017\000\229\001\015\000K\000`\001\015\000K\000\229\001\015\000K\000`\001\015\000K\002\017\000\229\001\015\000K\002\017\000`\000K\000\229\001\015\000K\002\017\000`\000K\002\017\000\229\001\015\000K\002\017\000`\001\015\000K\000\229\001\015\000K\002\017\000`\001\015\000K\002\017\000n\001\000\000j\000\149\000\234\001\215\000.\000`\000K\000n\001\000\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000n\001\000\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000n\001\000\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000n\001\000\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000n\001\000\000K\000`\000K\000n\001\000\000K\000`\000K\002\017\000n\001\000\000K\000`\001\015\000K\000n\001\000\000K\000`\001\015\000K\002\017\000n\001\000\000K\002\017\000`\000K\000n\001\000\000K\002\017\000`\000K\002\017\000n\001\000\000K\002\017\000`\001\015\000K\000n\001\000\000K\002\017\000`\001\015\000K\002\017\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\000K\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000n\001\000\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000n\001\000\001\015\000K\000`\000K\000n\001\000\001\015\000K\000`\000K\002\017\000n\001\000\001\015\000K\000`\001\015\000K\000n\001\000\001\015\000K\000`\001\015\000K\002\017\000n\001\000\001\015\000K\002\017\000`\000K\000n\001\000\001\015\000K\002\017\000`\000K\002\017\000n\001\000\001\015\000K\002\017\000`\001\015\000K\000n\001\000\001\015\000K\002\017\000`\001\015\000K\002\017\000j\000\149\000\234\001\215\000.\000`\000K\000j\000\149\000\234\001\215\000.\000`\000K\002\017\000j\000\149\000\234\001\215\000.\000`\001\015\000K\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\000j\000\149\000\234\001\215\000.\002\017\000`\000K\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\000K\000`\000K\000K\000`\000K\002\017\000K\000`\001\015\000K\000K\000`\001\015\000K\002\017\000K\002\017\000`\000K\000K\002\017\000`\000K\002\017\000K\002\017\000`\001\015\000K\000K\002\017\000`\001\015\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\000`\000K\001\015\000j\000\149\000\234\001\215\000.\000`\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\001\015\000j\000\149\000\234\001\215\000.\000`\001\015\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\000K\002\017\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\001\015\000j\000\149\000\234\001\215\000.\002\017\000`\001\015\000K\002\017\001\015\000K\000`\000K\001\015\000K\000`\000K\002\017\001\015\000K\000`\001\015\000K\001\015\000K\000`\001\015\000K\002\017\001\015\000K\002\017\000`\000K\001\015\000K\002\017\000`\000K\002\017\001\015\000K\002\017\000`\001\015\000K\001\015\000K\002\017\000`\001\015\000K\002\017\000n\001\000\002\r\000$\000\129\000`\000Y\000n\001\000\002\r\000$\000\129\002\017\000`\000Y\000n\001\000\001\015\002\r\000$\000\129\000`\000Y\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\000Y\000n\001\000\002\r\000$\000\129\000`\000K\000n\001\000\002\r\000$\000\129\000`\000K\002\017\000n\001\000\002\r\000$\000\129\000`\001\015\000K\000n\001\000\002\r\000$\000\129\000`\001\015\000K\002\017\000n\001\000\002\r\000$\000\129\002\017\000`\000K\000n\001\000\002\r\000$\000\129\002\017\000`\000K\002\017\000n\001\000\002\r\000$\000\129\002\017\000`\001\015\000K\000n\001\000\002\r\000$\000\129\002\017\000`\001\015\000K\002\017\000n\001\000\001\015\002\r\000$\000\129\000`\000K\000n\001\000\001\015\002\r\000$\000\129\000`\000K\002\017\000n\001\000\001\015\002\r\000$\000\129\000`\001\015\000K\000n\001\000\001\015\002\r\000$\000\129\000`\001\015\000K\002\017\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\000K\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\000K\002\017\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\001\015\000K\000n\001\000\001\015\002\r\000$\000\129\002\017\000`\001\015\000K\002\017\000n\001\000\002\r\000$\000\129\001[\000s\001_\001[\001}\001\157\001_\001\197\001\149\000\185\000)\001\169\001c\000\020\001\207\001e\000A\000E\000B\000\183\000\171\001_\000\020\001\207\001e\000V\000A\000E\000B\000\183\000\171\001_\000]\000\\\001\207\001e\001-\0013\001_\000\\\001\207\001e\0000\001-\0013\001_\001i\001'\001\005\001\002\001\207\001e\000'\001\195\000n\002\001\001_\001o\001\239\001\163\001\207\001e\001/\001_\000d\000b\001\027\000R\000\255\000\145\001e\001\027\001e\000\184\001\167\000\184\001\167\000\"\000\184\001\167\000\152\000\184\001\167\000/\000\184\001\167\0015\000\184\001\167\000\206\000\184\001\167\000\024\000\174\001\167\000\174\001\167\000\"\000\174\001\167\000\152\000\174\001\167\000/\000\174\001\167\0015\000\174\001\167\000\206\000\174\001\167\000\024\000s\001_\000*\001U\000*\000O\000*\000\218\002\r\002\r\000$\000\129\001\000\001\215\001\000\001\215\000\250\001\215\000\250\001\215\000\214\001\t\001?\0009\000:\001\167\001e\0009\000\016\001e\000C\000j\000\135\000.\000n\000\174\000n\001A\000F\000d\001\014\000F\001\014\001\014\000F\000d\001\014\001\014\000d\000\162\000@\000\176\000\178\001S\000\218\000s\001_\001S\000\218\000j\001\001\000.\000n\0003\0019\001e\000%\000n\001\000\001\215\001e\001!\000n\000\214\000s\001\014\001e\001!\000n\000\214\000s\001e\001!\000n\000I\000\214\000s\001\014\001e\001!\000n\000I\000\214\000s\000\152\001\004\000\"\000\204\000\012\001\207\001e\0001\001\000\000\191\000\231\001_\000\n\000\n\000Z\000\n\000\n\000Z\000\n\000>\000\n\000\n\000>\000\020\000A\001\139\000\031\002\023\000\161\000\020\000A\001\139\000\252\002\023\000\\\0015\000\214\0017\000\\\0015\000\252\0017\000\\\000\020\001#\000\214\001)\000\\\000\020\001#\000\252\001)\000\214\000\214\000>"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\022\000\030\000%\000)\000*\000+\000-\000/\0000\0001\0003\0007\0008\000:\000>\000@\000C\000H\000K\000M\000N\000T\000Y\000Z\000]\000^\000b\000c\000f\000i\000o\000v\000x\000z\000{\000\128\000\134\000\137\000\140\000\144\000\148\000\150\000\151\000\153\000\157\000\159\000\162\000\164\000\165\000\168\000\173\000\173\000\176\000\176\000\180\000\187\000\194\000\198\000\200\000\201\000\202\000\206\000\207\000\212\000\214\000\220\000\227\000\230\000\231\000\235\000\240\000\245\000\246\000\250\000\255\001\002\001\r\001\014\001\016\001\018\001\023\001\026\001\031\001'\001,\0014\0019\001A\001E\001L\001S\001]\001_\001d\001e\001f\001h\001j\001k\001l\001m\001p\001q\001r\001w\001z\001{\001~\001\128\001\131\001\135\001\140\001\143\001\144\001\145\001\146\001\148\001\149\001\150\001\151\001\154\001\160\001\163\001\167\001\172\001\176\001\178\001\182\001\188\001\193\001\200\001\201\001\202\001\202\001\204\001\208\001\209\001\214\001\218\001\219\001\223\001\223\001\226\001\230\001\231\001\232\001\240\001\249\002\000\002\b\002\014\002\020\002\028\002'\0022\002@\002F\002O\002V\002a\002e\002i\002k\002p\002r\002w\002~\002\128\002\130\002\131\002\133\002\135\002\138\002\144\002\147\002\153\002\156\002\162\002\165\002\171\002\174\002\180\002\183\002\189\002\192\002\198\002\201\002\207\002\210\002\216\002\219\002\225\002\228\002\234\002\237\002\243\002\246\002\252\002\255\003\005\003\b\003\014\003\017\003\023\003\026\003 \003#\003)\003,\0032\0035\003;\003>\003D\003G\003M\003P\003V\003Y\003]\003`\003f\003i\003o\003t\003|\003\131\003\141\003\148\003\158\003\165\003\175\003\182\003\192\003\201\003\213\003\220\003\230\003\239\003\251\004\002\004\012\004\021\004!\004#\004%\004'\004)\004+\004/\0045\0046\0047\0048\004:\004=\004B\004C\004D\004F\004K\004L\004L\004N\004R\004X\004Z\004^\004b\004e\004o\004z\004\131\004\141\004\142\004\143\004\145\004\146\004\148\004\148\004\150\004\152\004\156\004\157\004\158\004\160\004\163\004\166\004\167\004\169\004\170\004\171\004\174\004\178\004\184\004\192\004\193\004\194\004\196\004\197\004\199\004\202\004\206\004\211\004\217\004\218\004\219\004\221\004\223\004\228\004\230\004\232\004\237\004\243\004\245\004\250\005\000\005\002\005\006\005\011\005\r\005\015\005\019\005\024\005\029\005\030\005\"\005%\005)\0051\005:\005A\005D\005H\005L\005T\005W\005[\005_\005g\005k\005p\005u\005~\005\130\005\135\005\140\005\149\005\157\005\166\005\175\005\188\005\191\005\195\005\199\005\207\005\210\005\214\005\218\005\226\005\230\005\235\005\240\005\249\005\253\006\002\006\007\006\016\006\024\006!\006*\0067\0068\0069\006;\006?\006D\006H\006M\006S\006X\006_\006g\006o\006x\006\128\006\137\006\140\006\144\006\149\006\155\006\158\006\163\006\169\006\171\006\176\006\183\006\185\006\186\006\188\006\191\006\195\006\200\006\206\006\209\006\210\006\213\006\218\006\220\006\224\006\230\006\233\006\235\006\236\006\241\006\244\006\245\006\248\006\248\007\000\007\000\007\t\007\t\007\018\007\018\007\024\007\024\007\031\007\031\007!\007!\007*\007*\0074\0074\0076\0076\0078\007:\007:\007<\007@\007B\007B\007D\007D\007F\007F\007H\007H\007J\007N\007P\007R\007U\007Y\007_\007d\007g\007l\007o\007v\007y\007\127\007\129\007\133\007\134\007\135\007\140\007\144\007\149\007\156\007\164\007\174\007\185\007\186\007\189\007\190\007\193\007\194\007\197\007\198\007\201\007\206\007\209\007\210\007\213\007\214\007\217\007\218\007\221\007\222\007\225\007\226\007\229\007\230\007\233\007\234\007\238\007\239\007\241\007\245\007\247\007\249\007\251\007\255\b\004\b\005\b\007\b\b\b\n\b\r\b\014\b\015\b\016\b\017\b\024\b\028\b!\b&\b)\b+\b,\b0\b3\b6\b7\b:\bA\bI\bJ\bJ\bK\bK\bL\bM\bM\bN\bO\bQ\bS\bU\bV\b[\b\\\b]\b_\b`\bb\bc\be\bf\bg\bh\bj\bl\bn\bo\bq\br\bt\bu\bw\bx\bz\b}\b\129\b\130\b\132\b\135\b\139\b\142\b\146\b\151\b\157\b\160\b\162\b\167\b\173\b\178\b\184\b\185\b\186\b\187\b\191\b\196\b\200\b\205\b\209\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\240\b\240\b\241\b\241\b\242\b\242\b\243\b\243\b\245\b\245\b\247\b\247\b\249\b\249\b\251\t\000\t\000\t\002\t\002\t\004\t\004\t\006\t\006\t\007\t\007\t\t\t\n\t\r\t\018\t\021\t\026\t\"\t)\t3\t<\tH\tO\tY\tZ\t`\te\tg\ti\tk\tm\to\tq\ts\tu\tw\ty\t{\t~\t\128\t\129\t\132\t\135\t\136\t\140\t\141\t\143\t\149\t\151\t\155\t\158\t\160\t\161\t\164\t\167\t\168\t\169\t\170\t\171\t\173\t\175\t\177\t\181\t\182\t\185\t\186\t\189\t\193\t\203\t\203\t\204\t\204\t\205\t\206\t\208\t\210\t\210\t\211\t\212\t\215\t\218\t\221\t\222\t\223\t\225\t\226\t\227\t\228\t\229\t\231\t\233\t\234\t\235\t\237\t\240\t\246\t\250\t\254\n\005\n\b\n\014\n\018\n\022\n\029\n#\n,\n3\n:\nD\nH\nO\nT\nY\na\ne\nl\nq\nv\n~\n\133\n\143\n\151\n\159\n\170\n\171\n\174\n\177\n\181\n\185\n\193\n\194\n\197\n\200\n\204\n\208\n\216\n\216\n\221\n\222\n\224\n\225\n\227\n\228\n\230\n\231\n\233\n\234\n\236\n\238\n\244\n\247\n\254\n\255\011\001\011\004\011\005\011\b\011\t\011\012\011\r\011\016\011\017\011\020\011\021\011\024\011\025\011\028\011\029\011 \011\"\011%\011)\011.\011/\0112\0115\011:\011=\011C\011H\011K\011Q\011V\011\\\011e\011m\011r\011z\011\129\011\130\011\131\011\132\011\134\011\138\011\143\011\146\011\152\011\154\011\157\011\161\011\162\011\164\011\167\011\170\011\174\011\179\011\180\011\184\011\191\011\193\011\195\011\196\011\197\011\198\011\199\011\201\011\203\011\212\011\222\011\223\011\229\011\236\011\237\011\246\011\247\011\248\011\249\012\003\012\004\012\n\012\011\012\012\012\014\012\016\012\018\012\020\012\021\012\023\012\025\012\027\012\029\012 \012#\012&\012(\012+\012-\0120\0123\0129\012;\012>\012B\012G\012L\012Q\012V\012[\012b\012g\012n\012s\012z\012\127\012\131\012\135\012\141\012\149\012\155\012\156\012\157\012\158\012\160\012\162\012\165\012\167\012\170\012\175\012\180\012\183\012\186\012\189\012\190\012\191\012\195\012\198\012\203\012\206\012\208\012\213\012\217\012\220\012\226\012\235\012\241\012\250\r\000\r\t\r\014\r\018\r\028\r\031\r\"\r$\r)\r-\r.\r2\r9\r=\rD\rH\rO\rP\rQ\rT\rU\r[\rc\rd\rg\rh\ri\rk\rm\rp\rt\rx\r}\r~\r\131\r\132\r\133\r\134\r\135\r\136\r\137\r\138\r\139\r\140\r\141\r\142\r\143\r\144\r\145\r\146\r\147\r\148\r\149\r\150\r\151\r\152\r\153\r\154\r\155\r\156\r\157\r\158\r\159\r\160\r\161\r\162\r\163\r\164\r\165\r\166\r\167\r\168\r\169\r\170\r\171\r\172\r\173\r\174\r\175\r\176\r\177\r\178\r\179\r\180\r\181\r\182\r\183\r\184\r\185\r\193\r\195\r\199\r\207\r\216\r\220\r\225\r\234\r\244\r\249\r\255\014\b\014\018\014\023\014\029\014'\0142\0148\014?\014F\014N\014Q\014U\014]\014f\014j\014o\014w\014\128\014\137\014\147\014\156\014\166\014\176\014\187\014\191\014\196\014\201\014\207\014\212\014\218\014\224\014\231\014\240\014\250\015\004\015\015\015\025\015$\015/\015;\015@\015F\015L\015S\015Y\015`\015g\015o\015x\015\130\015\140\015\151\015\161\015\172\015\183\015\195\015\200\015\206\015\212\015\219\015\225\015\232\015\239\015\247\016\001\016\012\016\023\016#\016.\016:\016F\016S\016Y\016`\016g\016o\016v\016~\016\134\016\143\016\150\016\158\016\166\016\175\016\183\016\192\016\201\016\211\016\214\016\218\016\222\016\227\016\231\016\236\016\241\016\247\016\255\017\b\017\017\017\027\017$\017.\0178\017C\017G\017L\017Q\017W\017\\\017b\017h\017o\017v\017~\017\134\017\143\017\150\017\158\017\166\017\175\017\183\017\192\017\201\017\211\017\219\017\228\017\237\017\247\018\000\018\n\018\020\018\031\018$\018%\018(\018)\018+\018,\018-\018.\018/\0181\018:\018D\018E\018K\018S\018T\018U\018^\018_\018d\018e\018f\018k\018m\018o\018r\018u\018x\018{\018~\018\129\018\131\018\134\018\137\018\140\018\143\018\146\018\149\018\152\018\154\018\156\018\157\018\158\018\161\018\163\018\167\018\169\018\169\018\171\018\172\018\176\018\179\018\179\018\180\018\183\018\185\018\186\018\187\018\187\018\188\018\189\018\190\018\192\018\194\018\196\018\198\018\199\018\200\018\201\018\202\018\204\018\208\018\211\018\212\018\213\018\214\018\219\018\224\018\230\018\236\018\243\018\244\018\245\018\246\018\247\018\255\018\255\019\000\019\001\019\003\019\005\019\006\019\b\019\n\019\016\019\021\019\025\019\029\019\"\019'\019(\019*")) and lr0_core = - (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\183\011\022\011\023\007\142\007\143\007\144\007\145\000\176\000\146\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\184\000\185\000\186\000\187\000\188\000\189\000\190\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\n\001\011\001\012\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001 \001!\001\"\001#\001$\001%\001&\001'\001(\001)\001*\001+\001,\001-\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\180\001\181\001\182\001\183\001\184\001\185\001\186\001\187\001\188\001\189\001\190\001\191\001\192\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\024\002\025\002\026\002\027\002\028\002\029\002\030\002\031\002 \002!\002\"\002#\002$\002%\002&\002'\002(\002)\002*\002+\002,\002-\0026\0027\0028\0029\002:\002;\002<\002=\002>\002?\002@\002A\002B\002C\002D\002E\002F\002G\002H\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\149\002\150\002\151\002\152\002\153\002\154\002\155\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\214\002\236\002\237\002\238\002\239\002\240\002\241\002\242\002\243\002\244\002\245\002\246\002\247\002\248\002\249\002\225\002\226\002\227\002\250\002\251\002\230\002\231\002\252\002\253\002\254\000\178\000\179\002\255\003\000\003\001\003\002\003\003\003\004\003\005\003\006\002\215\002\216\002\217\002\218\002\219\002\220\002\221\002\222\002\223\002\224\002\228\002\229\003\007\003\b\003\t\002\232\002\233\002\234\002\235\003\n\003\011\003\012\003\r\003\014\003\015\003\016\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003\\\003]\003^\0037\003_\003E\003F\003K\003L\003M\003N\003O\003P\003Q\003R\003S\003T\003U\003V\003W\003X\003Y\003`\002\141\002\142\002\143\002\144\002\145\002\146\002\147\002\148\003*\003+\003Z\003[\003a\003b\003,\003-\003.\003/\0030\0031\0032\0033\0034\0035\0036\0038\003c\003d\003e\003f\003g\003h\003i\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\003y\003z\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\144\003\145\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\157\003\158\003\159\003\160\003\161\003\162\003\163\003\164\003\165\003\166\003\169\003\170\003\171\003\172\003\173\003\174\003\175\003\176\003\177\003\178\003\167\003\168\003\179\003\180\003\181\003\182\003\183\003\184\003\185\003\186\003\187\003\188\003\189\003\190\003\191\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\003\201\003\202\003\203\003\204\003\205\003\206\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\217\003\218\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\227\003\228\003\229\003\230\003\231\003\232\003\233\003\234\003\235\003\236\003\237\003\238\003\239\003\240\003\241\003\242\003\243\003\244\003\245\003\246\003\247\003\248\003\249\003\250\003\251\003\252\003\253\003\254\003\255\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\b\004\t\004\n\004\011\004\012\004\r\004\014\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004\"\004#\004$\004%\004&\004'\004(\004)\004*\004+\004,\004-\004.\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\0049\004:\004;\004<\004=\004>\004?\004@\004A\004B\004C\004D\004E\004F\004G\004H\004I\004J\004K\004L\004M\004N\004O\004P\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004g\004h\004i\004j\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\168\004\169\004\170\004\171\004x\004y\004z\004{\004|\004}\004~\004\127\004\128\004\129\004k\004l\004m\004n\004q\004r\004s\004t\004u\004v\004w\004\132\004\133\004\134\004\135\004\136\004\139\004\140\004\141\004\142\004\143\004\144\004\145\004\146\004\147\004\148\004\149\004\150\004o\004p\004\130\004\131\006\197\006\198\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\192\004\193\004\194\004\195\005\210\005\211\005\212\005\213\004\137\004\138\004\200\004\201\004\202\004\203\004\204\004\205\004\206\004\207\004\208\004\209\004\210\004\211\004\212\005\011\005\012\005\r\005\014\005\015\005\016\005m\005n\005o\005p\005q\005r\005s\005t\005u\005v\005w\005x\005y\005z\004\213\004\214\004\215\004\216\004\217\004\218\004\231\004\232\004\233\004\234\004\235\004\236\004\243\004\244\004\245\004\246\004\247\004\248\005\017\005\018\005\019\005\020\005\021\005\022\004\219\004\220\004\221\004\222\004\223\004\224\004\225\004\226\004\227\004\228\004\229\004\230\004\237\004\238\004\239\004\240\004\241\004\242\004\249\004\250\004\251\004\252\004\253\004\254\004\255\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\b\005\t\005\n\005\023\005\024\005\025\005\026\005\027\005\028\005\029\005\030\005\031\005 \005!\005\"\005I\005J\005K\005L\005M\005N\005U\005V\005W\005X\005Y\005Z\005[\005\\\005]\005^\005_\005`\005#\005$\005%\005&\005'\005(\005)\005*\005+\005,\005-\005.\005/\0050\0051\0052\0053\0054\005O\005P\005Q\005R\005S\005T\005a\005b\005c\005d\005e\005f\005g\005h\005i\005j\005k\005l\0055\0056\0057\0058\0059\005:\005;\005<\005=\005>\005?\005@\005A\005B\005C\005D\005E\005F\005G\005H\005{\005|\005}\005~\005\127\005\128\005\129\005\130\005\131\005\132\005\133\005\134\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\143\005\144\005\145\005\146\005\147\005\148\005\149\005\150\005\151\005\152\005\153\005\154\005\155\005\156\005\157\005\158\005\159\005\160\005\161\005\162\005\163\005\164\005\165\005\166\005\167\005\168\005\169\005\170\005\171\005\172\005\173\005\174\005\175\005\176\005\177\005\178\005\179\005\180\005\181\0039\003:\003;\003<\003=\003>\003?\003@\003A\003B\003C\003D\003G\003H\003I\003J\005\182\005\183\005\184\005\185\005\186\005\187\005\188\005\189\005\190\005\191\005\192\005\193\005\194\005\195\005\196\005\197\005\198\005\199\005\200\005\201\005\202\005\203\005\204\005\205\005\206\005\207\005\208\005\214\006\199\006\200\006\201\006\202\006\203\006\204\006\205\006\206\006\207\006\208\006\209\0062\0060\0061\006\210\006\211\006\212\006\213\006\214\006\215\006\216\006b\006c\006d\006e\006f\006g\006h\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\006}\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\191\006\192\006\193\006\194\006\195\006\196\006\224\006\225\006\226\006\227\006\228\006\229\006\230\006\231\006\232\006\217\006\218\006\022\006\023\006\219\006\220\006\221\006\222\006\223\004\172\005\215\005\216\005\217\005\218\005\219\005\220\005\221\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\235\005\236\005\237\005\238\005\239\005\240\005\241\005\242\005\243\005\244\005\245\005\246\005\247\005\248\005\249\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006\016\006\017\006\018\006\019\006\020\006\021\006\024\006\025\006\026\006\027\006\028\006\029\006\030\006\031\006 \006!\006\"\006#\006$\006%\006&\006'\006(\006)\006*\006+\006,\006-\006.\006/\0063\0064\0065\0066\0067\0068\0069\006:\006;\006<\006=\006>\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006J\006K\006L\006M\006N\006O\006P\006Q\006R\006S\006T\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006\233\006\234\006\235\006\236\006\237\006\238\006\239\006\240\006\241\006\242\006\243\006\244\006\245\006\246\006\247\006\248\006\249\006\250\006\251\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\014\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\190\004\191\004\196\004\197\004\198\004\199\005\209\007\015\007\016\007\017\007\018\007\019\007\020\007\021\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\007+\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b|\b}\b~\b\127\b\128\b\129\b\130\b\131\b\132\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\b\253\b\254\b\255\t\000\t\001\t\002\t\003\t\004\t\005\t\006\t\007\t\b\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\190\t\191\t\192\t\193\t\194\t\195\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\234\t\235\t\236\t\237\t\238\t\239\t\240\t\241\t\242\t\243\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\003\n\004\n\005\n\006\n\007\n\b\n\t\n\n\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\nB\nC\nD\nE\nF\002.\002/\0020\0021\0022\0023\0024\0025\n>\n?\n@\nA\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nW\nX\nY\nZ\n[\n\\\n]\n^\002\017\002\018\002\019\002\020\002\021\002\022\002\023\nP\nQ\nR\nS\nT\nU\nV\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\173\n\174\n\175\n\176\n\177\n\178\n\179\n\180\n\181\n\182\n\183\n\184\n\185\n\186\n\187\n\188\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\201\n\202\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\214\n\215\n\216\n\217\n\218\n\219\n\220\n\221\n\222\n\223\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\232\n\233\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\246\n\247\n\248\n\249\n\250\n\251\n\252\n\253\n\254\n\255\011\000\011\001\011\002\011\003\011\004\011\005\011\006\011\007\011\b\011\t\011\n\011\011\011\012\011\r\011\014\011\015\011\016\011\017\011\018\011\019\011\020\011\021\000\177\000\180\000\181\000\182\007\146\007\147\007\148\007\149\007\150\011\024\011\025\011\026\011\027\011\028\011\029\011\030\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\011:\011;\011<\011=\011>\011?\011@\011A\011B\011C\011D\011E\011F\011G\011H\011I\011J\011K\011L\011M\011N\011O\011P\011Q\011R\011S\011T\011U\011V\011W\011X\011Y\011Z\011[\011\\\011]\011^\011_\011`\011a\011b\011c\011d\011e\011f\011g\011h\011i\011j\011k\011l\011m\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011x\011y\011z\011{\011|\011}\011~\011\127\011\128\011\129\011\130\011\131\011\132\011\133\011\134\011\135\011\136\011\137\011\138\011\139\011\140\011\141\011\142\011\143\011\144\011\145\011\146\011\147\011\148\011\149\011\150\011\151\011\152\011\153\011\154\011\155\011\156\011\157\011\158\011\159\011\160\011\161") + (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\146\000\190\011\023\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\187\000\188\000\189\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\n\001\011\001\012\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001 \001!\001\"\001#\001$\001%\001&\001'\001(\001)\001*\001+\001,\001-\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\180\001\181\001\182\001\183\001\184\001\185\001\186\001\187\001\188\001\189\001\190\001\191\001\192\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\031\002 \002!\002\"\002#\002$\002%\002&\002'\002(\002)\002*\002+\002,\002-\002.\002/\0020\0021\0022\0023\0024\002=\002>\002?\002@\002A\002B\002C\002D\002E\002F\002G\002H\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\141\002\142\002\143\002\144\002\145\002\146\002\147\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\214\002\215\002\216\002\217\002\218\002\219\002\220\002\221\002\243\002\244\002\245\002\246\002\247\002\248\002\249\002\250\002\251\002\252\002\253\002\254\002\255\003\000\002\232\002\233\002\234\003\001\003\002\002\237\002\238\003\003\003\004\003\005\003\006\003\007\003\b\003\t\003\n\003\011\003\012\003\r\002\222\002\223\002\224\002\225\002\226\002\227\002\228\002\229\002\230\002\231\002\235\002\236\003\014\003\015\003\016\002\239\002\240\002\241\002\242\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003*\003+\003,\003-\003.\003/\0030\003c\003d\003e\003>\003f\003L\003M\003R\003S\003T\003U\003V\003W\003X\003Y\003Z\003[\003\\\003]\003^\003_\003`\003g\002\148\002\149\002\150\002\151\002\152\002\153\002\154\002\155\0031\0032\003a\003b\003h\003i\0033\0034\0035\0036\0037\0038\0039\003:\003;\003<\003=\003?\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\003y\003z\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\144\003\145\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\157\003\158\003\159\003\160\003\161\003\162\003\163\003\164\003\165\003\166\003\167\003\168\003\169\003\170\003\171\003\172\003\173\003\176\003\177\003\178\003\179\003\180\003\181\003\182\003\183\003\184\003\185\003\174\003\175\003\186\003\187\003\188\003\189\003\190\003\191\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\003\201\003\202\003\203\003\204\003\205\003\206\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\217\003\218\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\227\003\228\003\229\003\230\003\231\003\232\003\233\003\234\003\235\003\236\003\237\003\238\003\239\003\240\003\241\003\242\003\243\003\244\003\245\003\246\003\247\003\248\003\249\003\250\003\251\003\252\003\253\003\254\003\255\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\b\004\t\004\n\004\011\004\012\004\r\004\014\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004\"\004#\004$\004%\004&\004'\004(\004)\004*\004+\004,\004-\004.\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\0049\004:\004;\004<\004=\004>\004?\004@\004A\004B\004C\004D\004E\004F\004G\004H\004I\004J\004K\004L\004M\004N\004O\004P\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004g\004h\004i\004j\004k\004l\004m\004n\004o\004p\004q\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\168\004\169\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\127\004\128\004\129\004\130\004\131\004\132\004\133\004\134\004\135\004\136\004r\004s\004t\004u\004x\004y\004z\004{\004|\004}\004~\004\139\004\140\004\141\004\142\004\143\004\146\004\147\004\148\004\149\004\150\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004v\004w\004\137\004\138\006\204\006\205\004\180\004\181\004\182\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\199\004\200\004\201\004\202\005\217\005\218\005\219\005\220\004\144\004\145\004\207\004\208\004\209\004\210\004\211\004\212\004\213\004\214\004\215\004\216\004\217\004\218\004\219\005\018\005\019\005\020\005\021\005\022\005\023\005t\005u\005v\005w\005x\005y\005z\005{\005|\005}\005~\005\127\005\128\005\129\004\220\004\221\004\222\004\223\004\224\004\225\004\238\004\239\004\240\004\241\004\242\004\243\004\250\004\251\004\252\004\253\004\254\004\255\005\024\005\025\005\026\005\027\005\028\005\029\004\226\004\227\004\228\004\229\004\230\004\231\004\232\004\233\004\234\004\235\004\236\004\237\004\244\004\245\004\246\004\247\004\248\004\249\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\b\005\t\005\n\005\011\005\012\005\r\005\014\005\015\005\016\005\017\005\030\005\031\005 \005!\005\"\005#\005$\005%\005&\005'\005(\005)\005P\005Q\005R\005S\005T\005U\005\\\005]\005^\005_\005`\005a\005b\005c\005d\005e\005f\005g\005*\005+\005,\005-\005.\005/\0050\0051\0052\0053\0054\0055\0056\0057\0058\0059\005:\005;\005V\005W\005X\005Y\005Z\005[\005h\005i\005j\005k\005l\005m\005n\005o\005p\005q\005r\005s\005<\005=\005>\005?\005@\005A\005B\005C\005D\005E\005F\005G\005H\005I\005J\005K\005L\005M\005N\005O\005\130\005\131\005\132\005\133\005\134\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\143\005\144\005\145\005\146\005\147\005\148\005\149\005\150\005\151\005\152\005\153\005\154\005\155\005\156\005\157\005\158\005\159\005\160\005\161\005\162\005\163\005\164\005\165\005\166\005\167\005\168\005\169\005\170\005\171\005\172\005\173\005\174\005\175\005\176\005\177\005\178\005\179\005\180\005\181\005\182\005\183\005\184\005\185\005\186\005\187\005\188\003@\003A\003B\003C\003D\003E\003F\003G\003H\003I\003J\003K\003N\003O\003P\003Q\005\189\005\190\005\191\005\192\005\193\005\194\005\195\005\196\005\197\005\198\005\199\005\200\005\201\005\202\005\203\005\204\005\205\005\206\005\207\005\208\005\209\005\210\005\211\005\212\005\213\005\214\005\215\005\221\006\206\006\207\006\208\006\209\006\210\006\211\006\212\006\213\006\214\006\215\006\216\0069\0067\0068\006\217\006\218\006\219\006\220\006\221\006\222\006\223\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\006}\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\191\006\192\006\193\006\194\006\195\006\196\006\197\006\198\006\199\006\200\006\201\006\202\006\203\006\231\006\232\006\233\006\234\006\235\006\236\006\237\006\238\006\239\006\224\006\225\006\029\006\030\006\226\006\227\006\228\006\229\006\230\004\179\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\235\005\236\005\237\005\238\005\239\005\240\005\241\005\242\005\243\005\244\005\245\005\246\005\247\005\248\005\249\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006\016\006\017\006\018\006\019\006\020\006\021\006\022\006\023\006\024\006\025\006\026\006\027\006\028\006\031\006 \006!\006\"\006#\006$\006%\006&\006'\006(\006)\006*\006+\006,\006-\006.\006/\0060\0061\0062\0063\0064\0065\0066\006:\006;\006<\006=\006>\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006J\006K\006L\006M\006N\006O\006P\006Q\006R\006S\006T\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\006\240\006\241\006\242\006\243\006\244\006\245\006\246\006\247\006\248\006\249\006\250\006\251\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\014\007\015\007\016\007\017\007\018\007\019\007\020\007\021\004\190\004\191\004\192\004\193\004\194\004\195\004\196\004\197\004\198\004\203\004\204\004\205\004\206\005\216\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\007+\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\142\007\143\007\144\007\145\007\146\007\147\007\148\007\149\007\150\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b|\b}\b~\b\127\b\128\b\129\b\130\b\131\b\132\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\b\253\b\254\b\255\t\000\t\001\t\002\t\003\t\004\t\005\t\006\t\007\t\b\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\191\t\192\t\193\t\194\t\195\0025\0026\0027\0028\0029\002:\002;\002<\t\187\t\188\t\189\t\190\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\002\024\002\025\002\026\002\027\002\028\002\029\002\030\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\234\t\235\t\236\t\237\t\238\t\239\t\240\t\241\t\242\t\243\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\003\n\004\n\005\n\006\n\007\n\b\n\t\n\n\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\173\n\174\n\175\n\176\n\177\n\178\n\179\n\180\n\181\n\182\n\183\n\184\n\185\n\186\n\187\n\188\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\201\n\202\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\214\n\215\n\216\n\217\n\218\n\219\n\220\n\221\n\222\n\223\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\232\n\233\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\246\n\247\n\248\n\249\n\250\n\251\n\252\n\253\n\254\n\255\011\000\011\001\011\002\011\003\011\004\011\005\011\006\011\007\011\b\011\t\011\n\011\011\011\012\011\r\011\014\011\015\011\016\011\017\011\018\011\019\011\020\011\021\011\022\011\024\011\025\011\026\011\027\011\028\011\029\011\030\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\011:\011;\011<\011=\011>\011?\011@\011A\011B\011C\011D\011E\011F\011G\011H\011I\011J\011K\011L\011M\011N\011O\011P\011Q\011R\011S\011T\011U\011V\011W\011X\011Y\011Z\011[\011\\\011]\011^\011_\011`\011a\011b\011c\011d\011e\011f\011g\011h\011i\011j\011k\011l\011m\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011x\011y\011z\011{\011|\011}\011~\011\127\011\128\011\129\011\130\011\131\011\132\011\133\011\134\011\135\011\136\011\137\011\138\011\139\011\140\011\141\011\142\011\143\011\144\011\145\011\146\011\147\011\148\011\149\011\150\011\151\011\152\011\153\011\154\011\155\011\156\011\157\011\158\011\159\011\160\011\161\011\162\011\163") and lr0_items = - ((32, "\000\000\000\000\000\002\192\001\000\002`\001\000\016\028\001\000\016\024\001\000\016\020\001\000\016\016\001\000\016\012\001\000\015T\001\000\016\b\001\000\016\004\001\000\016\000\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\015\216\001\000\015\212\001\000\015\208\001\000\015\204\001\000\015\200\001\000\015\196\001\000\015\192\001\000\015\188\001\000\015P\001\000\015\184\001\000\015\180\001\000\015\176\001\000\015\172\001\000\015\168\001\000\015\164\001\000\015\160\001\000\015\156\001\000\015\152\001\000\015\148\001\000\015\144\001\000\015\140\001\000\015\136\001\000\015\132\001\000\015\128\001\000\015|\001\000\015x\001\000\015t\001\000\015p\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\000\168\001\000\000\164\001\000\000\168\002\000\000\168\003\000\002`\002\000\002\192\002\000\000\176\001\000\000\176\002\000\019\180\001\000\019\180\002\000\019\180\003\000\019\128\001\000\t\188\001\000\t\\\001\000\t\176\001\000\t\172\001\000\t\168\001\000\t\192\001\000\t\208\001\000\t\160\001\000\t\184\001\000\t\180\001\000\t`\001\000\t\200\001\000\t\164\001\000\t\156\001\000\t\152\001\000\t\148\001\000\t\136\001\000\t\128\001\000\t\204\001\000\t\196\001\000\t|\001\000\tx\001\000\tt\001\000\tp\001\000\tl\001\000\th\001\000\tl\002\000\th\002\000\004\168\001\000\004\168\002\000\tl\003\000\th\003\000\tl\004\000\th\004\000\tl\005\000\tt\002\000\tp\002\000\tt\003\000\tp\003\000\tt\004\000\tp\004\000\tt\005\000\t|\002\000\tx\002\000\t|\003\000\tx\003\000\t|\004\000\tx\004\000\t|\005\000\t\224\001\000\t\212\001\000\t\132\001\000\t\144\001\000\t\140\001\000\td\001\000\t\216\001\000\t\220\001\000\019\128\002\000\019\128\003\000\019\132\001\000\019\180\004\000\019\180\005\000\b\244\001\000\b\232\001\000\b\248\001\000\b\236\001\000\b\240\001\000\b\228\001\000\b\240\002\000\b\248\002\000\b\244\002\000\000\152\001\000\007\188\001\000\002h\001\000\012p\001\000\000\148\001\000\004\144\001\000\004\148\001\000\012p\002\000\000\148\002\000\nT\001\000\nT\002\000\nT\003\000\nP\001\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\016t\001\000\016p\001\000\012t\001\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\r\016\001\000\r\012\001\000\r\b\001\000\000\160\002\000\000\152\001\000\r\016\002\000\r\012\002\000\r\b\002\000\000\160\003\000\004\200\001\000\004\208\001\000\004\196\001\000\000\148\001\000\000\148\002\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\016t\001\000\016p\001\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\r\004\001\000\r\000\001\000\012\252\001\000\012p\001\000\000\156\002\000\000\148\001\000\r\004\002\000\r\000\002\000\012\252\002\000\012p\002\000\000\156\003\000\000\148\002\000\r\004\003\000\r\000\003\000\012\252\003\000\000\156\004\000\011d\001\000\004\204\001\000\011d\002\000\011d\003\000\011`\001\000\004\188\001\000\004\184\001\000\004\188\002\000\019@\001\000\019<\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\018\024\001\000\018\020\001\000\018\016\001\000\017\140\001\000\017\136\001\000\017\132\001\000\017\128\001\000\017|\001\000\017x\001\000\017t\001\000\017p\001\000\017l\001\000\017h\001\000\017d\001\000\017`\001\000\017\\\001\000\017X\001\000\017T\001\000\017P\001\000\017L\001\000\017H\001\000\017D\001\000\017@\001\000\017<\001\000\0178\001\000\0174\001\000\0170\001\000\017,\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\017\024\001\000\017\020\001\000\017\016\001\000\016l\001\000\016h\001\000\016d\001\000\016`\001\000\016\\\001\000\016X\001\000\016T\001\000\016P\001\000\019<\002\000\018`\002\000\018\\\002\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\018H\002\000\018D\002\000\018@\002\000\018<\002\000\0188\002\000\0184\002\000\0180\002\000\018,\002\000\018(\002\000\018$\002\000\018 \002\000\018\028\002\000\018\024\002\000\018\020\002\000\018\016\002\000\017\140\002\000\017\136\002\000\017\132\002\000\017\128\002\000\017|\002\000\017x\002\000\017t\002\000\017p\002\000\017l\002\000\017h\002\000\017d\002\000\017`\002\000\017\\\002\000\017X\002\000\017T\002\000\017P\002\000\017L\002\000\017H\002\000\017D\002\000\017@\002\000\017<\002\000\0178\002\000\0174\002\000\0170\002\000\017,\002\000\017(\002\000\017$\002\000\017 \002\000\017\028\002\000\017\024\002\000\017\020\002\000\017\016\002\000\016l\002\000\016h\002\000\016d\002\000\016`\002\000\016\\\002\000\016X\002\000\016T\002\000\016P\002\000\017,\003\000\017(\003\000\017$\003\000\017 \003\000\017\028\003\000\017\024\003\000\017\020\003\000\017\016\003\000\016T\003\000\016P\003\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\002,\002\000\002,\003\000\002,\004\000\007\188\001\000\004\144\001\000\b\\\001\000\b\\\002\000\r\132\001\000\r\128\001\000\004\140\001\000\004\136\001\000\004\132\001\000\004\128\001\000\r\132\002\000\r\128\002\000\004\140\002\000\004\136\002\000\004\132\002\000\004\128\002\000\r\132\003\000\r\128\003\000\004\140\003\000\004\136\003\000\004\132\003\000\004\128\003\000\019l\001\000\019X\001\000\019L\001\000\019X\002\000\r\132\004\000\004\140\004\000\004\132\004\000\019`\001\000\019P\001\000\019`\002\000\0198\001\000\019h\001\000\019d\001\000\019\\\001\000\019T\001\000\019\\\002\000\019d\002\000\019,\001\000\019(\001\000\n\136\001\000\n\132\001\000\019,\002\000\n\136\002\000\019,\003\000\n\136\003\000\n\136\004\000\n\136\005\000\011`\001\000\004\212\001\000\004\188\001\000\004\184\001\000\004\184\002\000\b\208\001\000\b\204\001\000\b\208\002\000\004\184\003\000\011`\002\000\011`\003\000\011`\001\000\004\188\001\000\004\184\001\000\004\192\001\000\006\252\001\000\006\252\002\000\019(\002\000\n\132\002\000\019(\003\000\n\132\003\000\019(\004\000\n\132\004\000\n\132\005\000\n\132\006\000\n\128\001\000\0198\002\000\012\184\001\000\0198\003\000\012\184\002\000\012\184\003\000\012\180\001\000\019,\001\000\019(\001\000\019,\002\000\019,\003\000\019(\002\000\019(\003\000\019(\004\000\r\132\005\000\004\140\005\000\004\132\005\000\019@\001\000\004\140\006\000\004\132\006\000\004\216\001\000\004\216\002\000\004\140\007\000\004\132\007\000\019 \001\000\007\188\001\000\001\216\001\000\001\212\001\000\t8\001\000\t(\001\000\t\024\001\000\t\016\001\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\016t\001\000\016p\001\000\002,\001\000\002(\001\000\001\220\001\000\001\204\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\001\204\002\000\tH\001\000\tD\001\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\r\004\001\000\r\000\001\000\012\252\001\000\000\156\002\000\000\148\001\000\r\004\002\000\r\000\002\000\012\252\002\000\000\156\003\000\000\148\002\000\002d\001\000\002d\002\000\004 \001\000\014\140\001\000\007\252\001\000\002\164\001\000\002\164\002\000\002\164\003\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\019\024\001\000\002H\001\000\002D\001\000\t\240\001\000\002H\002\000\002D\002\000\002@\001\000\002<\001\000\002@\002\000\002<\002\000\0028\001\000\0024\001\000\0020\001\000\002P\001\000\002L\001\000\019@\001\000\019<\001\000\002P\002\000\002P\003\000\019@\001\000\019<\001\000\000\132\001\000\007\180\001\000\b\016\001\000\007\192\001\000\007\184\001\000\b\016\002\000\b\016\003\000\b\016\001\000\007\192\001\000\b\016\004\000\007\192\002\000\007\192\003\000\b\012\001\000\007\192\002\000\007\184\002\000\007\184\003\000\001|\001\000\000\132\002\000\000x\001\000\007\236\001\000\007\228\001\000\000l\001\000\002\028\001\000\b\016\001\000\007\240\001\000\007\232\001\000\007\192\001\000\000\144\001\000\007\240\002\000\007\232\002\000\007\192\002\000\000\144\002\000\002,\001\000\002(\001\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\004L\001\000\017\188\002\000\017\184\002\000\017\180\002\000\017\176\002\000\016x\002\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\003\000\017\180\001\000\017\176\003\000\017\176\001\000\016|\001\000\016x\001\000\000`\001\000\b\224\001\000\b\220\001\000\b\224\002\000\000`\002\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\180\004\000\016|\002\000\017\204\003\000\017\200\003\000\017\196\003\000\017\192\003\000\016|\003\000\017\204\001\000\017\200\001\000\017\196\004\000\017\196\001\000\017\192\004\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\005\000\017\196\002\000\017\192\002\000\016|\002\000\016|\004\000\017\012\001\000\017\b\001\000\017\004\001\000\017\000\001\000\016\252\001\000\016\248\001\000\016\244\001\000\016\240\001\000\016\236\001\000\016\232\001\000\016\228\001\000\016\224\001\000\016\220\001\000\016\216\001\000\016\212\001\000\016\208\001\000\016\204\001\000\016\200\001\000\016\196\001\000\016\192\001\000\016\188\001\000\016\184\001\000\016\180\001\000\016\176\001\000\016\172\001\000\016\168\001\000\016\164\001\000\016\160\001\000\016\156\001\000\016\152\001\000\016\148\001\000\016\144\001\000\016L\001\000\016H\001\000\016D\001\000\016@\001\000\016<\001\000\0168\001\000\0164\001\000\0160\001\000\016\172\002\000\016\168\002\000\016\164\002\000\016\160\002\000\016\156\002\000\016\152\002\000\016\148\002\000\016\144\002\000\0164\002\000\0160\002\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\004P\001\000\012\236\001\000\012\232\001\000\012\228\001\000\000\140\002\000\000\128\002\000\000t\002\000\000\140\003\000\000\128\003\000\000t\003\000\000\140\004\000\000\140\005\000\000\128\004\000\000t\004\000\b\016\001\000\007\240\001\000\007\232\001\000\007\192\001\000\007\240\002\000\007\232\002\000\007\192\002\000\007\240\003\000\007\232\003\000\019$\001\000\019D\001\000\012\236\002\000\012\232\002\000\012\228\002\000\012\236\003\000\000\152\001\000\012\236\004\000\012\236\005\000\012\232\003\000\000\148\001\000\012\232\004\000\000\148\002\000\012\232\005\000\012\232\006\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\017\236\002\000\017\232\002\000\017\228\002\000\017\224\002\000\017\220\002\000\017\216\002\000\017\212\002\000\017\208\002\000\016\132\002\000\016\128\002\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\017\236\003\000\017\232\003\000\017\228\003\000\017\224\003\000\017\220\003\000\017\216\003\000\017\212\003\000\017\208\003\000\016\132\003\000\016\128\003\000\012|\001\000\012x\001\000\012x\002\000\012x\003\000\012|\002\000\012|\003\000\012|\004\000\012|\005\000\012|\006\000\012|\007\000\017\236\004\000\017\232\004\000\017\228\004\000\017\224\004\000\017\220\004\000\017\216\004\000\017\212\004\000\017\208\004\000\016\132\004\000\016\128\004\000\000D\001\000\002 \001\000\002t\001\000\002$\001\000\000h\001\000\017\236\005\000\017\232\005\000\017\228\005\000\017\224\005\000\017\220\005\000\017\216\005\000\017\212\005\000\017\208\005\000\016\132\005\000\016\128\005\000\002\024\001\000\017\236\006\000\017\232\006\000\017\228\006\000\017\224\006\000\017\220\006\000\017\216\006\000\017\212\006\000\017\208\006\000\016\132\006\000\016\128\006\000\017\220\007\000\017\216\007\000\017\212\007\000\017\208\007\000\016\128\007\000\017\212\b\000\017\208\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\017\212\t\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\016\128\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\b\000\017\220\001\000\017\216\b\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\220\t\000\017\216\t\000\016\140\002\000\016\136\002\000\017\252\003\000\017\248\003\000\017\244\003\000\017\240\003\000\016\136\003\000\017\244\004\000\017\240\004\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\017\244\005\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\016\136\004\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\004\000\017\252\001\000\017\248\004\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\005\000\017\252\002\000\017\248\005\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\252\006\000\016\140\003\000\018\012\004\000\018\b\004\000\018\004\004\000\018\000\004\000\016\140\004\000\018\004\005\000\018\000\005\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\018\004\006\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\016\140\005\000\018\012\005\000\018\012\001\000\018\b\005\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\006\000\018\012\002\000\018\b\006\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018\012\007\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\019\012\001\000\019\b\001\000\000\136\001\000\000|\001\000\000p\001\000\019\012\002\000\019@\001\000\019<\001\000\012\216\001\000\012\216\002\000\012\216\003\000\000\136\001\000\000|\001\000\000p\001\000\000\136\002\000\000\136\003\000\000|\002\000\000p\002\000\019\012\003\000\012\224\001\000\012\220\001\000\012\224\002\000\012\220\002\000\019@\001\000\019<\001\000\012\224\003\000\012\224\004\000\012\224\005\000\000\136\001\000\000|\001\000\000p\001\000\012\220\003\000\000\136\001\000\000|\001\000\000p\001\000\012\212\001\000\000\136\001\000\000|\001\000\000p\001\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\220\n\000\016\140\003\000\017\236\007\000\017\232\007\000\017\228\007\000\017\224\007\000\016\132\007\000\017\236\b\000\017\232\b\000\017\228\b\000\017\224\b\000\016\132\b\000\017\228\t\000\017\224\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\017\228\n\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\016\132\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\t\000\017\236\001\000\017\232\t\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\236\n\000\017\232\n\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\236\011\000\016\140\003\000\002\024\002\000\002\020\001\000\000P\001\000\000L\001\000\000H\001\000\000P\002\000\000L\002\000\000H\002\000\000H\003\000\000H\004\000\000P\003\000\000L\003\000\000P\004\000\000P\005\000\000P\006\000\000P\007\000\000L\004\000\000L\005\000\000L\006\000\000L\007\000\000L\b\000\012\248\001\000\012\244\001\000\012\240\001\000\002(\002\000\002\024\001\000\002(\003\000\012\248\002\000\012\244\002\000\012\240\002\000\012\248\003\000\000\152\001\000\012\248\004\000\012\248\005\000\012\244\003\000\000\148\001\000\012\244\004\000\000\148\002\000\012\244\005\000\012\244\006\000\012\240\003\000\002\024\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\012\228\003\000\002\024\001\000\016\172\003\000\016\168\003\000\016\164\003\000\016\160\003\000\016\156\003\000\016\152\003\000\016\148\003\000\016\144\003\000\0164\003\000\0160\003\000\012|\001\000\012x\001\000\016\172\004\000\016\168\004\000\016\164\004\000\016\160\004\000\016\156\004\000\016\152\004\000\016\148\004\000\016\144\004\000\0164\004\000\0160\004\000\016\172\005\000\016\168\005\000\016\164\005\000\016\160\005\000\016\156\005\000\016\152\005\000\016\148\005\000\016\144\005\000\0164\005\000\0160\005\000\002\024\001\000\016\172\006\000\016\168\006\000\016\164\006\000\016\160\006\000\016\156\006\000\016\152\006\000\016\148\006\000\016\144\006\000\0164\006\000\0160\006\000\016\156\007\000\016\152\007\000\016\148\007\000\016\144\007\000\0160\007\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\148\b\000\016\144\b\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\148\t\000\016|\002\000\0160\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\156\b\000\016\152\b\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\156\t\000\016\152\t\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\156\n\000\016\140\003\000\016\172\007\000\016\168\007\000\016\164\007\000\016\160\007\000\0164\007\000\016\172\b\000\016\168\b\000\016\164\b\000\016\160\b\000\0164\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\164\t\000\016\160\t\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\164\n\000\016|\002\000\0164\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\172\t\000\016\168\t\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\172\n\000\016\168\n\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\172\011\000\016\140\003\000\016\204\002\000\016\200\002\000\016\196\002\000\016\192\002\000\016\188\002\000\016\184\002\000\016\180\002\000\016\176\002\000\016<\002\000\0168\002\000\016\188\003\000\016\184\003\000\016\180\003\000\016\176\003\000\0168\003\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\180\004\000\016\176\004\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\180\005\000\016|\002\000\0168\004\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\188\004\000\016\184\004\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\188\005\000\016\184\005\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\188\006\000\016\140\003\000\016\204\003\000\016\200\003\000\016\196\003\000\016\192\003\000\016<\003\000\016\204\004\000\016\200\004\000\016\196\004\000\016\192\004\000\016<\004\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\196\005\000\016\192\005\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\196\006\000\016|\002\000\016<\005\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\204\005\000\016\200\005\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\204\006\000\016\200\006\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\204\007\000\016\140\003\000\017\012\002\000\017\b\002\000\017\004\002\000\017\000\002\000\016\252\002\000\016\248\002\000\016\244\002\000\016\240\002\000\016\236\002\000\016\232\002\000\016\228\002\000\016\224\002\000\016\220\002\000\016\216\002\000\016\212\002\000\016\208\002\000\016L\002\000\016H\002\000\016D\002\000\016@\002\000\016\236\003\000\016\232\003\000\016\228\003\000\016\224\003\000\016\220\003\000\016\216\003\000\016\212\003\000\016\208\003\000\016D\003\000\016@\003\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\016\236\004\000\016\232\004\000\016\228\004\000\016\224\004\000\016\220\004\000\016\216\004\000\016\212\004\000\016\208\004\000\016D\004\000\016@\004\000\012|\001\000\012x\001\000\016\236\005\000\016\232\005\000\016\228\005\000\016\224\005\000\016\220\005\000\016\216\005\000\016\212\005\000\016\208\005\000\016D\005\000\016@\005\000\016\236\006\000\016\232\006\000\016\228\006\000\016\224\006\000\016\220\006\000\016\216\006\000\016\212\006\000\016\208\006\000\016D\006\000\016@\006\000\002\024\001\000\016\236\007\000\016\232\007\000\016\228\007\000\016\224\007\000\016\220\007\000\016\216\007\000\016\212\007\000\016\208\007\000\016D\007\000\016@\007\000\016\220\b\000\016\216\b\000\016\212\b\000\016\208\b\000\016@\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\212\t\000\016\208\t\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\212\n\000\016|\002\000\016@\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\220\t\000\016\216\t\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\220\n\000\016\216\n\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\220\011\000\016\140\003\000\016\236\b\000\016\232\b\000\016\228\b\000\016\224\b\000\016D\b\000\016\236\t\000\016\232\t\000\016\228\t\000\016\224\t\000\016D\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\228\n\000\016\224\n\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\228\011\000\016|\002\000\016D\n\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\236\n\000\016\232\n\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\236\011\000\016\232\011\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\236\012\000\016\140\003\000\017\012\003\000\017\b\003\000\017\004\003\000\017\000\003\000\016\252\003\000\016\248\003\000\016\244\003\000\016\240\003\000\016L\003\000\016H\003\000\016\252\004\000\016\248\004\000\016\244\004\000\016\240\004\000\016H\004\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\244\005\000\016\240\005\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\244\006\000\016|\002\000\016H\005\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\252\005\000\016\248\005\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\252\006\000\016\248\006\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\252\007\000\016\140\003\000\017\012\004\000\017\b\004\000\017\004\004\000\017\000\004\000\016L\004\000\017\012\005\000\017\b\005\000\017\004\005\000\017\000\005\000\016L\005\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\004\006\000\017\000\006\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\004\007\000\016|\002\000\016L\006\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\012\006\000\017\b\006\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\012\007\000\017\b\007\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\012\b\000\016\140\003\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\204\004\000\017\200\004\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\204\005\000\017\200\005\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\204\006\000\016\140\003\000\016x\003\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\188\003\000\017\184\003\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\188\004\000\017\184\004\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\188\005\000\016\140\003\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\002(\002\000\002\024\001\000\000\144\003\000\002P\004\000\000\136\001\000\000|\001\000\000p\001\000\002P\005\000\012\224\001\000\012\220\001\000\002P\006\000\002P\007\000\002L\002\000\000\136\001\000\000|\001\000\000p\001\000\002L\003\000\012\224\001\000\012\220\001\000\002L\004\000\002L\005\000\0024\002\000\b\188\001\000\b\188\002\000\r\020\001\000\012\164\001\000\012\168\001\000\0024\003\000\0024\004\000\012\168\002\000\012\168\003\000\018\188\001\000\018\184\001\000\018\184\002\000\t\228\001\000\018\184\003\000\018\184\004\000\012\144\001\000\012\144\002\000\012\144\003\000\000P\001\000\000L\001\000\000H\001\000\018\184\005\000\012\140\001\000\000P\001\000\000L\001\000\000H\001\000\018\188\002\000\r\024\001\000\002\024\001\000\r\020\001\000\0020\002\000\0020\003\000\0028\002\000\0028\003\000\012\168\001\000\0028\004\000\0028\005\000\012\168\001\000\002<\003\000\002<\004\000\012\168\001\000\002H\003\000\002D\003\000\002D\004\000\002H\004\000\012l\001\000\002H\005\000\002H\006\000\012l\002\000\012h\001\000\019\024\002\000\002\024\001\000\019\020\001\000\019\016\001\000\019\020\002\000\019\016\002\000\002\024\001\000\019\020\003\000\019\020\004\000\002\024\001\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\012\012\006\000\012\b\006\000\012\004\006\000\012\000\006\000\011\252\006\000\012\012\007\000\012\012\001\000\012\b\007\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\012\012\b\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\012\012\t\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\012\012\n\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\012\012\011\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\012\b\b\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\248\003\000\011\244\003\000\011\240\003\000\011\236\003\000\011\232\003\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\004\000\011\248\001\000\011\244\004\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\248\005\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\248\006\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\248\007\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\248\b\000\011\248\002\000\011\244\005\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\019\172\001\000\002\232\001\000\014`\001\000\014P\001\000\014P\002\000\014P\003\000\001\016\001\000\001\012\001\000\015\028\001\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\012$\007\000\005\196\007\000\005\192\007\000\005\188\007\000\005\184\007\000\012$\001\000\012 \001\000\005\196\b\000\005\196\001\000\005\192\b\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012$\002\000\005\196\t\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012$\003\000\005\196\n\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\012$\004\000\005\196\011\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\012$\005\000\005\196\012\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\002\024\001\000\012$\006\000\005\196\r\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\012 \002\000\005\192\t\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012 \003\000\005\180\003\000\005\176\003\000\005\172\003\000\005\168\003\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\004\000\005\180\001\000\005\176\004\000\005\176\001\000\005\172\001\000\005\168\001\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\180\005\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\005\180\006\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\005\180\007\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\005\180\b\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\005\180\t\000\012 \002\000\005\180\002\000\005\176\005\000\005\176\002\000\005\172\002\000\005\168\002\000\r\224\001\000\r\220\001\000\r\204\001\000\r\200\001\000\r\220\002\000\r\200\002\000\r\204\002\000\r\224\002\000\r\216\001\000\r\212\001\000\r\196\001\000\r\192\001\000\r\212\002\000\r\192\002\000\r\196\002\000\r\216\002\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\001\236\001\000\001\204\001\000\r\224\001\000\r\220\001\000\r\204\001\000\r\200\001\000\t\168\001\000\015\024\002\000\015\020\002\000\015\024\003\000\015\020\003\000\015\024\004\000\015\020\004\000\bT\001\000\bP\001\000\015\024\005\000\015\020\005\000\015\020\006\000\015\024\006\000\bd\001\000\bd\002\000\bd\003\000\bd\004\000\bL\001\000\b,\001\000\b,\002\000\018\136\001\000\018\132\001\000\004\140\001\000\004\136\001\000\018\136\002\000\018\132\002\000\004\140\002\000\004\136\002\000\018\136\003\000\018\132\003\000\004\140\003\000\004\136\003\000\018\136\004\000\004\140\004\000\018\136\005\000\004\140\005\000\019@\001\000\004\140\006\000\004\140\007\000\004\140\b\000\012D\001\000\004\140\t\000\011,\001\000\011,\002\000\007,\001\000\007(\001\000\004\180\001\000\000@\001\000\000<\001\000\tP\001\000\tL\001\000\tP\002\000\tP\003\000\tP\004\000\n|\001\000\nx\001\000\nt\001\000\np\001\000\nl\001\000\nh\001\000\nd\001\000\n`\001\000\n\\\001\000\nX\001\000\n|\002\000\nx\002\000\nt\002\000\np\002\000\nl\002\000\nh\002\000\nd\002\000\n`\002\000\n|\003\000\nx\003\000\nt\003\000\np\003\000\nl\003\000\nh\003\000\nd\003\000\n`\003\000\004$\001\000\014D\001\000\014D\002\000\014D\003\000\007\244\001\000\b\000\001\000\007\248\001\000\b\000\002\000\007\248\002\000\b\000\003\000\007\248\003\000\b\020\001\000\001\b\001\000\014D\004\000\018\180\001\000\018\176\001\000\002\160\001\000\002\160\002\000\002\160\003\000\019\128\001\000\014L\001\000\014H\001\000\014\020\001\000\014\016\001\000\014\012\001\000\001\236\001\000\001\204\001\000\014`\001\000\t\\\001\000\015\000\001\000\014\252\001\000\014\220\001\000\014\216\001\000\004\028\001\000\019\132\001\000\003\196\001\000\003\192\001\000\003\196\002\000\003\192\002\000\003\180\001\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\012<\007\000\006\020\007\000\006\016\007\000\006\012\007\000\006\b\007\000\012<\001\000\0128\001\000\006\020\b\000\006\020\001\000\006\016\b\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012<\002\000\006\020\t\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012<\003\000\006\020\n\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\012<\004\000\006\020\011\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\012<\005\000\006\020\012\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\002\024\001\000\012<\006\000\006\020\r\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\0128\002\000\006\016\t\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\0128\003\000\006\004\003\000\006\000\003\000\005\252\003\000\005\248\003\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\004\000\006\004\001\000\006\000\004\000\006\000\001\000\005\252\001\000\005\248\001\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\006\004\005\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\006\004\006\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\006\004\007\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\006\004\b\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\006\004\t\000\0128\002\000\006\004\002\000\006\000\005\000\006\000\002\000\005\252\002\000\005\248\002\000\r\252\001\000\r\248\001\000\r\240\001\000\r\236\001\000\r\232\001\000\001\200\001\000\001\200\002\000\r\228\001\000\005\012\001\000\r\228\002\000\r\228\003\000\007l\001\000\007h\001\000\007d\001\000\007`\001\000\n\024\001\000\n\024\002\000\002\024\001\000\007l\002\000\007h\002\000\007d\002\000\007`\002\000\n4\001\000\n\228\001\000\n\228\002\000\n\228\003\000\019\164\001\000\0150\001\000\019@\001\000\0150\002\000\b\016\001\000\007\240\001\000\007\192\001\000\007\240\002\000\007\192\002\000\019p\001\000\019t\001\000\r\244\001\000\012\028\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\015,\001\000\015,\002\000\019\176\001\000\001\208\001\000\019\168\001\000\r\208\001\000\015\004\001\000\019\136\001\000\r\188\001\000\015\b\001\000\012\028\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012\028\003\000\005\164\003\000\005\160\003\000\005\156\003\000\005\152\003\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\164\004\000\005\160\004\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\164\005\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\005\164\006\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\005\164\007\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\005\164\b\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\005\164\t\000\012 \002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\005\160\005\000\012\028\001\000\005\164\001\000\005\160\001\000\005\156\004\000\005\156\001\000\005\152\001\000\012\028\002\000\005\164\002\000\005\160\002\000\005\156\005\000\005\156\002\000\005\152\002\000\015\016\001\000\015 \001\000\r\184\001\000\015 \002\000\r\224\001\000\r\220\001\000\r\216\001\000\r\212\001\000\015 \003\000\015L\001\000\015(\001\000\015@\001\000\015<\001\000\0158\001\000\0154\001\000\b\000\001\000\001\232\001\000\001\228\001\000\015@\002\000\015<\002\000\0158\002\000\0154\002\000\b\000\002\000\001\232\002\000\015@\003\000\015<\003\000\001\232\003\000\015<\004\000\n\208\001\000\n\208\002\000\n\208\003\000\n\212\001\000\n\204\001\000\n\192\001\000\012\024\001\000\n\208\004\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012\024\002\000\005\148\002\000\005\144\002\000\005\140\002\000\005\136\002\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\148\003\000\005\144\003\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\148\004\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\005\148\005\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\005\148\006\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\005\148\007\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\005\148\b\000\012 \002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\005\144\004\000\012\028\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\005\140\003\000\012\028\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\005\140\004\000\015D\001\000\015$\001\000\001\240\001\000\012\024\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\003\000\005\136\001\000\n\184\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\003\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\200\002\000\012\024\001\000\n\200\003\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\196\002\000\n\196\003\000\n\188\002\000\015(\001\000\n\224\001\000\012\024\001\000\n\224\002\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012\020\001\000\012\016\001\000\005\132\001\000\005\128\001\000\005|\001\000\005x\001\000\012\020\002\000\005\132\002\000\005\128\002\000\005|\002\000\005x\002\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\132\003\000\005\128\003\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\132\004\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\005\132\005\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\005\132\006\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\005\132\007\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\005\132\b\000\012 \002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\005\128\004\000\012\028\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\005|\003\000\012\028\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\005|\004\000\012\020\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\005x\003\000\015$\001\000\n\220\001\000\n\216\001\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\n\220\002\000\001\236\001\000\001\204\001\000\n\220\003\000\n\220\004\000\n\220\005\000\n\220\006\000\r\216\001\000\r\212\001\000\r\196\001\000\r\192\001\000\t\180\001\000\001\236\002\000\001\236\003\000\015H\002\000\015\012\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\015\012\003\000\015H\003\000\015H\004\000\002\024\001\000\015H\005\000\012\024\001\000\n\216\002\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\232\004\000\001\232\005\000\015@\004\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\015@\005\000\0158\003\000\r\232\001\000\0158\004\000\r\232\002\000\r\232\003\000\rH\001\000\rD\001\000\r@\001\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\rH\002\000\rD\002\000\rH\003\000\0154\003\000\012\028\004\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\152\004\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\r\244\002\000\n\204\001\000\r\244\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\228\004\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\n4\002\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\007l\003\000\007h\003\000\007d\003\000\007`\003\000\007l\004\000\007h\004\000\007d\004\000\007h\005\000\t\248\001\000\007h\006\000\007l\005\000\r\240\002\000\r\236\002\000\r\236\003\000\r\252\002\000\r\248\002\000\r\248\003\000\0124\001\000\005\252\004\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\0124\002\000\005\252\005\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\0124\003\000\005\244\003\000\005\240\003\000\005\236\003\000\005\232\003\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\244\004\000\005\240\004\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\244\005\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\005\244\006\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\005\244\007\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\005\244\b\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\005\244\t\000\0128\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\005\240\005\000\0124\001\000\005\244\001\000\005\240\001\000\005\236\004\000\005\236\001\000\005\232\001\000\0124\002\000\005\244\002\000\005\240\002\000\005\236\005\000\005\236\002\000\005\232\002\000\0124\004\000\n\252\001\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\005\232\004\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\0120\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\228\003\000\005\224\003\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\228\004\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\005\228\005\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\005\228\006\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\005\228\007\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\005\228\b\000\0128\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\005\224\004\000\0124\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\005\220\003\000\0124\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\005\220\004\000\0120\003\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\003\000\005\216\001\000\n\232\002\000\012\024\001\000\n\232\003\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\248\002\000\012\024\001\000\n\248\003\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\244\002\000\n\244\003\000\n\236\002\000\n\240\001\000\012,\001\000\012(\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\012,\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\212\003\000\005\208\003\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\212\004\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\005\212\005\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\005\212\006\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\005\212\007\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\005\212\b\000\0128\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\005\208\004\000\0124\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\005\204\003\000\0124\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\005\204\004\000\012,\003\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\200\003\000\0128\004\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\005\248\004\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\0124\001\000\006\012\b\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\0124\002\000\006\012\t\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\012<\b\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\006\b\b\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\0128\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\0124\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\0124\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\015\004\001\000\006\188\001\000\006\184\001\000\005H\001\000\005D\001\000\005@\001\000\005D\002\000\005@\002\000\005\b\001\000\005\004\001\000\005\000\001\000\004\252\001\000\004\248\001\000\004\244\001\000\005\b\002\000\005\004\002\000\005\000\002\000\004\252\002\000\012|\001\000\012x\001\000\005\b\003\000\005\004\003\000\005\b\004\000\005\004\004\000\005\b\005\000\005\004\005\000\002\024\001\000\000d\001\000\000d\002\000\005\b\006\000\005\000\003\000\004\252\003\000\002\024\001\000\005\000\004\000\004\248\002\000\005D\003\000\005D\004\000\005D\005\000\005@\003\000\005@\004\000\005H\002\000\0050\001\000\005,\001\000\005(\001\000\005,\002\000\005(\002\000\005,\003\000\005,\004\000\n<\001\000\006l\001\000\002\156\001\000\002\152\001\000\002\148\001\000\002\144\001\000\002\156\002\000\002\152\002\000\002\156\003\000\002\156\004\000\002\156\005\000\b0\001\000\b0\002\000\004X\001\000\004T\001\000\004T\002\000\004X\002\000\004X\003\000\bt\001\000\bh\001\000\bt\002\000\bt\003\000\b`\001\000\b`\002\000\012\\\001\000\004\\\001\000\012\\\002\000\b`\003\000\b`\004\000\bp\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b`\005\000\b\132\002\000\b|\002\000\019\220\001\000\019\216\001\000\019\220\002\000\019\216\002\000\019\220\003\000\019\216\003\000\019\244\001\000\019\240\001\000\019\244\002\000\019\220\004\000\019\220\005\000\000P\001\000\000L\001\000\000H\001\000\019\216\004\000\019\216\005\000\000P\001\000\000L\001\000\000H\001\000\019\216\006\000\012D\001\000\012D\002\000\012D\003\000\002\024\001\000\012D\004\000\012D\005\000\002\024\001\000\0194\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\236\002\000\019\232\002\000\019\236\003\000\019\232\003\000\019\232\004\000\019\232\005\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\bx\002\000\b\132\001\000\b|\001\000\bx\003\000\bx\001\000\bl\001\000\bl\002\000\b\016\001\000\007\224\001\000\007\192\001\000\007\224\002\000\007\192\002\000\007\192\003\000\004\144\001\000\007\224\003\000\b\144\001\000\007\220\001\000\b\128\001\000\019\236\004\000\019\236\005\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\019\228\002\000\019\224\002\000\b\000\001\000\019\224\003\000\019\224\004\000\b\016\001\000\007\192\001\000\b\000\002\000\019\228\003\000\019\228\004\000\b\016\001\000\007\192\001\000\012\156\001\000\012\160\001\000\b|\003\000\012\160\002\000\012\160\003\000\b\132\003\000\b\016\001\000\007\192\001\000\012X\001\000\b\132\001\000\b|\001\000\bx\001\000\bt\004\000\bl\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\bh\002\000\bh\003\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\004X\004\000\004X\005\000\b0\003\000\b0\004\000\b4\001\000\bD\001\000\b@\001\000\b8\001\000\b0\005\000\n|\001\000\nx\001\000\nt\001\000\np\001\000\nl\001\000\nh\001\000\nd\001\000\n`\001\000\n\\\001\000\nX\001\000\bD\002\000\bD\003\000\n\\\002\000\nX\002\000\bD\001\000\b@\001\000\b8\001\000\n\\\003\000\nX\003\000\nX\004\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nX\005\000\b@\002\000\b8\002\000\b<\001\000\b\000\001\000\bH\001\000\bD\001\000\b@\001\000\b8\001\000\002\156\006\000\002\156\007\000\014\248\001\000\014\244\001\000\014\160\001\000\014\156\001\000\014\240\001\000\014\236\001\000\014\172\001\000\001\200\001\000\014l\001\000\014h\001\000\r<\001\000\r8\001\000\r4\001\000\n$\001\000\n \001\000\014\148\001\000\019\132\001\000\007\244\001\000\014\212\001\000\002\204\001\000\002\204\002\000\002\204\003\000\014\b\001\000\014\004\001\000\014\000\001\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\014@\001\000\014<\001\000\014@\002\000\014<\002\000\014@\003\000\014<\003\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\002\188\002\000\002\184\002\000\002\180\002\000\002\176\002\000\002\172\002\000\002\168\002\000\002\188\003\000\002\184\003\000\002\180\003\000\002\176\003\000\002\172\003\000\002\168\003\000\r\\\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\r\\\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\r\\\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\132\001\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\007x\001\000\007t\001\000\007p\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\007t\002\000\002\224\001\000\002\224\002\000\002\224\003\000\005<\001\000\0058\001\000\0054\001\000\011\004\001\000\0058\002\000\0054\002\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\006\152\001\000\001\236\001\000\001\204\001\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\006\180\001\000\001\236\001\000\001\204\001\000\015H\002\000\015\012\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\015H\003\000\006\176\002\000\006\172\002\000\012|\001\000\012x\001\000\006\176\003\000\006\176\004\000\006\176\005\000\002\024\001\000\006\176\006\000\015H\004\000\006\172\003\000\002\024\001\000\006\172\004\000\006\168\002\000\006\180\002\000\006\180\003\000\006\152\002\000\006\152\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\148\001\000\006\144\001\000\006\140\001\000\006\136\001\000\006\132\001\000\006\128\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\006\148\002\000\006\144\002\000\006\140\002\000\006\136\002\000\012|\001\000\012x\001\000\006\148\003\000\006\144\003\000\006\148\004\000\006\144\004\000\006\148\005\000\006\144\005\000\002\024\001\000\006\148\006\000\006\140\003\000\006\136\003\000\002\024\001\000\006\140\004\000\006\132\002\000\0058\003\000\0058\004\000\0058\005\000\0058\006\000\0054\003\000\0054\004\000\0054\005\000\011\000\001\000\005<\002\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\005t\001\000\005h\001\000\005d\001\000\005`\001\000\0040\001\000\004,\001\000\001\236\001\000\001\204\001\000\0040\002\000\004,\002\000\b\196\001\000\b\196\002\000\b\196\003\000\b\196\004\000\b\196\005\000\b\192\001\000\0040\003\000\0040\004\000\0040\005\000\0040\006\000\b\200\001\000\004,\003\000\004,\004\000\t\000\001\000\b\252\001\000\b\192\001\000\t\000\002\000\015H\002\000\015\012\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\005t\002\000\015H\003\000\006\176\002\000\006\172\002\000\005t\003\000\012|\001\000\012x\001\000\006\176\003\000\005t\004\000\006\176\004\000\005t\005\000\006\176\005\000\005t\006\000\002\024\001\000\005t\007\000\005h\002\000\005`\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\006\156\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\006\176\002\000\006\172\002\000\006\164\002\000\006\160\002\000\012|\001\000\012x\001\000\006\176\003\000\006\164\003\000\006\176\004\000\006\164\004\000\006\176\005\000\006\164\005\000\002\024\001\000\006\172\003\000\006\160\003\000\002\024\001\000\005h\003\000\005h\004\000\005`\003\000\005`\004\000\005d\002\000\005d\003\000\005p\001\000\005l\001\000\005X\001\000\005T\001\000\005P\001\000\005L\001\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\005p\002\000\005l\002\000\005X\002\000\005T\002\000\005P\002\000\001\236\001\000\001\204\001\000\015H\002\000\015\012\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\005l\003\000\015H\003\000\006\176\002\000\006\172\002\000\005l\004\000\012|\001\000\012x\001\000\006\176\003\000\005l\005\000\006\176\004\000\005l\006\000\006\176\005\000\005l\007\000\002\024\001\000\005l\b\000\005p\003\000\005X\003\000\005T\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\005p\004\000\005X\004\000\005X\005\000\006\176\002\000\006\172\002\000\005p\005\000\012|\001\000\012x\001\000\006\176\003\000\005p\006\000\006\176\004\000\005p\007\000\006\176\005\000\005p\b\000\002\024\001\000\005p\t\000\006\172\003\000\002\024\001\000\005T\004\000\005T\005\000\005P\003\000\005P\004\000\005L\002\000\005\\\001\000\012L\001\000\0048\001\000\0044\001\000\012L\002\000\002\224\004\000\n\016\001\000\n\016\002\000\000\136\001\000\000|\001\000\000p\001\000\002\224\005\000\002\224\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\132\001\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\132\002\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\132\003\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\132\004\000\011\208\005\000\011\204\005\000\011\200\005\000\011\196\005\000\011\192\005\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\208\006\000\011\204\006\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\208\007\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\208\b\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\208\t\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\208\n\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\204\007\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\011\200\006\000\014d\001\000\001\192\001\000\014T\001\000\b\004\001\000\001\196\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\014d\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\014\128\002\000\014\128\003\000\014\132\002\000\014\132\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\014|\002\000\014|\003\000\0144\002\000\014,\002\000\014$\002\000\014$\003\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\r0\005\000\r(\005\000\002\196\001\000\002\196\002\000\002\196\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\002\196\004\000\002\196\005\000\004(\001\000\002\200\001\000\002\200\002\000\002\200\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\200\004\000\014p\002\000\0148\002\000\0140\002\000\014(\002\000\014 \002\000\014\028\002\000\014\024\002\000\014\024\003\000\002\212\001\000\002\208\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\212\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\212\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\212\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\212\005\000\012\136\002\000\012\136\003\000\012\128\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\002\228\001\000\002\140\001\000\005\028\001\000\005\024\001\000\005\028\002\000\005\028\003\000\005\028\004\000\005\028\005\000\005\024\002\000\005 \001\000\005 \002\000\005$\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\005$\002\000\014\\\001\000\014\228\001\000\014\224\001\000\014\208\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\168\001\000\014\164\001\000\014\152\001\000\014\144\001\000\014x\001\000\014t\001\000\b\b\001\000\b\000\001\000\001\232\001\000\001\228\001\000\014\228\002\000\014\224\002\000\014\208\002\000\014\204\002\000\014\200\002\000\014\196\002\000\014\192\002\000\014\188\002\000\014\184\002\000\014\180\002\000\014\176\002\000\014\168\002\000\014\164\002\000\014\152\002\000\014\144\002\000\014x\002\000\014t\002\000\b\b\002\000\b\000\002\000\001\232\002\000\019\128\001\000\014\208\003\000\014\144\003\000\014t\003\000\001\232\003\000\014\144\004\000\t\172\001\000\000@\001\000\t\168\001\000\000<\001\000\014\208\004\000\014\208\005\000\014\208\006\000\014\208\007\000\bD\001\000\b@\001\000\b8\001\000\014\208\b\000\014\208\t\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\014\208\n\000\018\180\001\000\t\184\001\000\018\176\001\000\t\180\001\000\t`\001\000\003\180\001\000\n\212\001\000\006\192\001\000\006\192\002\000\006\192\003\000\002\024\001\000\006\192\004\000\006\192\005\000\011\168\001\000\011\164\001\000\011\160\001\000\011\156\001\000\011\152\001\000\002\236\001\000\011\168\002\000\011\164\002\000\011\160\002\000\011\156\002\000\011\152\002\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\168\003\000\011\164\003\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\168\004\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\168\005\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\168\006\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\168\007\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\164\004\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\011\160\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\160\004\000\011\228\003\000\011\224\003\000\011\220\003\000\011\216\003\000\011\212\003\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\228\004\000\011\224\004\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\228\005\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\228\006\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\228\007\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\228\b\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\224\005\000\011\228\001\000\011\224\001\000\011\220\004\000\011\220\001\000\011\216\001\000\011\212\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\005\000\011\220\002\000\011\216\002\000\011\212\002\000\019\140\001\000\014\136\001\000\014X\001\000\014\232\001\000\011\216\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\216\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\216\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\136\001\000\011\216\007\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\\\001\000\002\244\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\244\002\000\006p\001\000\003\176\001\000\003\176\002\000\003\176\003\000\rX\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003d\002\000\003`\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003d\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003d\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003d\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003d\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\003\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003L\002\000\003H\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003L\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003L\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003L\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003L\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\003\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003D\002\000\003@\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003D\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003D\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003D\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003D\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\003\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003<\002\000\0038\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003<\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003<\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003<\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003<\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\003\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003l\002\000\003h\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003l\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003l\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003l\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003l\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\003\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\140\002\000\003\136\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\140\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\140\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\140\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\140\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\003\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003,\002\000\003(\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003,\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003,\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003,\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003,\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\003\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\\\002\000\003X\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\\\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\\\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\\\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\\\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\003\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003T\002\000\003P\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003T\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003T\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003T\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003T\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\003\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003|\002\000\003x\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003|\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003|\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003|\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003|\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\003\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0034\002\000\0030\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\0034\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\0034\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\0034\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\0034\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\003\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003$\002\000\003 \002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003$\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003$\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003$\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003$\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \003\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\028\002\000\003\024\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\028\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\028\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\028\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\028\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\003\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\020\002\000\003\016\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\020\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\020\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\020\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\020\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\003\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\252\002\000\002\248\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\252\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\252\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\252\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\252\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\003\000\002\248\001\000\003\132\002\000\003\128\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\132\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\132\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\132\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\132\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\003\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003t\002\000\003p\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003t\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003t\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003t\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003t\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\003\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\011\188\002\000\011\184\002\000\011\180\002\000\011\176\002\000\011\172\002\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\188\003\000\011\184\003\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\188\004\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\188\005\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\188\006\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\188\007\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\184\004\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\011\180\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\180\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\176\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\176\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\011\176\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\011\176\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\003\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\172\002\000\003\168\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\172\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\172\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\172\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\172\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\003\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\188\002\000\003\184\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\188\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\188\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\188\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\188\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\003\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\148\002\000\003\144\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\148\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\148\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\148\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\148\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\003\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\012\002\000\003\b\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\012\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\012\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\012\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\012\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\003\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\004\002\000\003\000\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\004\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\004\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\004\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\004\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\003\000\003\000\001\000\002\252\001\000\002\248\001\000\003\156\002\000\003\152\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\156\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\156\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\156\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\156\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\003\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\164\002\000\003\160\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\164\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\164\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\164\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\164\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\003\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\004\024\002\000\014X\001\000\002\240\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\240\002\000\002\220\001\000\002\216\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\220\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\220\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\220\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\220\005\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\216\002\000\004H\002\000\004D\002\000\004@\002\000\004H\003\000\004H\004\000\004H\005\000\004D\003\000\000T\001\000\000T\002\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\006h\001\000\001\236\001\000\001\204\001\000\015\004\001\000\006h\002\000\006h\003\000\006h\004\000\016(\001\000\016(\002\000\006h\005\000\016,\001\000\nD\001\000\016,\002\000\016,\003\000\002\136\001\000\016,\004\000\012H\001\000\015\004\001\000\006P\001\000\006L\001\000\006@\001\000\006<\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\019\020\001\000\019\016\001\000\006P\002\000\006L\002\000\006@\002\000\006<\002\000\006P\003\000\006L\003\000\006P\004\000\006L\004\000\006P\005\000\006L\005\000\006P\006\000\006L\006\000\002\024\001\000\006L\007\000\006L\b\000\006P\007\000\006P\b\000\006P\t\000\012|\001\000\012x\001\000\006@\003\000\006<\003\000\006@\004\000\006<\004\000\006@\005\000\006<\005\000\002\024\001\000\006<\006\000\006<\007\000\006@\006\000\006@\007\000\006@\b\000\006(\002\000\006$\002\000\006$\003\000\006$\004\000\006(\003\000\006(\004\000\006(\005\000\006 \002\000\006,\002\000\006,\003\000\006,\004\000\015\b\001\000\006`\001\000\006\\\001\000\006X\001\000\006`\002\000\006\\\002\000\006`\003\000\006\\\003\000\002\024\001\000\006\\\004\000\006\\\005\000\006`\004\000\006`\005\000\006`\006\000\006X\002\000\006X\003\000\006X\004\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\006T\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\006T\002\000\006T\003\000\006d\001\000\006H\001\000\006D\001\000\0068\001\000\0064\001\000\0060\001\000\006d\002\000\006H\002\000\006D\002\000\0068\002\000\0064\002\000\0060\002\000\019\020\001\000\019\016\001\000\006H\003\000\006D\003\000\012|\001\000\012x\001\000\006H\004\000\006D\004\000\006H\005\000\006D\005\000\006H\006\000\006D\006\000\002\024\001\000\006D\007\000\006D\b\000\006H\007\000\006H\b\000\006H\t\000\0064\003\000\0060\003\000\0060\004\000\0060\005\000\0064\004\000\0064\005\000\0064\006\000\006d\003\000\0068\003\000\0068\004\000\0068\005\000\006\024\001\000\000T\003\000\007\020\001\000\007\020\002\000\000T\004\000\006p\002\000\011\212\004\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\156\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\156\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\011\156\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\011\156\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\011\152\003\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\006\196\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\006\196\002\000\006\196\003\000\006\204\001\000\003\180\002\000\003\180\003\000\003\180\004\000\006\204\002\000\006\204\003\000\006\200\001\000\014d\001\000\t\132\001\000\014t\004\000\014t\005\000\014\228\003\000\014\224\003\000\014\196\003\000\014\192\003\000\014\196\004\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\196\005\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\196\006\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\196\007\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\136\001\000\001\132\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\136\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\136\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\136\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\136\005\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\132\002\000\001\128\001\000\012\152\001\000\001\128\002\000\012\152\002\000\001\164\001\000\001\160\001\000\001\156\001\000\001\152\001\000\001\148\001\000\001\144\001\000\001\140\001\000\001\156\002\000\001\152\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\156\003\000\001\152\003\000\001\156\004\000\001\152\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\156\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\156\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\156\007\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\156\b\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\152\005\000\001\164\002\000\001\160\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\164\003\000\001\160\003\000\001\164\004\000\001\160\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\164\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\164\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\164\007\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\164\b\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\160\005\000\001\148\002\000\001\144\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\148\003\000\001\144\003\000\001\148\004\000\001\144\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\148\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\148\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\148\007\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\148\b\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\144\005\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\140\002\000\001\188\001\000\001\184\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\188\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\188\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\188\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\188\005\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\184\002\000\001\180\001\000\001\176\001\000\001\172\001\000\001\168\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\180\002\000\001\176\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\180\003\000\001\176\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\180\004\000\001\176\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\180\005\000\001\176\005\000\002T\001\000\002X\001\000\001\180\006\000\001\176\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\180\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\180\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\180\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\180\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\176\007\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\172\002\000\001\168\002\000\001\172\003\000\001\168\003\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\172\004\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\172\005\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\172\006\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\172\007\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\168\004\000\001\140\003\000\012\152\003\000\012\148\001\000\014\196\b\000\012T\001\000\014\196\t\000\012T\002\000\012P\001\000\014\228\004\000\014\224\004\000\014\224\005\000\014\192\004\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\r,\002\000\r \002\000\r,\003\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\192\005\000\012T\001\000\014\192\006\000\014\188\003\000\014\184\003\000\014\168\003\000\014\164\003\000\014\188\004\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\188\005\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\188\006\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\188\007\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\188\b\000\012T\001\000\014\188\t\000\014\168\004\000\014\164\004\000\014\164\005\000\014\184\004\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\184\005\000\012T\001\000\014\184\006\000\014\204\003\000\014\200\003\000\014\180\003\000\014\176\003\000\014\204\004\000\014\180\004\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\180\005\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\180\006\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\180\007\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\180\b\000\012T\001\000\014\180\t\000\014\200\004\000\014\200\005\000\014\176\004\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\176\005\000\012T\001\000\014\176\006\000\014x\003\000\014x\004\000\014x\005\000\014\152\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\\\001\000\011\\\002\000\011\\\003\000\rT\001\000\rP\001\000\rL\001\000\rT\002\000\rP\002\000\rL\002\000\rT\003\000\rP\003\000\rL\003\000\rT\004\000\rP\004\000\rT\005\000\011X\001\000\014\152\004\000\014\152\005\000\014\228\001\000\014\224\001\000\014\208\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\168\001\000\014\164\001\000\014\152\001\000\014\144\001\000\014x\001\000\014t\001\000\b\b\001\000\b\000\001\000\007\248\001\000\001\232\001\000\001\228\001\000\014\228\002\000\014\224\002\000\014\208\002\000\014\204\002\000\014\200\002\000\014\196\002\000\014\192\002\000\014\188\002\000\014\184\002\000\014\180\002\000\014\176\002\000\014\168\002\000\014\164\002\000\014\152\002\000\014\144\002\000\014x\002\000\014t\002\000\b\b\002\000\b\000\002\000\007\248\002\000\001\232\002\000\019\132\001\000\007\248\003\000\b\b\003\000\005\020\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\005\020\002\000\0144\002\000\014,\002\000\014$\002\000\004\012\002\000\004\b\002\000\003\252\002\000\003\248\002\000\003\236\002\000\003\232\002\000\014$\003\000\003\236\003\000\003\232\003\000\014$\004\000\003\236\004\000\003\232\004\000\014$\005\000\003\236\005\000\003\232\005\000\003\236\006\000\003\232\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\236\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\236\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\236\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\236\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\232\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0144\003\000\004\012\003\000\004\b\003\000\0144\004\000\004\012\004\000\004\b\004\000\0144\005\000\004\012\005\000\004\b\005\000\004\012\006\000\004\b\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\004\012\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\004\012\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\004\012\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\004\012\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\004\b\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014,\003\000\003\252\003\000\003\248\003\000\014,\004\000\003\252\004\000\003\248\004\000\014,\005\000\003\252\005\000\003\248\005\000\003\252\006\000\003\248\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\252\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\252\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\252\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\252\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\248\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014p\002\000\0148\002\000\0140\002\000\014(\002\000\014 \002\000\014\028\002\000\014\024\002\000\004\020\002\000\004\016\002\000\004\004\002\000\004\000\002\000\003\244\002\000\003\240\002\000\003\228\002\000\003\224\002\000\003\220\002\000\003\216\002\000\003\212\002\000\003\208\002\000\003\204\002\000\003\200\002\000\014\024\003\000\003\212\003\000\003\208\003\000\014\024\004\000\003\212\004\000\003\208\004\000\014\024\005\000\003\212\005\000\003\208\005\000\003\212\006\000\003\208\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\212\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\212\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\212\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\212\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\208\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014 \003\000\003\228\003\000\003\224\003\000\014 \004\000\003\228\004\000\003\224\004\000\014 \005\000\003\228\005\000\003\224\005\000\003\228\006\000\003\224\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\228\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\228\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\228\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\228\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\224\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\028\003\000\003\220\003\000\003\216\003\000\014\028\004\000\003\220\004\000\003\216\004\000\014\028\005\000\003\220\005\000\003\216\005\000\003\220\006\000\003\216\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\220\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\220\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\220\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\220\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\216\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0148\003\000\0140\003\000\014(\003\000\b\000\001\000\007\248\001\000\004\020\003\000\004\016\003\000\004\004\003\000\004\000\003\000\003\244\003\000\003\240\003\000\0148\004\000\0140\004\000\014(\004\000\004\020\004\000\004\016\004\000\004\004\004\000\004\000\004\000\003\244\004\000\003\240\004\000\014(\005\000\003\244\005\000\003\240\005\000\014(\006\000\003\244\006\000\003\240\006\000\014(\007\000\003\244\007\000\003\240\007\000\003\244\b\000\003\240\b\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\244\t\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\244\n\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\244\011\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\244\012\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\240\t\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0148\005\000\004\020\005\000\004\016\005\000\0148\006\000\004\020\006\000\004\016\006\000\0148\007\000\004\020\007\000\004\016\007\000\004\020\b\000\004\016\b\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\004\020\t\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\004\020\n\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\004\020\011\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\004\020\012\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\004\016\t\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0140\005\000\004\004\005\000\004\000\005\000\0140\006\000\004\004\006\000\004\000\006\000\0140\007\000\004\004\007\000\004\000\007\000\004\004\b\000\004\000\b\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\004\004\t\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\004\004\n\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\004\004\011\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\004\004\012\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\004\000\t\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014p\003\000\003\204\003\000\003\200\003\000\003\204\004\000\003\200\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\204\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\204\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\204\007\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\204\b\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\200\005\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\005\016\001\000\012d\001\000\002\228\002\000\012d\002\000\012`\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\208\002\000\014\024\004\000\014\024\005\000\014 \003\000\014 \004\000\014 \005\000\014\028\003\000\014\028\004\000\014\028\005\000\0148\003\000\0140\003\000\014(\003\000\b\000\001\000\007\248\001\000\0148\004\000\0140\004\000\014(\004\000\014(\005\000\014(\006\000\014(\007\000\0148\005\000\0148\006\000\0148\007\000\0140\005\000\0140\006\000\0140\007\000\014p\003\000\004(\002\000\002\196\006\000\002\196\007\000\002\196\b\000\002\196\t\000\002\196\n\000\002\196\011\000\r0\006\000\014$\004\000\014$\005\000\0144\003\000\0144\004\000\0144\005\000\014,\003\000\014,\004\000\014,\005\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\200\007\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\006\000\011\196\001\000\011\192\001\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\007\000\011\196\002\000\011\192\002\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\b\000\011\196\003\000\011\192\003\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\t\000\011\196\004\000\011\192\004\000\011\192\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\224\007\000\007t\003\000\007t\004\000\007t\005\000\007x\002\000\007p\002\000\007x\003\000\007p\003\000\012\132\002\000\r\\\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\188\004\000\002\184\004\000\002\180\004\000\002\176\004\000\002\172\004\000\002\168\004\000\002\188\005\000\002\184\005\000\002\180\005\000\002\176\005\000\002\172\005\000\002\168\005\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\188\006\000\002\180\006\000\002\176\006\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\188\007\000\002\180\007\000\002\176\007\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\188\b\000\002\180\b\000\002\176\b\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\188\t\000\002\180\t\000\002\176\t\000\002\180\n\000\002\176\n\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\180\011\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\180\012\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\180\r\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\180\014\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\176\011\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\184\006\000\002\172\006\000\002\168\006\000\002\172\007\000\002\168\007\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\172\b\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\172\t\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\172\n\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\172\011\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\168\b\000\014@\004\000\014<\004\000\014<\005\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\014\004\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\004\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\004\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\004\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\004\006\000\014\000\002\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\000\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\014\b\002\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\204\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\212\002\000\011\168\001\000\011\164\001\000\011\160\001\000\011\156\001\000\011\152\001\000\002\236\001\000\014\212\003\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\148\002\000\014\148\003\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\n$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\n$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\n$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\n$\005\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\n \002\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\r<\002\000\r8\002\000\r4\002\000\r<\003\000\r8\003\000\r<\004\000\014l\002\000\014h\002\000\014h\003\000\014\240\002\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\240\003\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\240\004\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\240\005\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\240\006\000\012T\001\000\014\240\007\000\014\172\002\000\014\172\003\000\014\236\002\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\236\003\000\012T\001\000\014\236\004\000\014\248\002\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\248\003\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\248\004\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\248\005\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\248\006\000\012T\001\000\014\248\007\000\014\160\002\000\014\156\002\000\014\156\003\000\014\244\002\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\244\003\000\012T\001\000\014\244\004\000\002\156\b\000\002\152\003\000\002\152\004\000\bD\001\000\b@\001\000\b8\001\000\002\152\005\000\002\152\006\000\002\152\007\000\002\144\002\000\002\144\003\000\002\144\004\000\002\144\005\000\b\024\001\000\bD\001\000\b@\001\000\b8\001\000\b\024\002\000\b\028\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b\028\002\000\b\028\003\000\bD\001\000\b@\001\000\b8\001\000\b\028\004\000\002\144\006\000\002\144\007\000\002\144\b\000\b \001\000\b \002\000\002\148\002\000\002\148\003\000\002\148\004\000\001\216\001\000\001\220\001\000\001\204\001\000\001\220\002\000\001\220\003\000\001\200\001\000\002\148\005\000\004d\001\000\002\b\001\000\b\160\001\000\b\164\001\000\004\228\001\000\004\224\001\000\004\228\002\000\004\224\002\000\004\228\003\000\004\224\003\000\012|\001\000\012x\001\000\011(\001\000\011(\002\000\011(\003\000\000P\001\000\000L\001\000\000H\001\000\004\228\004\000\004\224\004\000\nL\001\000\b\216\001\000\b\212\001\000\b\216\002\000\nL\002\000\004\228\005\000\004\224\005\000\004\228\006\000\004\224\006\000\004\228\007\000\004\228\b\000\011$\001\000\000P\001\000\000L\001\000\000H\001\000\002\b\002\000\002\b\003\000\004\240\001\000\004\236\001\000\004\240\002\000\004\232\001\000\012\200\001\000\001\252\001\000\012\200\002\000\001\252\002\000\000\136\001\000\000|\001\000\000p\001\000\012\200\003\000\001\252\003\000\012\208\001\000\012\204\001\000\002\004\001\000\002\000\001\000\012\208\002\000\012\204\002\000\002\004\002\000\002\000\002\000\012\208\003\000\002\004\003\000\012\208\004\000\002\004\004\000\000\136\001\000\000|\001\000\000p\001\000\012\208\005\000\002\004\005\000\012\204\003\000\002\000\003\000\000\136\001\000\000|\001\000\000p\001\000\012\204\004\000\002\000\004\000\004d\002\000\012\196\001\000\001\248\001\000\000\136\001\000\000|\001\000\000p\001\000\012\196\002\000\001\248\002\000\004t\001\000\004p\001\000\004l\001\000\004h\001\000\012t\001\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\r\004\001\000\r\000\001\000\012\252\001\000\012t\002\000\000\156\002\000\000\148\001\000\r\004\002\000\r\000\002\000\012\252\002\000\012t\003\000\000\156\003\000\000\148\002\000\r\004\003\000\r\000\003\000\012\252\003\000\012t\004\000\000\156\004\000\r\004\004\000\r\000\004\000\012\252\004\000\012t\005\000\000\156\005\000\012t\006\000\000\156\006\000\r\004\005\000\r\000\005\000\012\252\005\000\r\004\006\000\000\152\001\000\r\004\007\000\r\004\b\000\r\000\006\000\000\148\001\000\r\000\007\000\000\148\002\000\r\000\b\000\r\000\t\000\012\252\006\000\002\024\001\000\012|\001\000\012x\001\000\004t\002\000\004l\002\000\004t\003\000\004l\003\000\004l\004\000\004l\005\000\004l\006\000\000\136\001\000\000|\001\000\000p\001\000\012\196\001\000\004t\004\000\001\248\001\000\000\136\001\000\000|\001\000\000p\001\000\004h\002\000\004h\003\000\004h\004\000\000\136\001\000\000|\001\000\000p\001\000\012\196\001\000\004p\002\000\001\248\001\000\000\136\001\000\000|\001\000\000p\001\000\002\148\006\000\002\148\007\000\002\148\b\000\002\148\t\000\001\224\001\000\006l\002\000\006l\003\000\011T\001\000\006l\004\000\006l\005\000\006l\006\000\n<\002\000\005,\005\000\005,\006\000\005(\003\000\005(\004\000\005(\005\000\0050\002\000\006\184\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\196\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\196\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\196\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\196\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\192\003\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\004\028\002\000\015\000\002\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\015\000\003\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\015\000\004\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\015\000\005\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\015\000\006\000\012T\001\000\015\000\007\000\014\220\002\000\014\216\002\000\014\216\003\000\014\252\002\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\252\003\000\012T\001\000\014\252\004\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\014`\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\014L\002\000\014H\002\000\014L\003\000\014H\003\000\014L\004\000\014H\004\000\014L\005\000\014H\005\000\bD\001\000\b@\001\000\b8\001\000\014H\006\000\014L\006\000\014L\007\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\014L\b\000\014\020\002\000\014\016\002\000\014\012\002\000\014\012\003\000\014\020\003\000\014\016\003\000\014\016\004\000\014\020\004\000\014\020\005\000\002\160\004\000\002\160\005\000\012\136\001\000\002\160\006\000\004$\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\n|\004\000\nt\004\000\nl\004\000\nd\004\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\n|\005\000\nt\005\000\nl\005\000\nd\005\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\n|\006\000\nt\006\000\nl\006\000\nd\006\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\n|\007\000\nt\007\000\nl\007\000\nd\007\000\nd\b\000\n|\b\000\n|\t\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\n|\n\000\nt\b\000\nl\b\000\nt\t\000\nl\t\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nl\n\000\nt\n\000\nt\011\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nt\012\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\nx\004\000\np\004\000\nh\004\000\n`\004\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\n`\005\000\nx\005\000\nx\006\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nx\007\000\np\005\000\nh\005\000\np\006\000\nh\006\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nh\007\000\np\007\000\np\b\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\np\t\000\tP\005\000\bD\001\000\b@\001\000\b8\001\000\tP\006\000\tL\002\000\tL\003\000\tL\004\000\bD\001\000\b@\001\000\b8\001\000\tL\005\000\018\148\001\000\018\144\001\000\b\136\001\000\b\136\002\000\b\136\003\000\b\136\004\000\b\136\005\000\n,\001\000\n,\002\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b\136\006\000\b\136\007\000\018\148\002\000\018\144\002\000\018\148\003\000\018\144\003\000\018\148\004\000\018\148\005\000\018\148\006\000\018\148\007\000\006\236\001\000\006\236\002\000\006\236\003\000\006\236\004\000\006\236\005\000\006\236\006\000\018\148\b\000\018\144\004\000\018\144\005\000\018\144\006\000\004\176\001\000\004\176\002\000\011\024\001\000\011\020\001\000\012\024\001\000\011\024\002\000\011\020\002\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\011\024\003\000\011\024\004\000\002x\001\000\002x\002\000\004\220\001\000\004\220\002\000\004\220\003\000\004\220\004\000\004\160\001\000\004\156\001\000\004\160\002\000\0110\001\000\0110\002\000\0110\003\000\0110\004\000\0110\005\000\012|\001\000\012x\001\000\011 \001\000\011 \002\000\011 \003\000\002\024\001\000\0110\006\000\0110\007\000\0110\b\000\t\b\001\000\t\004\001\000\t\b\002\000\0110\t\000\0110\n\000\011\028\001\000\002\024\001\000\016$\001\000\r`\001\000\016$\002\000\r`\002\000\016$\003\000\r`\003\000\016$\004\000\r`\004\000\016$\005\000\001\236\001\000\001\204\001\000\b\000\001\000\001\232\001\000\001\228\001\000\b\000\002\000\001\232\002\000\001\232\003\000\016$\006\000\016$\007\000\016$\b\000\r`\005\000\r`\006\000\r`\007\000\011\016\001\000\011\012\001\000\007\028\001\000\tX\001\000\tT\001\000\tX\002\000\tX\003\000\tX\004\000\tX\005\000\b\016\001\000\007\192\001\000\tX\006\000\tT\002\000\tT\003\000\tT\004\000\b\016\001\000\007\192\001\000\tT\005\000\r\152\001\000\r\144\001\000\r\140\001\000\b\140\001\000\b\136\001\000\bX\001\000\b\140\002\000\b\136\002\000\b\140\003\000\b\136\003\000\b\140\004\000\b\136\004\000\b\140\005\000\b\136\005\000\b\140\006\000\b\140\007\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b\140\b\000\r\152\002\000\r\144\002\000\r\140\002\000\bX\002\000\r\152\003\000\r\144\003\000\r\140\003\000\bX\003\000\bX\004\000\bP\001\000\bX\005\000\bX\006\000\b\016\001\000\007\192\001\000\bX\007\000\r\152\004\000\r\152\005\000\r\152\006\000\r\152\007\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\r\152\b\000\006\244\001\000\006\244\002\000\006\244\003\000\006\244\004\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\006\244\005\000\006\244\006\000\006\244\007\000\r\152\t\000\r\144\004\000\r\140\004\000\r\144\005\000\r\144\006\000\b\000\001\000\r\144\007\000\b$\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b$\002\000\r\140\005\000\r\140\006\000\b(\001\000\b(\002\000\r`\001\000\r`\002\000\r`\003\000\r`\004\000\r\168\001\000\001x\001\000\001x\002\000\001x\003\000\001x\004\000\019\188\001\000\001x\005\000\002\128\001\000\012\188\001\000\012\192\001\000\002\128\002\000\002\128\003\000\012\192\002\000\012\192\003\000\001x\006\000\001x\007\000\001x\b\000\001D\001\000\001D\002\000\001\024\001\000\002\024\001\000\001\024\002\000\001\024\003\000\001D\003\000\001$\001\000\001$\002\000\b\184\001\000\b\176\001\000\b\184\002\000\b\180\001\000\b\172\001\000\b\180\002\000\001$\003\000\001$\004\000\001$\005\000\002\024\001\000\001$\006\000\001$\007\000\001(\001\000\001(\002\000\011L\001\000\011D\001\000\011L\002\000\011H\001\000\011@\001\000\011H\002\000\001(\003\000\001(\004\000\001(\005\000\001(\006\000\001(\007\000\001 \001\000\001 \002\000\001P\001\000\001L\001\000\001P\002\000\001L\002\000\001P\003\000\001P\004\000\b\000\001\000\001P\005\000\001P\006\000\001<\001\000\012\176\001\000\001<\002\000\001<\003\000\001<\004\000\012\176\002\000\012\176\003\000\002\024\001\000\012\172\001\000\002\024\001\000\001@\001\000\0018\001\000\001P\007\000\001H\001\000\001H\002\000\001L\003\000\b\000\001\000\001L\004\000\001L\005\000\001L\006\000\001H\001\000\001H\001\000\001 \003\000\001 \004\000\001,\001\000\001,\002\000\002\024\001\000\001\244\001\000\001\244\002\000\002\024\001\000\001\244\003\000\001,\003\000\001,\004\000\001D\004\000\001D\005\000\0010\001\000\0010\002\000\0014\001\000\0078\001\000\0078\002\000\001x\t\000\001H\001\000\001x\n\000\006\228\001\000\006\228\002\000\006\228\003\000\006\228\004\000\006\228\005\000\006\228\006\000\006\228\007\000\001H\001\000\006\228\b\000\006\228\t\000\001x\011\000\r\168\002\000\r\168\003\000\r\168\004\000\r\168\005\000\r\168\006\000\r\168\007\000\019@\001\000\019<\001\000\007\180\001\000\001p\001\000\001p\002\000\001p\003\000\001p\004\000\0028\001\000\0024\001\000\0020\001\000\001<\001\000\r\024\001\000\012\172\001\000\002\024\001\000\001t\001\000\001t\002\000\001l\001\000\001l\002\000\001l\003\000\b\016\001\000\007\240\001\000\007\232\001\000\007\192\001\000\007\184\001\000\000\144\001\000\007\240\002\000\007\232\002\000\007\192\002\000\007\184\002\000\000\144\002\000\019@\001\000\019<\001\000\007\184\003\000\002t\001\000\001@\001\000\001l\004\000\001h\001\000\001H\001\000\001t\003\000\001p\005\000\r\168\b\000\r\168\t\000\006\220\001\000\006\220\002\000\006\220\003\000\006\220\004\000\006\220\005\000\006\220\006\000\006\220\007\000\006\220\b\000\006\220\t\000\r\168\n\000\rp\001\000\007 \001\000\r\136\001\000\rt\001\000\r\164\001\000\r\160\001\000\r\156\001\000\r\148\001\000\007 \002\000\r\180\001\000\rh\001\000\rh\002\000\r\176\001\000\r\176\002\000\r\176\003\000\r\176\004\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\r\176\005\000\r\176\006\000\rx\001\000\007\004\001\000\007\004\002\000\007\004\003\000\007\004\004\000\007\004\005\000\007\004\006\000\012D\001\000\007\004\007\000\007\004\b\000\007\004\t\000\n\000\001\000\rx\002\000\r|\001\000\007\012\001\000\007\012\002\000\007\012\003\000\007\012\004\000\007\012\005\000\007\012\006\000\0028\001\000\0024\001\000\0020\001\000\001\200\001\000\t4\001\000\t4\002\000\t4\003\000\t$\001\000\004x\001\000\002\012\001\000\004x\002\000\004x\003\000\004x\004\000\011p\001\000\002\016\001\000\004x\001\000\011p\002\000\007\012\007\000\012D\001\000\007\012\b\000\007\012\t\000\007\012\n\000\011h\001\000\011l\001\000\t@\001\000\t<\001\000\t0\001\000\t,\001\000\t \001\000\t\028\001\000\t\012\001\000\002\024\001\000\t@\002\000\t<\002\000\t0\002\000\t,\002\000\t \002\000\t\028\002\000\t@\003\000\t0\003\000\t \003\000\t@\004\000\t@\005\000\t@\006\000\t0\004\000\t \004\000\004|\001\000\004|\002\000\004|\003\000\t<\003\000\t<\004\000\t<\005\000\t,\003\000\t\028\003\000\t\020\001\000\r|\002\000\rl\001\000\r\172\001\000\007\028\002\000\011\012\002\000\rd\001\000\011\016\002\000\002\024\001\000\018\160\001\000\001x\001\000\018\160\002\000\018\160\003\000\018\160\004\000\018\160\005\000\018\160\006\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\005t\001\000\005h\001\000\005d\001\000\005`\001\000\001\236\001\000\001\204\001\000\000\244\001\000\001d\001\000\001d\002\000\001d\003\000\000\220\001\000\019\160\001\000\019\152\001\000\019\160\002\000\019\152\002\000\b\152\001\000\019\160\003\000\019\152\003\000\019\160\004\000\019\152\004\000\019\152\005\000\019\152\006\000\019\160\005\000\019\160\006\000\019\160\007\000\000\220\002\000\000\220\003\000\019\156\001\000\019\148\001\000\019\144\001\000\019\200\001\000\019\192\001\000\019\200\002\000\019\196\001\000\b\152\001\000\019\196\002\000\019\144\002\000\019\144\003\000\019\144\004\000\019\144\005\000\002\024\001\000\019\156\002\000\019\148\002\000\019\156\003\000\019\148\003\000\019\148\004\000\019\148\005\000\019\156\004\000\019\156\005\000\019\156\006\000\000\224\001\000\007\176\001\000\007\168\001\000\007\160\001\000\007\176\002\000\007\168\002\000\007\160\002\000\0118\001\000\007\176\003\000\007\168\003\000\007\160\003\000\007\176\004\000\007\168\004\000\007\160\004\000\007\176\005\000\007\168\005\000\007\176\006\000\007\176\007\000\007\176\b\000\007\176\t\000\002\024\001\000\007\176\n\000\007\176\011\000\007\168\006\000\007\168\007\000\007\168\b\000\007\160\005\000\000\224\002\000\000\224\003\000\007\172\001\000\007\164\001\000\007\156\001\000\007\152\001\000\019\212\001\000\019\204\001\000\019\212\002\000\019\208\001\000\0118\001\000\019\208\002\000\007\152\002\000\007\152\003\000\007\152\004\000\007\152\005\000\007\172\002\000\007\164\002\000\007\156\002\000\007\172\003\000\007\164\003\000\007\156\003\000\007\172\004\000\007\164\004\000\007\172\005\000\007\172\006\000\007\172\007\000\007\172\b\000\002\024\001\000\007\172\t\000\007\172\n\000\007\164\005\000\007\164\006\000\007\164\007\000\007\156\004\000\000\232\001\000\000\232\002\000\000\232\003\000\000\232\004\000\000\216\001\000\000\212\001\000\000\216\002\000\000\216\003\000\001`\001\000\001T\001\000\006x\001\000\006t\001\000\000\196\001\000\000\192\001\000\006x\002\000\006x\003\000\006x\004\000\006x\005\000\006x\006\000\006x\007\000\000\196\002\000\000\192\002\000\000\196\003\000\000\196\004\000\b\000\001\000\000\196\005\000\000\196\006\000\001\\\001\000\012\176\001\000\001\\\002\000\001\\\003\000\001\\\004\000\000\184\001\000\000\184\002\000\001\004\001\000\001\000\001\000\001\000\002\000\006|\001\000\000\188\001\000\000\188\002\000\000\208\001\000\000\204\001\000\000\180\001\000\012d\001\000\000\204\002\000\001X\001\000\000\200\001\000\000\188\003\000\000\200\002\000\006|\002\000\001\000\003\000\000\200\001\000\001\004\002\000\000\184\003\000\000\200\001\000\000\196\007\000\000\192\003\000\b\000\001\000\000\192\004\000\000\192\005\000\000\200\001\000\000\192\006\000\006t\002\000\006t\003\000\006t\004\000\006t\005\000\001`\002\000\001T\002\000\000\200\001\000\001T\003\000\001`\003\000\001`\004\000\001`\005\000\000\216\004\000\000\200\001\000\n\b\001\000\n\b\002\000\000\216\005\000\000\216\006\000\000\212\002\000\000\212\003\000\000\200\001\000\000\212\004\000\000\212\005\000\000\228\001\000\000\228\002\000\000\228\003\000\000\228\004\000\001d\004\000\001d\005\000\000\236\001\000\000\236\002\000\000\240\001\000\007@\001\000\007@\002\000\000\244\002\000\000\200\001\000\000\248\001\000\000\248\002\000\000\248\003\000\000\248\004\000\000\200\001\000\000\252\001\000\000\252\002\000\018\160\007\000\018\160\b\000\006\212\001\000\006\212\002\000\006\212\003\000\006\212\004\000\006\212\005\000\006\212\006\000\006\212\007\000\006\212\b\000\018\160\t\000\018|\001\000\0070\001\000\006l\001\000\018\140\001\000\016 \001\000\018x\001\000\018\156\001\000\018\152\001\000\0070\002\000\018l\001\000\006p\001\000\018\172\001\000\018p\001\000\018p\002\000\018\168\001\000\018\168\002\000\018\168\003\000\018\168\004\000\bD\001\000\b@\001\000\b8\001\000\018\168\005\000\018\128\001\000\018\128\002\000\018t\001\000\018\164\001\000\011\b\001\000\018h\001\000\018h\002\000\018h\003\000\000\172\001\000\018d\001\000\018l\001\000\006p\001\000\003\176\001\000\002x\003\000\002x\004\000\004\176\003\000\004\176\004\000\007,\002\000\007,\003\000\007,\004\000\007(\002\000\011,\003\000\011,\004\000\004\140\n\000\018\136\006\000\018\136\007\000\018\136\b\000\004x\001\000\002l\001\000\004x\002\000\002l\002\000\002l\003\000\002l\004\000\002l\005\000\018\136\t\000\011\136\001\000\011\132\001\000\018\136\n\000\011\132\002\000\011\136\002\000\011t\001\000\011|\001\000\011x\001\000\011\128\001\000\004|\001\000\002p\001\000\002p\002\000\002p\003\000\002p\004\000\018\132\004\000\004\136\004\000\019@\001\000\004\136\005\000\004\136\006\000\004\136\007\000\012D\001\000\004\136\b\000\004\136\t\000\018\132\005\000\018\132\006\000\018\132\007\000\018\132\b\000\011\136\001\000\011\132\001\000\018\132\t\000\b,\003\000\b,\004\000\bd\005\000\bD\001\000\b@\001\000\b8\001\000\015\024\007\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\015\024\b\000\012\028\001\000\005\172\004\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\028\002\000\005\172\005\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012 \004\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\168\004\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012\028\001\000\005\188\b\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\028\002\000\005\188\t\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012$\b\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\184\b\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012 \002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\016\002\000\001\012\002\000\001\012\003\000\001\016\003\000\002\024\001\000\001\016\004\000\001\016\005\000\014P\004\000\014P\005\000\014P\006\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\232\002\000\011\240\004\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\240\005\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\236\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\236\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\236\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\136\001\000\011\236\007\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\011\232\004\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\012\004\007\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\012\004\b\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\012\000\007\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\012\000\b\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\012\000\t\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\136\001\000\012\000\n\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\011\252\007\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\002\164\004\000\002\164\005\000\012\136\001\000\002\164\006\000\004 \002\000\002d\003\000\002d\004\000\019@\001\000\019<\001\000\007\140\001\000\007\132\001\000\007|\001\000\007\140\002\000\007\132\002\000\007|\002\000\007\140\003\000\007\132\003\000\007|\003\000\007\140\004\000\007\132\004\000\007|\004\000\007\132\005\000\007|\005\000\007\132\006\000\007|\006\000\007\148\001\000\007|\007\000\007\144\001\000\007\136\001\000\007\128\001\000\000\136\001\000\000|\001\000\000p\001\000\007\136\002\000\007\128\002\000\007\128\003\000\tH\002\000\tD\002\000\tD\003\000\017\172\002\000\017\168\002\000\017\164\002\000\017\160\002\000\017\156\002\000\017\152\002\000\017\148\002\000\017\144\002\000\016t\002\000\016p\002\000\012|\001\000\012x\001\000\017\172\003\000\017\168\003\000\017\164\003\000\017\160\003\000\017\156\003\000\017\152\003\000\017\148\003\000\017\144\003\000\016t\003\000\016p\003\000\017\172\004\000\017\168\004\000\017\164\004\000\017\160\004\000\017\156\004\000\017\152\004\000\017\148\004\000\017\144\004\000\016t\004\000\016p\004\000\002\024\001\000\017\172\005\000\017\168\005\000\017\164\005\000\017\160\005\000\017\156\005\000\017\152\005\000\017\148\005\000\017\144\005\000\016t\005\000\016p\005\000\017\156\006\000\017\152\006\000\017\148\006\000\017\144\006\000\016p\006\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\148\007\000\017\144\007\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\148\b\000\016|\002\000\016p\007\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\156\007\000\017\152\007\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\156\b\000\017\152\b\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\156\t\000\016\140\003\000\017\172\006\000\017\168\006\000\017\164\006\000\017\160\006\000\016t\006\000\017\172\007\000\017\168\007\000\017\164\007\000\017\160\007\000\016t\007\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\164\b\000\017\160\b\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\164\t\000\016|\002\000\016t\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\172\b\000\017\168\b\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\172\t\000\017\168\t\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\172\n\000\016\140\003\000\t8\002\000\t8\003\000\t8\004\000\t(\002\000\t\016\002\000\002\024\001\000\t\024\002\000\019 \002\000\004\132\b\000\004\132\t\000\012D\001\000\004\132\n\000\004\132\011\000\r\132\006\000\r\132\007\000\r\132\b\000\r\132\t\000\011\148\001\000\r\132\n\000\011\148\002\000\011\140\001\000\011\144\001\000\r\128\004\000\004\136\004\000\004\128\004\000\019@\001\000\004\136\005\000\004\128\005\000\004\136\006\000\004\128\006\000\004\128\007\000\004\128\b\000\012D\001\000\004\128\t\000\004\128\n\000\r\128\005\000\r\128\006\000\r\128\007\000\r\128\b\000\011\148\001\000\r\128\t\000\b\\\003\000\b\\\004\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\002,\005\000\002,\006\000\017,\004\000\017(\004\000\017$\004\000\017 \004\000\017\028\004\000\017\024\004\000\017\020\004\000\017\016\004\000\016T\004\000\016P\004\000\012|\001\000\012x\001\000\017,\005\000\017(\005\000\017$\005\000\017 \005\000\017\028\005\000\017\024\005\000\017\020\005\000\017\016\005\000\016T\005\000\016P\005\000\017,\006\000\017(\006\000\017$\006\000\017 \006\000\017\028\006\000\017\024\006\000\017\020\006\000\017\016\006\000\016T\006\000\016P\006\000\002\024\001\000\017,\007\000\017(\007\000\017$\007\000\017 \007\000\017\028\007\000\017\024\007\000\017\020\007\000\017\016\007\000\016T\007\000\016P\007\000\017\028\b\000\017\024\b\000\017\020\b\000\017\016\b\000\016P\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\020\t\000\017\016\t\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\020\n\000\016|\002\000\016P\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\028\t\000\017\024\t\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\028\n\000\017\024\n\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\028\011\000\016\140\003\000\017,\b\000\017(\b\000\017$\b\000\017 \b\000\016T\b\000\017,\t\000\017(\t\000\017$\t\000\017 \t\000\016T\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017$\n\000\017 \n\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017$\011\000\016|\002\000\016T\n\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017,\n\000\017(\n\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017,\011\000\017(\011\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017,\012\000\016\140\003\000\017L\003\000\017H\003\000\017D\003\000\017@\003\000\017<\003\000\0178\003\000\0174\003\000\0170\003\000\016\\\003\000\016X\003\000\017<\004\000\0178\004\000\0174\004\000\0170\004\000\016X\004\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\0174\005\000\0170\005\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\0174\006\000\016|\002\000\016X\005\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017<\005\000\0178\005\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017<\006\000\0178\006\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017<\007\000\016\140\003\000\017L\004\000\017H\004\000\017D\004\000\017@\004\000\016\\\004\000\017L\005\000\017H\005\000\017D\005\000\017@\005\000\016\\\005\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017D\006\000\017@\006\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017D\007\000\016|\002\000\016\\\006\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017L\006\000\017H\006\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017L\007\000\017H\007\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017L\b\000\016\140\003\000\018\\\003\000\018X\003\000\018T\003\000\018P\003\000\018L\003\000\018H\003\000\018D\003\000\018@\003\000\018\028\003\000\018\024\003\000\017\140\003\000\017\136\003\000\017\132\003\000\017\128\003\000\017|\003\000\017x\003\000\017t\003\000\017p\003\000\017l\003\000\017h\003\000\017d\003\000\017`\003\000\017\\\003\000\017X\003\000\017T\003\000\017P\003\000\016l\003\000\016h\003\000\016d\003\000\016`\003\000\017l\004\000\017h\004\000\017d\004\000\017`\004\000\017\\\004\000\017X\004\000\017T\004\000\017P\004\000\016d\004\000\016`\004\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\017l\005\000\017h\005\000\017d\005\000\017`\005\000\017\\\005\000\017X\005\000\017T\005\000\017P\005\000\016d\005\000\016`\005\000\012|\001\000\012x\001\000\017l\006\000\017h\006\000\017d\006\000\017`\006\000\017\\\006\000\017X\006\000\017T\006\000\017P\006\000\016d\006\000\016`\006\000\017l\007\000\017h\007\000\017d\007\000\017`\007\000\017\\\007\000\017X\007\000\017T\007\000\017P\007\000\016d\007\000\016`\007\000\002\024\001\000\017l\b\000\017h\b\000\017d\b\000\017`\b\000\017\\\b\000\017X\b\000\017T\b\000\017P\b\000\016d\b\000\016`\b\000\017\\\t\000\017X\t\000\017T\t\000\017P\t\000\016`\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017T\n\000\017P\n\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017T\011\000\016|\002\000\016`\n\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\\\n\000\017X\n\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\\\011\000\017X\011\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\\\012\000\016\140\003\000\017l\t\000\017h\t\000\017d\t\000\017`\t\000\016d\t\000\017l\n\000\017h\n\000\017d\n\000\017`\n\000\016d\n\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017d\011\000\017`\011\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017d\012\000\016|\002\000\016d\011\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017l\011\000\017h\011\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017l\012\000\017h\012\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017l\r\000\016\140\003\000\017\140\004\000\017\136\004\000\017\132\004\000\017\128\004\000\017|\004\000\017x\004\000\017t\004\000\017p\004\000\016l\004\000\016h\004\000\017|\005\000\017x\005\000\017t\005\000\017p\005\000\016h\005\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017t\006\000\017p\006\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017t\007\000\016|\002\000\016h\006\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017|\006\000\017x\006\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017|\007\000\017x\007\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017|\b\000\016\140\003\000\017\140\005\000\017\136\005\000\017\132\005\000\017\128\005\000\016l\005\000\017\140\006\000\017\136\006\000\017\132\006\000\017\128\006\000\016l\006\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\132\007\000\017\128\007\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\132\b\000\016|\002\000\016l\007\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\140\007\000\017\136\007\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\140\b\000\017\136\b\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\140\t\000\016\140\003\000\019\012\001\000\019\b\001\000\018\\\004\000\018X\004\000\018T\004\000\018P\004\000\018L\004\000\018H\004\000\018D\004\000\018@\004\000\018\028\004\000\018\024\004\000\000\136\001\000\000|\001\000\000p\001\000\019\012\002\000\018\\\005\000\018X\005\000\018T\005\000\018P\005\000\018L\005\000\018H\005\000\018D\005\000\018@\005\000\018\028\005\000\018\024\005\000\019\012\003\000\018\\\006\000\018X\006\000\018T\006\000\018P\006\000\018L\006\000\018H\006\000\018D\006\000\018@\006\000\018\028\006\000\018\024\006\000\012\224\001\000\012\220\001\000\018L\007\000\018H\007\000\018D\007\000\018@\007\000\018\024\007\000\018D\b\000\018@\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\018D\t\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\018\024\b\000\018L\b\000\018H\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018L\t\000\018H\t\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018L\n\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\018\\\007\000\018X\007\000\018T\007\000\018P\007\000\018\028\007\000\018\\\b\000\018X\b\000\018T\b\000\018P\b\000\018\028\b\000\018T\t\000\018P\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\018T\n\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\018\028\t\000\018\\\t\000\018X\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\\\n\000\018X\n\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018\\\011\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\019\012\001\000\019\b\001\000\018`\003\000\018<\003\000\0188\003\000\0184\003\000\0180\003\000\018,\003\000\018(\003\000\018$\003\000\018 \003\000\018\020\003\000\018\016\003\000\000\136\001\000\000|\001\000\000p\001\000\019\012\002\000\018`\004\000\018<\004\000\0188\004\000\0184\004\000\0180\004\000\018,\004\000\018(\004\000\018$\004\000\018 \004\000\018\020\004\000\018\016\004\000\019\012\003\000\018`\005\000\018<\005\000\0188\005\000\0184\005\000\0180\005\000\018,\005\000\018(\005\000\018$\005\000\018 \005\000\018\020\005\000\018\016\005\000\012\224\001\000\012\220\001\000\018,\006\000\018(\006\000\018$\006\000\018 \006\000\018\016\006\000\018$\007\000\018 \007\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\018$\b\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\018\016\007\000\018,\007\000\018(\007\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018,\b\000\018(\b\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018,\t\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\018<\006\000\0188\006\000\0184\006\000\0180\006\000\018\020\006\000\018<\007\000\0188\007\000\0184\007\000\0180\007\000\018\020\007\000\0184\b\000\0180\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\0184\t\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\018\020\b\000\018<\b\000\0188\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018<\t\000\0188\t\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018<\n\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\004\188\003\000\002\024\001\000\r\004\004\000\r\000\004\000\012\252\004\000\000\156\005\000\000\156\006\000\004\196\002\000\002\024\001\000\011`\001\000\004\208\002\000\004\188\001\000\004\184\001\000\004\208\003\000\r\016\003\000\r\012\003\000\r\b\003\000\000\160\004\000\000\160\005\000\r\016\004\000\r\012\004\000\r\b\004\000\r\016\005\000\000\152\001\000\r\016\006\000\r\016\007\000\r\012\005\000\000\148\001\000\r\012\006\000\000\148\002\000\r\012\007\000\r\012\b\000\r\b\005\000\002\024\001\000\r\004\001\000\r\000\001\000\012\252\001\000\012t\002\000\012p\001\000\000\156\002\000\000\148\001\000\r\004\002\000\r\000\002\000\012\252\002\000\012t\003\000\012p\002\000\000\156\003\000\000\148\002\000\019\180\006\000\019\180\007\000\019\180\b\000\000\176\003\000\000\176\004\000\002\192\003\000\002\192\004\000\002\192\005\000\002\192\006\000\002\192\007\000\004\152\001\000\004\152\002\000\000\000\001\000\000\004\000\000\004\172\001\000\004\172\002\000\000\004\001\000\000\b\000\000\019\128\001\000\007\200\001\000\001\204\001\000\007\200\002\000\007\200\003\000\007\204\001\000\000\b\001\000\b\016\001\000\007\216\001\000\007\212\001\000\007\208\001\000\007\192\001\000\007\216\002\000\007\212\002\000\007\208\002\000\007\192\002\000\019\128\001\000\007\212\003\000\007\212\004\000\007\212\005\000\007\216\003\000\007\208\003\000\000X\001\000\007\196\001\000\000\\\001\000\n\140\001\000\n\140\002\000\000\012\000\000\000\012\001\000\n\144\001\000\n\144\002\000\000\016\000\000\000\016\001\000\n\148\001\000\002\024\001\000\n\148\002\000\000\020\000\000\n\152\001\000\n\152\002\000\000\020\001\000\000\024\000\000\000\024\001\000\n\156\001\000\b\016\001\000\007\192\001\000\n\156\002\000\000\028\000\000\000\028\001\000\n\160\001\000\b\000\001\000\n\160\002\000\000 \000\000\000 \001\000\n\164\001\000\bD\001\000\b@\001\000\b8\001\000\n\164\002\000\000$\000\000\000$\001\000\n\168\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\n\168\002\000\000(\000\000\000(\001\000\n\172\001\000\n\172\002\000\000,\000\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\n\176\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\176\002\000\000,\001\000\0000\000\000\n\180\001\000\n\180\002\000\0000\001\000\b\b\001\000\b\000\001\000\b\b\002\000\b\000\002\000\0004\000\000\018\244\001\000\018\240\001\000\018\236\001\000\018\232\001\000\018\228\001\000\018\224\001\000\018\220\001\000\018\244\002\000\018\240\002\000\018\236\002\000\018\232\002\000\018\228\002\000\018\224\002\000\018\220\002\000\018\244\003\000\018\224\003\000\018\228\003\000\018\240\003\000\018\232\003\000\018\236\003\000\b\b\001\000\b\000\001\000\018\216\001\000\018\212\001\000\018\208\001\000\018\204\001\000\018\200\001\000\018\196\001\000\018\192\001\000\018\216\002\000\018\212\002\000\018\208\002\000\018\204\002\000\018\200\002\000\018\196\002\000\018\192\002\000\018\216\003\000\018\196\003\000\018\200\003\000\018\212\003\000\018\204\003\000\018\208\003\000\b\b\001\000\b\000\001\000\019\004\001\000\0004\001\000\019\000\001\000\019\000\002\000\007H\001\000\007H\002\000\018\248\001\000\018\248\002\000\018\248\003\000\018\252\001\000\018\252\002\000\0008\000\000\007T\001\000\007P\001\000\007\\\001\000\007X\001\000\007X\002\000\007\\\002\000\007T\002\000\007T\003\000\007T\004\000\007P\002\000\0008\001\000\019|\001\000\019|\002\000\019|\003\000\019|\004\000\019x\001\000\019x\002"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000]\000_\000`\000a\000c\000e\000f\000h\000j\000l\000m\000o\000q\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\131\000\133\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\143\000\144\000\145\000\147\000\148\000\149\000\150\000\151\000\169\000\174\000\178\000\179\000\180\000\181\000\182\000\183\000\200\000\206\000\212\000\216\000\218\000\219\000\223\000\224\001\031\001 \001]\001n\001o\001p\001q\001s\001t\001u\001{\001\129\001\135\001\136\001\138\001\139\001\142\001\144\001\145\001\146\001\147\001\150\001\151\001\152\001\156\001\158\001\160\001\161\001\162\001\166\001\167\001\169\001\170\001\171\001\172\001\176\001\177\001\178\001\179\001\181\001\183\001\185\001\186\001\187\001\188\001\190\001\191\001\192\001\193\001\194\001\196\001\197\001\198\001\199\001\200\001\201\001\204\001\207\001\208\001\209\001\211\001\212\001\214\001\215\001\219\001\238\001\239\001\241\001\248\001\253\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\020\002\025\002\030\002\031\002!\002\"\002$\002&\002'\002(\002+\002-\0020\0021\0023\0024\0025\0028\0029\002<\002=\002>\002?\002@\002B\002C\002D\002E\002F\002G\002H\002I\002J\002O\002S\002U\002`\002e\002q\002r\002t\002u\002v\002|\002\129\002\141\002\147\002\148\002\188\002\205\002\206\002\212\002\215\002\216\002\217\002\218\002\219\002\223\002\226\002\227\002\228\002\229\002\230\002\233\002\235\002\236\002\237\002\239\002\241\002\242\002\243\003\007\003\024\003$\003%\003&\003'\003(\003)\003*\003+\003,\0036\0037\0038\0039\003:\003;\003F\003P\003U\003a\003g\003h\003~\003\138\003\143\003\155\003\161\003\162\003\184\003\196\003\202\003\207\003\219\003\225\003\226\003\248\004\004\004\n\004\015\004\016\004\019\004\020\004\024\004\025\004\026\004\027\004\028\004\031\004!\004$\004%\004)\004-\0041\0047\004<\004A\004M\004S\004T\004j\004v\004|\004}\004\129\004\132\004\133\004\134\004\136\004\137\004\138\004\139\004\140\004\141\004\142\004\143\004\144\004\145\004\150\004\151\004\154\004\156\004\157\004\158\004\160\004\162\004\163\004\164\004\166\004\176\004\181\004\183\004\195\004\205\004\216\004\226\004\231\004\243\004\249\004\250\005\016\005\028\005\"\005'\005,\0058\005>\005?\005U\005a\005g\005q\005v\005\130\005\136\005\137\005\159\005\171\005\177\005\182\005\187\005\199\005\205\005\206\005\228\005\240\005\246\006\n\006\027\006'\0061\006<\006F\006K\006W\006]\006^\006t\006\128\006\134\006\139\006\144\006\156\006\162\006\163\006\185\006\197\006\203\006\213\006\218\006\230\006\236\006\237\007\003\007\015\007\021\007\026\007\031\007+\0071\0072\007H\007T\007Z\007p\007|\007\130\007\131\007\153\007\165\007\171\007\176\007\178\007\179\007\183\007\184\007\187\007\188\007\192\007\193\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\204\007\205\007\206\007\207\007\209\007\210\007\211\007\212\007\214\007\215\007\219\007\220\007\224\007\225\007\227\007\229\007\230\007\231\007\232\007\234\007\235\007\237\007\238\007\241\007\242\007\243\007\245\007\246\007\247\007\248\007\250\007\252\007\255\b\000\b\002\b\007\b\012\b\017\b\029\b#\b)\b/\b5\b;\b@\bL\bR\bX\b^\bd\bj\bk\bl\bm\bn\bo\bp\br\bs\b}\b\130\b\135\b\140\b\146\b\151\b\156\b\168\b\174\b\180\b\186\b\193\b\199\b\205\b\210\b\222\b\228\b\234\b\240\b\247\b\253\t\003\t\007\t\b\t\t\t\n\t\011\t\015\t\016\t\017\t\018\t\019\t\026\t\031\t!\t#\t%\t&\t'\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t6\t:\t>\t@\tB\tD\tE\tF\tH\tI\tJ\tL\tM\tN\tO\tQ\tR\tS\tT\t^\tf\tn\to\tp\tq\tr\ts\tu\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\137\t\139\t\143\t\144\t\147\t\149\t\150\t\160\t\165\t\170\t\175\t\181\t\186\t\191\t\203\t\209\t\215\t\221\t\228\t\234\t\240\t\245\n\001\n\007\n\r\n\019\n\026\n \n&\n(\n*\n,\n-\n.\n/\n0\n1\n5\n6\n8\n<\n=\n>\n?\n@\nA\nB\nC\nD\nG\nI\nJ\nK\nL\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n`\ne\nq\nw\n}\n\131\n\138\n\144\n\150\n\156\n\162\n\163\n\165\n\166\n\168\n\170\n\171\n\172\n\173\n\180\n\186\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\206\n\211\n\223\n\229\n\235\n\241\n\248\n\254\011\004\011\n\011\016\011\017\011\018\011\019\011\020\011\030\011\031\011)\011*\0114\0115\0116\0117\0119\011C\011I\011N\011Z\011`\011f\011l\011s\011y\011\127\011\133\011\139\011\140\011\150\011\153\011\161\011\162\011\163\011\164\011\165\011\170\011\171\011\172\011\183\011\184\011\185\011\187\011\188\011\198\011\199\011\200\011\210\011\211\011\213\011\214\011\215\011\216\011\228\011\230\011\231\011\232\011\233\011\243\011\245\011\246\011\255\012\000\012\n\012\014\012\017\012\018\012\019\012\020\012\021\012\022\012\023\012\024\012\025\012\026\012\027\012!\012'\012,\0128\012>\012D\012J\012Q\012W\012]\012c\012i\012j\012k\012u\012z\012\134\012\140\012\146\012\152\012\159\012\165\012\171\012\177\012\183\012\184\012\194\012\195\012\205\012\206\012\216\012\217\012\218\012\219\012\220\012\226\012\231\012\243\012\249\012\255\r\005\r\012\r\018\r\024\r\030\r$\r%\r/\r0\r:\r@\rF\rG\rQ\rV\r[\r`\rc\rf\rh\rn\rr\rv\rx\r{\r|\r}\r~\r\129\r\130\r\131\r\132\r\133\r\134\r\135\r\136\r\137\r\140\r\142\r\143\r\144\r\145\r\150\r\152\r\153\r\154\r\155\r\156\r\157\r\159\r\160\r\161\r\162\r\164\r\165\r\166\r\167\r\168\r\170\r\171\r\172\r\173\r\174\r\179\r\181\r\183\r\185\r\187\r\189\r\190\r\191\r\195\r\196\r\200\r\202\r\203\r\205\r\206\r\208\r\209\r\213\r\215\r\217\r\218\r\223\r\224\r\229\r\230\r\233\r\235\r\237\r\238\r\239\r\240\r\241\r\242\r\247\r\250\r\251\r\254\r\255\014\000\014\003\014\004\014\006\014\007\014\b\014\011\014\012\014\017\014\022\014\023\014\028\014\029\014\030\014\031\014 \014$\014/\0140\0145\0146\0147\014<\014=\014>\014?\014A\014B\014F\014G\014K\014O\014Q\014T\014V\014W\014Y\014Z\014[\014\\\014]\014^\014`\014e\014g\014i\014k\014q\014w\014}\014\131\014\137\014\143\014\144\014\156\014\157\014\158\014\159\014\160\014\163\014\164\014\166\014\174\014\182\014\196\014\199\014\202\014\203\014\205\014\206\014\209\014\210\014\211\014\212\014\213\014\214\014\215\014\230\014\234\014\238\014\240\014\243\014\244\014\247\014\248\014\249\014\250\014\251\014\252\014\253\014\254\014\255\015\000\015\001\015\002\015\015\015\017\015\018\015\019\015\020\015\021\015\022\015\024\015\025\015\026\015\027\015\028\015\029\015\030\015 \015!\015\"\0151\0155\0159\015;\015>\015?\015A\015P\015T\015X\015Z\015]\015`\015a\015b\015c\015d\015e\015f\015l\015x\015\135\015\139\015\143\015\145\015\148\015\149\015\152\015\166\015\167\015\170\015\174\015\176\015\179\015\180\015\182\015\183\015\184\015\185\015\186\015\187\015\188\015\190\015\191\015\192\015\193\015\194\015\198\015\199\015\200\015\206\015\212\015\218\015\225\015\230\015\242\015\248\015\254\016\004\016\n\016\016\016\022\016\023\016\024\016\025\016\026\016\027\016)\016*\016+\016,\016:\016;\016<\016?\016@\016H\016P\016X\016a\016c\016d\016e\016f\016p\016q\016r\016s\016t\016u\016\131\016\138\016\139\016\141\016\147\016\153\016\159\016\166\016\167\016\168\016\169\016\204\016\206\016\207\016\208\016\209\016\210\016\211\016\212\016\213\016\214\016\228\016\229\016\250\017\014\017\019\017\020\017\022\017\024\017\025\017\026\017\027\017\031\017 \017%\017&\017(\017*\017,\017.\017/\0171\0172\0173\0179\017>\017J\017P\017V\017\\\017b\017h\017n\017\129\017\134\017\146\017\152\017\158\017\164\017\170\017\176\017\182\017\201\017\202\017\203\017\204\017\205\017\211\017\217\017\223\017\230\017\232\017\246\017\248\017\249\017\250\017\251\0185\0187\018=\018C\018I\018P\018\135\018\137\018\143\018\149\018\155\018\162\018\217\018\219\018\225\018\231\018\237\018\244\019+\019-\0193\0199\019?\019F\019}\019\127\019\133\019\139\019\145\019\152\019\207\019\209\019\215\019\221\019\227\019\234\020!\020#\020)\020/\0205\020<\020s\020u\020{\020\129\020\135\020\142\020\197\020\199\020\205\020\211\020\217\020\224\021\023\021\025\021\031\021%\021+\0212\021i\021k\021q\021w\021}\021\132\021\187\021\189\021\195\021\201\021\207\021\214\022\r\022\015\022\021\022\027\022!\022(\022_\022a\022g\022m\022s\022z\022\177\022\179\022\185\022\191\022\197\022\204\023\003\023\005\023\011\023\017\023\023\023\030\023U\023W\023]\023c\023i\023p\023\167\023\172\023\184\023\190\023\196\023\202\023\208\023\214\023\220\023\239\023\245\023\251\024\001\024\b\024?\024A\024G\024M\024S\024Z\024\145\024\147\024\153\024\159\024\165\024\172\024\227\024\229\024\235\024\241\024\247\024\254\0255\0257\025=\025C\025I\025P\025\135\025\137\025\143\025\149\025\155\025\162\025\217\025\219\025\225\025\231\025\237\025\244\026+\026-\0263\0269\026?\026F\026}\026~\026\128\026\142\026\144\026\150\026\156\026\162\026\169\026\224\026\227\026\228\026\229\026\230\026\231\026\232\026\233\026\241\026\243\026\244\026\245\026\246\026\247\026\248\026\249\026\250\026\251\026\252\026\253\026\254\026\255\027\t\027\015\027\017\027\019\027\021\027\024\027\025\027\026\027\027\027\028\027\029\027!\027#\027&\027'\027(\027)\027*\027+\027-\027.\027/\0270\0271\0272\0273\0274\0275\0276\027:\027<\027?\027@\027A\027B\027C\027D\027E\027F\027G\027Q\027R\027S\027Y\027_\027c\027g\027i\027l\027m\027n\027o\027p\027q\027s\027t\027u\027v\027w\027x\027y\027z\027{\027|\027}\027~\027\127\027\128\027\129\027\130\027\185\027\191\027\197\027\203\027\210\028\t\028\019\028\020\028\021\028\023\028\024\028\025\028\026\028\027\028\028\028\030\028\031\028 \028$\028-\0286\028?\028I\028K\028Q\028W\028]\028d\028\155\028\156\028\158\028\159\028\166\028\168\028\179\028\181\028\187\028\193\028\199\028\206\029\005\029\007\029\018\029\020\029\026\029 \029&\029-\029d\029f\029q\029s\029y\029\127\029\133\029\140\029\195\029\205\029\207\029\213\029\219\029\225\029\232\030\031\030#\030*\0301\0308\030@\030A\030B\030D\030J\030P\030V\030]\030\148\030\204\030\206\030\212\030\218\030\224\030\231\031\030\031\031\031 \031!\031#\031$\031%\031&\031'\031(\031)\031c\031e\031f\031\159\031\161\031\162\031\166\031\175\031\184\031\193\031\203\031\205\031\206\031\207\031\208\031\209 \011 \r \014 \018 \019 \028 % . 8 : ; < = w y z { | } ~ \140 \141 \142 \145 \148 \151 \153 \154 \155 \156 \157 \179 \200 \202 \203 \204 \218 \227 \230 \233 \236 \238 \244 \250!\000!\007!>!A!D!G!I!O!U![!b!\153!\156!\159!\162!\164!\170!\176!\182!\189!\244\"\t\"\012\"\015\"\018\"\020\"\026\" \"&\"-\"d\"g\"j\"m\"o\"u\"{\"\129\"\136\"\191\"\194\"\197\"\200\"\202\"\208\"\214\"\220\"\227#\026#%#.#1#4#7#9#?#E#K#R#\137#\140#\143#\146#\148#\154#\160#\166#\173#\228#\231#\234#\237#\239#\245#\251$\001$\b$?$B$D$J$P$V$]$\148$\162$\164$\165$\166$\221$\222$\223$\224$\225$\226$\227$\228$\229$\234$\237$\238$\239$\240$\241$\242$\243$\244$\245$\246$\247$\248$\249$\250$\251$\252$\253$\254$\255%\000%\001%\002%\003%\004%\005%\006%\007%\026% %&%,%3%j%k%l%m%n%p%q%r%s%z%\128%\134%\142%\150%\158%\167%\169%\175%\181%\187%\194%\249&2&4&:&@&F&M&\132&\133&\134&\135&\153&\159&\165&\171&\178&\179&\234&\235&\249'\007'\012'\017'\022'\028'#'$'Z'['\\'b'h'n'u'\172'\175'\177'\178'\179'\180'\181'\190'\199'\208'\218'\220'\221'\222'\223(\025(\027(\028(%(.(7(A(C(D(E(F(G(\129(\131(\132(\133(\134(\135(\139(\140(\141(\142(\143(\144(\145(\146(\150(\151(\156(\157(\161(\162(\163(\164(\165(\166(\167(\168(\169(\170(\172(\173(\174(\175(\176(\177(\178(\179(\180(\182(\184(\186(\189(\190(\194(\196(\197(\199(\200(\201(\203(\205(\206(\207(\211(\212(\213(\215(\216(\217(\219(\224(\226(\230(\234(\236(\241(\243(\248(\250(\251)\000)\002)\006)\014)\020)\026)\031)$)&)))+),)-)/)1)2)3)5)9);)<)=)A)G)H)I)M)S)T)U)V)W)X)Y)Z)[)\\)])^)_)`)a)b)c)d)e)f)l)r)x)\127)\182)\183)\192)\201)\210)\220)\222)\223)\224)\225)\226*\028*\030*\031*-*/*1*3*8*9*:*?*@*C*D*F*G*H*I*J*K*M*N*W*`*i*s*t*u*z*{*}*\131*\132*\133*\138*\139*\197*\198*\199*\204*\205*\207*\213*\214*\215*\220*\221*\225*\226*\227*\228*\232*\233*\236*\237*\238*\239*\240*\241*\246*\247*\248*\250*\252*\253*\254*\255+\000+\001+\002+\003+\004+\005+\006+\007+\b+\t+\n+\011+\012+\014+\025+\026+\027+\028+\029+\030+\031+ +!+#+$+%+&+'+(+)+,+-+/+0+1+2+4+5+6+7+9+;+=+?+A+B+D+G+I+J+K+L+M+N+O+P+R+S+U+V+W+X+[+\\+]+^+a+b+h+j+l+n+p+q+v+w+{+\127+\129+\130+\133+\134+\135+\136+\137+\142+\143+\144+\145+\146+\147+\152+\153+\154+\155+\157+\158+\160+\161+\162+\167+\168+\169+\170+\171+\172+\173+\174+\175+\177+\178+\179+\180+\181+\182+\183+\184+\186+\187+\188+\189+\190+\191+\192+\193+\194+\195+\197+\198+\199+\200+\201+\203+\204+\206+\207+\208+\209+\210+\212+\213+\214+\215+\217+\218+\220+\221+\222+\223+\224+\225+\226+\227+\228+\230+\232+\233+\234+\236+\237+\238+\240+\241+\242+\243+\245+\247+\248+\249+\251+\252+\253+\255,\000,\002,\004,\005,\006,\007,\t,\n,\012,\r,\014,\015,\016,\017,\018,\019,\020,\021,\023,\024,\025,\026,\027,\028,\029,\030, ,!,\",#,$,%,&,',(,),-,.,/,0,4,7,8,9,:,;,<,B,G,J,L,M,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\\,],^,_,`,a,b,c,d,e,f,g,h,i,j,k,l,q,r,s,t,u,v,w,x,y,z,|,},~,\127,\128,\129,\130,\131,\132,\133,\134,\135,\139,\140,\141,\142,\143,\145,\146,\147,\148,\150,\151,\152,\153,\155,\156,\157,\158,\159,\167,\173,\176,\177,\178,\179,\180,\181,\182,\183,\184,\185,\186,\187,\188,\189,\190,\191,\192,\193,\194,\195,\196,\198,\200,\201,\202,\203,\204,\205,\216,\217,\218,\219,\220,\221,\223,\225,\226,\228,\230,\231,\232,\233,\234,\235,\236,\237,\240,\242,\243,\245,\246,\247,\248,\249,\251,\253,\255-\000-\001-\002-\003-\004-\005-\b-\011-\012-\015-\018-\020-\021-\022-\023-\025-\026-\027-\028-\029-\030-\031- -!-%-'-(-*-+-,---.-/-2-5-7-8-9-:-<-=->-?-@-A-B-C-D-E-F-H-I-J-L-P-Q-R-S-T-U-V-X-Y-Z-\\-]-^-`-a-b-c-d-f-g-i-j-k-m-o-p-r-s-t-v-w-x-z-{-}-~-\128-\129-\130-\131-\132-\135-\136-\137-\138-\139-\141-\142-\143-\144-\145-\146-\148-\149-\150-\151-\152-\153-\154-\155-\156-\157-\158-\159-\160-\161-\163-\164-\165-\166-\168-\169-\170-\171-\172-\173-\174-\175-\176-\177-\178-\179-\180-\181-\182-\183-\184-\185-\186-\187-\188-\189-\190-\192-\193-\194-\195-\196-\197-\198-\202-\203-\204-\205-\206-\207-\208-\209-\210-\211-\212-\213-\216-\217-\218-\219-\220-\221-\222-\223-\224-\225-\226-\227-\228-\229-\230-\232-\234-\235-\236-\237-\240-\241-\242-\243-\244-\245-\246-\247-\249-\250-\251-\252-\254.\000.\001.\002.\004.\005.\006.\007.\b.\011.\012.\r.\014.\018.\023.\024.\030.$.%./.5.;.<.F.K.V.W.X.Z.[.\\.].^.l.r.\133.\139.\145.\151.\158.\213.\219.\238.\244.\250/\000/\007/>/C/D/E/G/H/I/J/O/R/U/X/Z/\\/]/^/d/f/g/h/i/j/v/\128/\139/\149/\154/\166/\172/\173/\195/\207/\213/\218/\223/\235/\241/\2420\b0\0200\0260\0270\0280\0290\0300 0!0\"0#0$0&0'0(0)0*0,0-0.0/00030608090:0<0=0>0?0@0B0C0D0E0J0K0W0a0l0v0{0\1350\1410\1420\1640\1760\1820\1870\1920\2040\2100\2110\2330\2450\2511\0051\n1\0221\0281\029131?1E1J1O1[1a1b1x1\1321\1381\1681\1851\1971\2071\2181\2281\2331\2451\2511\2522\0182\0302$2)2.2:2@2A2W2c2i2s2x2\1322\1382\1392\1612\1732\1792\1842\1892\2012\2072\2082\2302\2422\2483\0073\0183\0313$3036373M3Y3_3d3i3u3{3|3\1463\1583\1643\1803\1923\2063\2113\2233\2293\2303\2524\b4\0144\0194\0244$4*4+4A4M4S4U4Y4Z4\\4`4a4e4f4i4k4l4m4o4q4r4s4u4|4\1314\1324\1334\1344\1354\1364\1374\1384\1394\1404\1414\1424\1434\1444\1454\1464\1474\1484\1494\1524\1534\1544\1554\1564\1614\1654\1674\1684\1694\1704\1714\1724\1734\1744\1754\1764\1774\1784\1794\1804\1814\1824\1844\1854\1864\1874\1884\1894\1904\1914\1944\1954\1964\1974\1994\2004\2014\2024\2064\2074\2084\2094\2144\2154\2164\2174\2184\2194\2204\2304\2314\2324\2334\2344\2354\2364\2384\2404\2414\2484\2555\0005\0015\0025\0035\0045\0075\0145\0215\0225\0235\0245\0255\0265\0295\0305\0315 5!5\"5#5$5%5&5'5(5)5+5,5-5.5/505152535455565758595:")) + ((32, "\000\000\000\000\000\002\192\001\000\002`\001\000\016\028\001\000\016\024\001\000\016\020\001\000\016\016\001\000\016\012\001\000\015T\001\000\016\b\001\000\016\004\001\000\016\000\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\015\216\001\000\015\212\001\000\015\208\001\000\015\204\001\000\015\200\001\000\015\196\001\000\015\192\001\000\015\188\001\000\015P\001\000\015\184\001\000\015\180\001\000\015\176\001\000\015\172\001\000\015\168\001\000\015\164\001\000\015\160\001\000\015\156\001\000\015\152\001\000\015\148\001\000\015\144\001\000\015\140\001\000\015\136\001\000\015\132\001\000\015\128\001\000\015|\001\000\015x\001\000\015t\001\000\015p\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\000\168\001\000\000\164\001\000\000\168\002\000\000\168\003\000\002`\002\000\002\192\002\000\000\176\001\000\000\176\002\000\019\180\001\000\019\180\002\000\019\180\003\000\019\128\001\000\t\188\001\000\t\\\001\000\t\176\001\000\t\172\001\000\t\168\001\000\t\192\001\000\t\208\001\000\t\160\001\000\t\184\001\000\t\180\001\000\t`\001\000\t\200\001\000\t\164\001\000\t\156\001\000\t\152\001\000\t\148\001\000\t\136\001\000\t\128\001\000\t\204\001\000\t\196\001\000\t|\001\000\tx\001\000\tt\001\000\tp\001\000\tl\001\000\th\001\000\tl\002\000\th\002\000\004\168\001\000\004\168\002\000\tl\003\000\th\003\000\tl\004\000\th\004\000\tl\005\000\tt\002\000\tp\002\000\tt\003\000\tp\003\000\tt\004\000\tp\004\000\tt\005\000\t|\002\000\tx\002\000\t|\003\000\tx\003\000\t|\004\000\tx\004\000\t|\005\000\t\224\001\000\t\212\001\000\t\132\001\000\t\144\001\000\t\140\001\000\td\001\000\t\216\001\000\t\220\001\000\019\128\002\000\019\128\003\000\019\132\001\000\019\180\004\000\019\180\005\000\b\244\001\000\b\232\001\000\b\248\001\000\b\236\001\000\b\240\001\000\b\228\001\000\b\240\002\000\b\248\002\000\b\244\002\000\000\152\001\000\007\188\001\000\002h\001\000\012p\001\000\000\148\001\000\004\144\001\000\004\148\001\000\012p\002\000\000\148\002\000\nT\001\000\nT\002\000\nT\003\000\nP\001\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\016t\001\000\016p\001\000\012t\001\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\r\016\001\000\r\012\001\000\r\b\001\000\000\160\002\000\000\152\001\000\r\016\002\000\r\012\002\000\r\b\002\000\000\160\003\000\004\208\001\000\004\216\001\000\004\204\001\000\000\148\001\000\000\148\002\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\016t\001\000\016p\001\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\r\004\001\000\r\000\001\000\012\252\001\000\012p\001\000\000\156\002\000\000\148\001\000\r\004\002\000\r\000\002\000\012\252\002\000\012p\002\000\000\156\003\000\000\148\002\000\r\004\003\000\r\000\003\000\012\252\003\000\000\156\004\000\011d\001\000\004\212\001\000\011d\002\000\004\184\001\000\011d\003\000\011`\001\000\004\196\001\000\004\192\001\000\004\196\002\000\019@\001\000\019<\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\0180\001\000\018,\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\018\024\001\000\018\020\001\000\018\016\001\000\017\140\001\000\017\136\001\000\017\132\001\000\017\128\001\000\017|\001\000\017x\001\000\017t\001\000\017p\001\000\017l\001\000\017h\001\000\017d\001\000\017`\001\000\017\\\001\000\017X\001\000\017T\001\000\017P\001\000\017L\001\000\017H\001\000\017D\001\000\017@\001\000\017<\001\000\0178\001\000\0174\001\000\0170\001\000\017,\001\000\017(\001\000\017$\001\000\017 \001\000\017\028\001\000\017\024\001\000\017\020\001\000\017\016\001\000\016l\001\000\016h\001\000\016d\001\000\016`\001\000\016\\\001\000\016X\001\000\016T\001\000\016P\001\000\019<\002\000\018`\002\000\018\\\002\000\018X\002\000\018T\002\000\018P\002\000\018L\002\000\018H\002\000\018D\002\000\018@\002\000\018<\002\000\0188\002\000\0184\002\000\0180\002\000\018,\002\000\018(\002\000\018$\002\000\018 \002\000\018\028\002\000\018\024\002\000\018\020\002\000\018\016\002\000\017\140\002\000\017\136\002\000\017\132\002\000\017\128\002\000\017|\002\000\017x\002\000\017t\002\000\017p\002\000\017l\002\000\017h\002\000\017d\002\000\017`\002\000\017\\\002\000\017X\002\000\017T\002\000\017P\002\000\017L\002\000\017H\002\000\017D\002\000\017@\002\000\017<\002\000\0178\002\000\0174\002\000\0170\002\000\017,\002\000\017(\002\000\017$\002\000\017 \002\000\017\028\002\000\017\024\002\000\017\020\002\000\017\016\002\000\016l\002\000\016h\002\000\016d\002\000\016`\002\000\016\\\002\000\016X\002\000\016T\002\000\016P\002\000\017,\003\000\017(\003\000\017$\003\000\017 \003\000\017\028\003\000\017\024\003\000\017\020\003\000\017\016\003\000\016T\003\000\016P\003\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\002,\002\000\002,\003\000\002,\004\000\007\188\001\000\004\144\001\000\b\\\001\000\b\\\002\000\nL\001\000\b\216\001\000\b\212\001\000\b\216\002\000\nL\002\000\b\\\003\000\b\\\004\000\rd\001\000\r\136\001\000\r\132\001\000\004\140\001\000\004\136\001\000\004\132\001\000\004\128\001\000\r\136\002\000\r\132\002\000\004\140\002\000\004\136\002\000\004\132\002\000\004\128\002\000\r\136\003\000\r\132\003\000\004\140\003\000\004\136\003\000\004\132\003\000\004\128\003\000\019l\001\000\019X\001\000\019L\001\000\019X\002\000\r\136\004\000\004\140\004\000\004\132\004\000\019`\001\000\019P\001\000\019`\002\000\0198\001\000\019h\001\000\019d\001\000\019\\\001\000\019T\001\000\019\\\002\000\019d\002\000\019,\001\000\019(\001\000\n\136\001\000\n\132\001\000\019,\002\000\n\136\002\000\019,\003\000\n\136\003\000\n\136\004\000\011`\001\000\n\136\005\000\004\196\001\000\004\192\001\000\004\192\002\000\b\208\001\000\b\204\001\000\b\208\002\000\004\192\003\000\011`\002\000\011`\003\000\011`\001\000\004\196\001\000\004\192\001\000\004\200\001\000\006\252\001\000\006\252\002\000\019(\002\000\n\132\002\000\019(\003\000\n\132\003\000\019(\004\000\n\132\004\000\n\132\005\000\011`\001\000\n\132\006\000\004\196\001\000\004\192\001\000\n\128\001\000\0198\002\000\012\184\001\000\0198\003\000\012\184\002\000\012\184\003\000\012\180\001\000\019,\001\000\019(\001\000\019,\002\000\019,\003\000\019(\002\000\019(\003\000\019(\004\000\r\136\005\000\004\140\005\000\004\132\005\000\019@\001\000\004\140\006\000\004\132\006\000\004\188\001\000\011`\001\000\004\196\001\000\004\192\001\000\004\188\002\000\004\140\007\000\004\132\007\000\019 \001\000\007\188\001\000\001\216\001\000\001\212\001\000\t8\001\000\t(\001\000\t\024\001\000\t\016\001\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\016t\001\000\016p\001\000\002,\001\000\002(\001\000\001\220\001\000\001\204\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\001\204\002\000\tH\001\000\tD\001\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\r\004\001\000\r\000\001\000\012\252\001\000\000\156\002\000\000\148\001\000\r\004\002\000\r\000\002\000\012\252\002\000\000\156\003\000\000\148\002\000\002d\001\000\002d\002\000\004 \001\000\014\140\001\000\007\252\001\000\002\164\001\000\002\164\002\000\002\164\003\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\019\024\001\000\002H\001\000\002D\001\000\t\240\001\000\002H\002\000\002D\002\000\002@\001\000\002<\001\000\002@\002\000\002<\002\000\0028\001\000\0024\001\000\0020\001\000\002P\001\000\002L\001\000\019@\001\000\019<\001\000\002P\002\000\002P\003\000\019@\001\000\019<\001\000\000\132\001\000\007\180\001\000\b\016\001\000\007\192\001\000\007\184\001\000\b\016\002\000\b\016\003\000\b\016\001\000\007\192\001\000\b\016\004\000\007\192\002\000\007\192\003\000\b\012\001\000\007\192\002\000\007\184\002\000\007\184\003\000\001|\001\000\000\132\002\000\000x\001\000\007\236\001\000\007\228\001\000\000l\001\000\002\028\001\000\b\016\001\000\007\240\001\000\007\232\001\000\007\192\001\000\000\144\001\000\007\240\002\000\007\232\002\000\007\192\002\000\000\144\002\000\002,\001\000\002(\001\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\004L\001\000\017\188\002\000\017\184\002\000\017\180\002\000\017\176\002\000\016x\002\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\003\000\017\180\001\000\017\176\003\000\017\176\001\000\016|\001\000\016x\001\000\000`\001\000\b\224\001\000\b\220\001\000\b\224\002\000\000`\002\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\180\004\000\016|\002\000\017\204\003\000\017\200\003\000\017\196\003\000\017\192\003\000\016|\003\000\017\204\001\000\017\200\001\000\017\196\004\000\017\196\001\000\017\192\004\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\005\000\017\196\002\000\017\192\002\000\016|\002\000\016|\004\000\017\012\001\000\017\b\001\000\017\004\001\000\017\000\001\000\016\252\001\000\016\248\001\000\016\244\001\000\016\240\001\000\016\236\001\000\016\232\001\000\016\228\001\000\016\224\001\000\016\220\001\000\016\216\001\000\016\212\001\000\016\208\001\000\016\204\001\000\016\200\001\000\016\196\001\000\016\192\001\000\016\188\001\000\016\184\001\000\016\180\001\000\016\176\001\000\016\172\001\000\016\168\001\000\016\164\001\000\016\160\001\000\016\156\001\000\016\152\001\000\016\148\001\000\016\144\001\000\016L\001\000\016H\001\000\016D\001\000\016@\001\000\016<\001\000\0168\001\000\0164\001\000\0160\001\000\016\172\002\000\016\168\002\000\016\164\002\000\016\160\002\000\016\156\002\000\016\152\002\000\016\148\002\000\016\144\002\000\0164\002\000\0160\002\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\004P\001\000\012\236\001\000\012\232\001\000\012\228\001\000\000\140\002\000\000\128\002\000\000t\002\000\000\140\003\000\000\128\003\000\000t\003\000\000\140\004\000\000\140\005\000\000\128\004\000\000t\004\000\b\016\001\000\007\240\001\000\007\232\001\000\007\192\001\000\007\240\002\000\007\232\002\000\007\192\002\000\007\240\003\000\007\232\003\000\019$\001\000\019D\001\000\012\236\002\000\012\232\002\000\012\228\002\000\012\236\003\000\000\152\001\000\012\236\004\000\012\236\005\000\011`\001\000\004\196\001\000\004\192\001\000\012\232\003\000\000\148\001\000\012\232\004\000\000\148\002\000\012\232\005\000\012\232\006\000\011`\001\000\004\196\001\000\004\192\001\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\017\236\002\000\017\232\002\000\017\228\002\000\017\224\002\000\017\220\002\000\017\216\002\000\017\212\002\000\017\208\002\000\016\132\002\000\016\128\002\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\017\236\003\000\017\232\003\000\017\228\003\000\017\224\003\000\017\220\003\000\017\216\003\000\017\212\003\000\017\208\003\000\016\132\003\000\016\128\003\000\012|\001\000\012x\001\000\012x\002\000\012x\003\000\012|\002\000\012|\003\000\012|\004\000\012|\005\000\012|\006\000\011`\001\000\004\196\001\000\004\192\001\000\012|\007\000\017\236\004\000\017\232\004\000\017\228\004\000\017\224\004\000\017\220\004\000\017\216\004\000\017\212\004\000\017\208\004\000\016\132\004\000\016\128\004\000\000D\001\000\002 \001\000\002t\001\000\002$\001\000\000h\001\000\017\236\005\000\017\232\005\000\017\228\005\000\017\224\005\000\017\220\005\000\017\216\005\000\017\212\005\000\017\208\005\000\016\132\005\000\016\128\005\000\002\024\001\000\017\236\006\000\017\232\006\000\017\228\006\000\017\224\006\000\017\220\006\000\017\216\006\000\017\212\006\000\017\208\006\000\016\132\006\000\016\128\006\000\017\220\007\000\017\216\007\000\017\212\007\000\017\208\007\000\016\128\007\000\017\212\b\000\017\208\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\017\212\t\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\016\128\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\b\000\017\220\001\000\017\216\b\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\220\t\000\017\216\t\000\016\140\002\000\016\136\002\000\017\252\003\000\017\248\003\000\017\244\003\000\017\240\003\000\016\136\003\000\017\244\004\000\017\240\004\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\017\244\005\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\016\136\004\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\004\000\017\252\001\000\017\248\004\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\005\000\017\252\002\000\017\248\005\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\252\006\000\016\140\003\000\018\012\004\000\018\b\004\000\018\004\004\000\018\000\004\000\016\140\004\000\018\004\005\000\018\000\005\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\018\004\006\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\016\140\005\000\018\012\005\000\018\012\001\000\018\b\005\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\006\000\018\012\002\000\018\b\006\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018\012\007\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\019\012\001\000\019\b\001\000\000\136\001\000\000|\001\000\000p\001\000\019\012\002\000\019@\001\000\019<\001\000\012\216\001\000\012\216\002\000\012\216\003\000\000\136\001\000\000|\001\000\000p\001\000\000\136\002\000\000\136\003\000\000|\002\000\000p\002\000\019\012\003\000\012\224\001\000\012\220\001\000\012\224\002\000\012\220\002\000\019@\001\000\019<\001\000\012\224\003\000\012\224\004\000\012\224\005\000\000\136\001\000\000|\001\000\000p\001\000\012\220\003\000\000\136\001\000\000|\001\000\000p\001\000\012\212\001\000\000\136\001\000\000|\001\000\000p\001\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\220\n\000\016\140\003\000\017\236\007\000\017\232\007\000\017\228\007\000\017\224\007\000\016\132\007\000\017\236\b\000\017\232\b\000\017\228\b\000\017\224\b\000\016\132\b\000\017\228\t\000\017\224\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\017\228\n\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\016\132\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\t\000\017\236\001\000\017\232\t\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\236\n\000\017\232\n\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\236\011\000\016\140\003\000\002\024\002\000\002\020\001\000\000P\001\000\000L\001\000\000H\001\000\000P\002\000\000L\002\000\000H\002\000\000H\003\000\000H\004\000\000P\003\000\000L\003\000\000P\004\000\000P\005\000\011`\001\000\004\196\001\000\004\192\001\000\000P\006\000\000P\007\000\000L\004\000\000L\005\000\000L\006\000\011`\001\000\004\196\001\000\004\192\001\000\000L\007\000\000L\b\000\012\248\001\000\012\244\001\000\012\240\001\000\002(\002\000\002\024\001\000\002(\003\000\012\248\002\000\012\244\002\000\012\240\002\000\012\248\003\000\000\152\001\000\012\248\004\000\012\248\005\000\011`\001\000\004\196\001\000\004\192\001\000\012\244\003\000\000\148\001\000\012\244\004\000\000\148\002\000\012\244\005\000\012\244\006\000\011`\001\000\004\196\001\000\004\192\001\000\012\240\003\000\002\024\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\012\228\003\000\002\024\001\000\016\172\003\000\016\168\003\000\016\164\003\000\016\160\003\000\016\156\003\000\016\152\003\000\016\148\003\000\016\144\003\000\0164\003\000\0160\003\000\012|\001\000\012x\001\000\016\172\004\000\016\168\004\000\016\164\004\000\016\160\004\000\016\156\004\000\016\152\004\000\016\148\004\000\016\144\004\000\0164\004\000\0160\004\000\016\172\005\000\016\168\005\000\016\164\005\000\016\160\005\000\016\156\005\000\016\152\005\000\016\148\005\000\016\144\005\000\0164\005\000\0160\005\000\002\024\001\000\016\172\006\000\016\168\006\000\016\164\006\000\016\160\006\000\016\156\006\000\016\152\006\000\016\148\006\000\016\144\006\000\0164\006\000\0160\006\000\016\156\007\000\016\152\007\000\016\148\007\000\016\144\007\000\0160\007\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\148\b\000\016\144\b\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\148\t\000\016|\002\000\0160\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\156\b\000\016\152\b\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\156\t\000\016\152\t\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\156\n\000\016\140\003\000\016\172\007\000\016\168\007\000\016\164\007\000\016\160\007\000\0164\007\000\016\172\b\000\016\168\b\000\016\164\b\000\016\160\b\000\0164\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\164\t\000\016\160\t\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\164\n\000\016|\002\000\0164\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\172\t\000\016\168\t\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\172\n\000\016\168\n\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\172\011\000\016\140\003\000\016\204\002\000\016\200\002\000\016\196\002\000\016\192\002\000\016\188\002\000\016\184\002\000\016\180\002\000\016\176\002\000\016<\002\000\0168\002\000\016\188\003\000\016\184\003\000\016\180\003\000\016\176\003\000\0168\003\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\180\004\000\016\176\004\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\180\005\000\016|\002\000\0168\004\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\188\004\000\016\184\004\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\188\005\000\016\184\005\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\188\006\000\016\140\003\000\016\204\003\000\016\200\003\000\016\196\003\000\016\192\003\000\016<\003\000\016\204\004\000\016\200\004\000\016\196\004\000\016\192\004\000\016<\004\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\196\005\000\016\192\005\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\196\006\000\016|\002\000\016<\005\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\204\005\000\016\200\005\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\204\006\000\016\200\006\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\204\007\000\016\140\003\000\017\012\002\000\017\b\002\000\017\004\002\000\017\000\002\000\016\252\002\000\016\248\002\000\016\244\002\000\016\240\002\000\016\236\002\000\016\232\002\000\016\228\002\000\016\224\002\000\016\220\002\000\016\216\002\000\016\212\002\000\016\208\002\000\016L\002\000\016H\002\000\016D\002\000\016@\002\000\016\236\003\000\016\232\003\000\016\228\003\000\016\224\003\000\016\220\003\000\016\216\003\000\016\212\003\000\016\208\003\000\016D\003\000\016@\003\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\016\236\004\000\016\232\004\000\016\228\004\000\016\224\004\000\016\220\004\000\016\216\004\000\016\212\004\000\016\208\004\000\016D\004\000\016@\004\000\012|\001\000\012x\001\000\016\236\005\000\016\232\005\000\016\228\005\000\016\224\005\000\016\220\005\000\016\216\005\000\016\212\005\000\016\208\005\000\016D\005\000\016@\005\000\016\236\006\000\016\232\006\000\016\228\006\000\016\224\006\000\016\220\006\000\016\216\006\000\016\212\006\000\016\208\006\000\016D\006\000\016@\006\000\002\024\001\000\016\236\007\000\016\232\007\000\016\228\007\000\016\224\007\000\016\220\007\000\016\216\007\000\016\212\007\000\016\208\007\000\016D\007\000\016@\007\000\016\220\b\000\016\216\b\000\016\212\b\000\016\208\b\000\016@\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\212\t\000\016\208\t\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\212\n\000\016|\002\000\016@\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\220\t\000\016\216\t\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\220\n\000\016\216\n\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\220\011\000\016\140\003\000\016\236\b\000\016\232\b\000\016\228\b\000\016\224\b\000\016D\b\000\016\236\t\000\016\232\t\000\016\228\t\000\016\224\t\000\016D\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\228\n\000\016\224\n\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\228\011\000\016|\002\000\016D\n\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\236\n\000\016\232\n\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\236\011\000\016\232\011\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\236\012\000\016\140\003\000\017\012\003\000\017\b\003\000\017\004\003\000\017\000\003\000\016\252\003\000\016\248\003\000\016\244\003\000\016\240\003\000\016L\003\000\016H\003\000\016\252\004\000\016\248\004\000\016\244\004\000\016\240\004\000\016H\004\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016\244\005\000\016\240\005\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016\244\006\000\016|\002\000\016H\005\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\252\005\000\016\248\005\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\252\006\000\016\248\006\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\252\007\000\016\140\003\000\017\012\004\000\017\b\004\000\017\004\004\000\017\000\004\000\016L\004\000\017\012\005\000\017\b\005\000\017\004\005\000\017\000\005\000\016L\005\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\004\006\000\017\000\006\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\004\007\000\016|\002\000\016L\006\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\012\006\000\017\b\006\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\012\007\000\017\b\007\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\012\b\000\016\140\003\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\204\004\000\017\200\004\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\204\005\000\017\200\005\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\204\006\000\016\140\003\000\016x\003\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\188\003\000\017\184\003\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\188\004\000\017\184\004\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\188\005\000\016\140\003\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\002(\002\000\002\024\001\000\000\144\003\000\002P\004\000\000\136\001\000\000|\001\000\000p\001\000\002P\005\000\012\224\001\000\012\220\001\000\002P\006\000\002P\007\000\002L\002\000\000\136\001\000\000|\001\000\000p\001\000\002L\003\000\012\224\001\000\012\220\001\000\002L\004\000\002L\005\000\0024\002\000\b\188\001\000\b\188\002\000\r\020\001\000\012\164\001\000\012\168\001\000\0024\003\000\0024\004\000\012\168\002\000\012\168\003\000\018\188\001\000\018\184\001\000\018\184\002\000\t\228\001\000\018\184\003\000\018\184\004\000\012\144\001\000\012\144\002\000\012\144\003\000\000P\001\000\000L\001\000\000H\001\000\018\184\005\000\012\140\001\000\000P\001\000\000L\001\000\000H\001\000\018\188\002\000\r\024\001\000\002\024\001\000\r\020\001\000\0020\002\000\0020\003\000\0028\002\000\0028\003\000\012\168\001\000\0028\004\000\0028\005\000\012\168\001\000\002<\003\000\002<\004\000\012\168\001\000\002H\003\000\002D\003\000\002D\004\000\002H\004\000\012l\001\000\002H\005\000\002H\006\000\012l\002\000\012h\001\000\019\024\002\000\002\024\001\000\019\020\001\000\019\016\001\000\019\020\002\000\019\016\002\000\002\024\001\000\019\020\003\000\019\020\004\000\002\024\001\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\012\012\006\000\012\b\006\000\012\004\006\000\012\000\006\000\011\252\006\000\012\012\007\000\012\012\001\000\012\b\007\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\012\012\b\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\012\012\t\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\012\012\n\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\012\012\011\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\012\b\b\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\248\003\000\011\244\003\000\011\240\003\000\011\236\003\000\011\232\003\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\004\000\011\248\001\000\011\244\004\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\248\005\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\248\006\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\248\007\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\248\b\000\011\248\002\000\011\244\005\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\019\172\001\000\002\232\001\000\014`\001\000\014P\001\000\014P\002\000\014P\003\000\001\016\001\000\001\012\001\000\015\028\001\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\012$\007\000\005\196\007\000\005\192\007\000\005\188\007\000\005\184\007\000\012$\001\000\012 \001\000\005\196\b\000\005\196\001\000\005\192\b\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\012$\002\000\005\196\t\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\012$\003\000\005\196\n\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\012$\004\000\005\196\011\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\012$\005\000\005\196\012\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\002\024\001\000\012$\006\000\005\196\r\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\012 \002\000\005\192\t\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012 \003\000\005\180\003\000\005\176\003\000\005\172\003\000\005\168\003\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\004\000\005\180\001\000\005\176\004\000\005\176\001\000\005\172\001\000\005\168\001\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\180\005\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\005\180\006\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\005\180\007\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\005\180\b\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\005\180\t\000\012 \002\000\005\180\002\000\005\176\005\000\005\176\002\000\005\172\002\000\005\168\002\000\r\224\001\000\r\220\001\000\r\204\001\000\r\200\001\000\r\220\002\000\r\200\002\000\r\204\002\000\r\224\002\000\r\216\001\000\r\212\001\000\r\196\001\000\r\192\001\000\r\212\002\000\r\192\002\000\r\196\002\000\r\216\002\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\001\236\001\000\001\204\001\000\r\224\001\000\r\220\001\000\r\204\001\000\r\200\001\000\t\168\001\000\015\024\002\000\015\020\002\000\015\024\003\000\015\020\003\000\015\024\004\000\015\020\004\000\bT\001\000\bP\001\000\015\024\005\000\015\020\005\000\015\020\006\000\015\024\006\000\bd\001\000\bd\002\000\bd\003\000\bd\004\000\bL\001\000\b,\001\000\b,\002\000\018\140\001\000\018\136\001\000\004\140\001\000\004\136\001\000\018\140\002\000\018\136\002\000\004\140\002\000\004\136\002\000\018\140\003\000\018\136\003\000\004\140\003\000\004\136\003\000\018\140\004\000\004\140\004\000\018\140\005\000\004\140\005\000\019@\001\000\004\140\006\000\004\140\007\000\004\140\b\000\012D\001\000\004\140\t\000\011,\001\000\011,\002\000\007,\001\000\007(\001\000\004\180\001\000\000@\001\000\000<\001\000\tP\001\000\tL\001\000\tP\002\000\tP\003\000\tP\004\000\n|\001\000\nx\001\000\nt\001\000\np\001\000\nl\001\000\nh\001\000\nd\001\000\n`\001\000\n\\\001\000\nX\001\000\n|\002\000\nx\002\000\nt\002\000\np\002\000\nl\002\000\nh\002\000\nd\002\000\n`\002\000\n|\003\000\nx\003\000\nt\003\000\np\003\000\nl\003\000\nh\003\000\nd\003\000\n`\003\000\004$\001\000\014D\001\000\014D\002\000\014D\003\000\007\244\001\000\b\000\001\000\007\248\001\000\b\000\002\000\007\248\002\000\b\000\003\000\007\248\003\000\b\020\001\000\001\b\001\000\014D\004\000\018\180\001\000\018\176\001\000\002\160\001\000\002\160\002\000\002\160\003\000\019\128\001\000\014L\001\000\014H\001\000\014\020\001\000\014\016\001\000\014\012\001\000\001\236\001\000\001\204\001\000\014`\001\000\t\\\001\000\015\000\001\000\014\252\001\000\014\220\001\000\014\216\001\000\004\028\001\000\019\132\001\000\003\196\001\000\003\192\001\000\003\196\002\000\003\192\002\000\003\180\001\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\012<\007\000\006\020\007\000\006\016\007\000\006\012\007\000\006\b\007\000\012<\001\000\0128\001\000\006\020\b\000\006\020\001\000\006\016\b\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\012<\002\000\006\020\t\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\012<\003\000\006\020\n\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\012<\004\000\006\020\011\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\012<\005\000\006\020\012\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\002\024\001\000\012<\006\000\006\020\r\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\0128\002\000\006\016\t\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\0128\003\000\006\004\003\000\006\000\003\000\005\252\003\000\005\248\003\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\004\000\006\004\001\000\006\000\004\000\006\000\001\000\005\252\001\000\005\248\001\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\006\004\005\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\006\004\006\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\006\004\007\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\006\004\b\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\006\004\t\000\0128\002\000\006\004\002\000\006\000\005\000\006\000\002\000\005\252\002\000\005\248\002\000\r\248\001\000\r\244\001\000\r\240\001\000\r\236\001\000\r\232\001\000\001\200\001\000\001\200\002\000\r\228\001\000\005\012\001\000\r\228\002\000\r\228\003\000\007l\001\000\007h\001\000\007d\001\000\007`\001\000\n\024\001\000\n\024\002\000\002\024\001\000\007l\002\000\007h\002\000\007d\002\000\007`\002\000\n4\001\000\n\228\001\000\n\228\002\000\n\228\003\000\019\164\001\000\0150\001\000\019@\001\000\0150\002\000\b\016\001\000\007\240\001\000\007\192\001\000\007\240\002\000\007\192\002\000\019p\001\000\019t\001\000\r\252\001\000\012\028\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\015,\001\000\015,\002\000\019\176\001\000\001\208\001\000\019\168\001\000\r\208\001\000\015\004\001\000\019\136\001\000\r\188\001\000\015\b\001\000\012\028\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012\028\003\000\005\164\003\000\005\160\003\000\005\156\003\000\005\152\003\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\164\004\000\005\160\004\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\164\005\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\005\164\006\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\005\164\007\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\005\164\b\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\005\164\t\000\012 \002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\005\160\005\000\012\028\001\000\005\164\001\000\005\160\001\000\005\156\004\000\005\156\001\000\005\152\001\000\012\028\002\000\005\164\002\000\005\160\002\000\005\156\005\000\005\156\002\000\005\152\002\000\015\016\001\000\015 \001\000\r\184\001\000\015 \002\000\r\224\001\000\r\220\001\000\r\216\001\000\r\212\001\000\015 \003\000\015L\001\000\015(\001\000\015@\001\000\015<\001\000\0158\001\000\0154\001\000\b\000\001\000\001\232\001\000\001\228\001\000\015@\002\000\015<\002\000\0158\002\000\0154\002\000\b\000\002\000\001\232\002\000\015@\003\000\015<\003\000\001\232\003\000\015<\004\000\n\208\001\000\n\208\002\000\n\208\003\000\n\212\001\000\n\204\001\000\n\192\001\000\012\024\001\000\n\208\004\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012\024\002\000\005\148\002\000\005\144\002\000\005\140\002\000\005\136\002\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\148\003\000\005\144\003\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\148\004\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\005\148\005\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\005\148\006\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\005\148\007\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\005\148\b\000\012 \002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\005\144\004\000\012\028\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\005\140\003\000\012\028\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\005\140\004\000\015D\001\000\015$\001\000\001\240\001\000\012\024\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\003\000\005\136\001\000\n\184\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\003\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\200\002\000\012\024\001\000\n\200\003\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\196\002\000\n\196\003\000\n\188\002\000\015(\001\000\n\224\001\000\012\024\001\000\n\224\002\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012\020\001\000\012\016\001\000\005\132\001\000\005\128\001\000\005|\001\000\005x\001\000\012\020\002\000\005\132\002\000\005\128\002\000\005|\002\000\005x\002\000\012$\001\000\012 \001\000\005\196\001\000\005\192\001\000\005\188\001\000\005\184\001\000\005\180\001\000\005\176\001\000\005\172\001\000\005\168\001\000\005\132\003\000\005\128\003\000\012$\002\000\005\196\002\000\005\192\002\000\005\188\002\000\005\184\002\000\005\132\004\000\012$\003\000\005\196\003\000\005\192\003\000\005\188\003\000\005\184\003\000\005\132\005\000\012$\004\000\005\196\004\000\005\192\004\000\005\188\004\000\005\184\004\000\005\132\006\000\012$\005\000\005\196\005\000\005\192\005\000\005\188\005\000\005\184\005\000\005\132\007\000\002\024\001\000\012$\006\000\005\196\006\000\005\192\006\000\005\188\006\000\005\184\006\000\005\132\b\000\012 \002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\005\128\004\000\012\028\001\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\005|\003\000\012\028\002\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\005|\004\000\012\020\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\005x\003\000\015$\001\000\n\220\001\000\n\216\001\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\n\220\002\000\001\236\001\000\001\204\001\000\n\220\003\000\n\220\004\000\n\220\005\000\n\220\006\000\r\216\001\000\r\212\001\000\r\196\001\000\r\192\001\000\t\180\001\000\001\236\002\000\001\236\003\000\015H\002\000\015\012\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\015\012\003\000\015H\003\000\015H\004\000\002\024\001\000\015H\005\000\012\024\001\000\n\216\002\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\232\004\000\001\232\005\000\015@\004\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\015@\005\000\0158\003\000\r\232\001\000\0158\004\000\r\232\002\000\r\232\003\000\rH\001\000\rD\001\000\r@\001\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\rH\002\000\rD\002\000\rH\003\000\0154\003\000\012\028\004\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\152\004\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\r\252\002\000\n\204\001\000\r\252\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\228\004\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\n4\002\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\007l\003\000\007h\003\000\007d\003\000\007`\003\000\007l\004\000\007h\004\000\007d\004\000\007h\005\000\t\248\001\000\007h\006\000\007l\005\000\r\240\002\000\r\236\002\000\r\236\003\000\r\248\002\000\r\244\002\000\r\244\003\000\0124\001\000\005\252\004\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\0124\002\000\005\252\005\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\0124\003\000\005\244\003\000\005\240\003\000\005\236\003\000\005\232\003\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\244\004\000\005\240\004\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\244\005\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\005\244\006\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\005\244\007\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\005\244\b\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\005\244\t\000\0128\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\005\240\005\000\0124\001\000\005\244\001\000\005\240\001\000\005\236\004\000\005\236\001\000\005\232\001\000\0124\002\000\005\244\002\000\005\240\002\000\005\236\005\000\005\236\002\000\005\232\002\000\0124\004\000\n\252\001\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\005\232\004\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\0120\002\000\005\228\002\000\005\224\002\000\005\220\002\000\005\216\002\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\228\003\000\005\224\003\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\228\004\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\005\228\005\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\005\228\006\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\005\228\007\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\005\228\b\000\0128\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\005\224\004\000\0124\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\005\220\003\000\0124\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\005\220\004\000\0120\003\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\003\000\005\216\001\000\n\232\002\000\012\024\001\000\n\232\003\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\248\002\000\012\024\001\000\n\248\003\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\244\002\000\n\244\003\000\n\236\002\000\n\240\001\000\012,\001\000\012(\001\000\005\212\001\000\005\208\001\000\005\204\001\000\005\200\001\000\012,\002\000\005\212\002\000\005\208\002\000\005\204\002\000\005\200\002\000\012<\001\000\0128\001\000\006\020\001\000\006\016\001\000\006\012\001\000\006\b\001\000\006\004\001\000\006\000\001\000\005\252\001\000\005\248\001\000\005\212\003\000\005\208\003\000\012<\002\000\006\020\002\000\006\016\002\000\006\012\002\000\006\b\002\000\005\212\004\000\012<\003\000\006\020\003\000\006\016\003\000\006\012\003\000\006\b\003\000\005\212\005\000\012<\004\000\006\020\004\000\006\016\004\000\006\012\004\000\006\b\004\000\005\212\006\000\012<\005\000\006\020\005\000\006\016\005\000\006\012\005\000\006\b\005\000\005\212\007\000\002\024\001\000\012<\006\000\006\020\006\000\006\016\006\000\006\012\006\000\006\b\006\000\005\212\b\000\0128\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\005\208\004\000\0124\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\005\204\003\000\0124\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\005\204\004\000\012,\003\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\005\200\003\000\0128\004\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\005\248\004\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\0124\001\000\006\012\b\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\0124\002\000\006\012\t\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\012<\b\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\006\b\b\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\0128\002\000\006\004\002\000\006\000\002\000\005\252\002\000\005\248\002\000\0124\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\0124\002\000\005\244\002\000\005\240\002\000\005\236\002\000\005\232\002\000\015\004\001\000\006\188\001\000\006\184\001\000\005H\001\000\005D\001\000\005@\001\000\005D\002\000\005@\002\000\005\b\001\000\005\004\001\000\005\000\001\000\004\252\001\000\004\248\001\000\004\244\001\000\005\b\002\000\005\004\002\000\005\000\002\000\004\252\002\000\012|\001\000\012x\001\000\005\b\003\000\005\004\003\000\005\b\004\000\005\004\004\000\005\b\005\000\005\004\005\000\002\024\001\000\000d\001\000\000d\002\000\005\b\006\000\005\000\003\000\004\252\003\000\002\024\001\000\005\000\004\000\004\248\002\000\005D\003\000\005D\004\000\005D\005\000\005@\003\000\005@\004\000\005H\002\000\0050\001\000\005,\001\000\005(\001\000\005,\002\000\005(\002\000\005,\003\000\005,\004\000\n<\001\000\006l\001\000\002\156\001\000\002\152\001\000\002\148\001\000\002\144\001\000\002\156\002\000\002\152\002\000\002\156\003\000\002\156\004\000\002\156\005\000\b0\001\000\b0\002\000\004X\001\000\004T\001\000\004T\002\000\004X\002\000\004X\003\000\bt\001\000\bh\001\000\bt\002\000\bt\003\000\b`\001\000\b`\002\000\012\\\001\000\004\\\001\000\012\\\002\000\b`\003\000\b`\004\000\bp\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b`\005\000\b\132\002\000\b|\002\000\019\220\001\000\019\216\001\000\019\220\002\000\019\216\002\000\019\220\003\000\019\216\003\000\019\244\001\000\019\240\001\000\019\244\002\000\019\220\004\000\019\220\005\000\000P\001\000\000L\001\000\000H\001\000\019\216\004\000\019\216\005\000\000P\001\000\000L\001\000\000H\001\000\019\216\006\000\012D\001\000\012D\002\000\012D\003\000\002\024\001\000\012D\004\000\012D\005\000\002\024\001\000\0194\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\236\002\000\019\232\002\000\019\236\003\000\019\232\003\000\019\232\004\000\019\232\005\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\bx\002\000\b\132\001\000\b|\001\000\bx\003\000\bx\001\000\bl\001\000\bl\002\000\b\016\001\000\007\224\001\000\007\192\001\000\007\224\002\000\007\192\002\000\007\192\003\000\004\144\001\000\007\224\003\000\b\144\001\000\007\220\001\000\b\128\001\000\019\236\004\000\019\236\005\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\019\228\002\000\019\224\002\000\b\000\001\000\019\224\003\000\019\224\004\000\b\016\001\000\007\192\001\000\b\000\002\000\019\228\003\000\019\228\004\000\b\016\001\000\007\192\001\000\012\156\001\000\012\160\001\000\b|\003\000\012\160\002\000\012\160\003\000\b\132\003\000\b\016\001\000\007\192\001\000\012X\001\000\b\132\001\000\b|\001\000\bx\001\000\bt\004\000\bl\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\bh\002\000\bh\003\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\004X\004\000\004X\005\000\b0\003\000\b0\004\000\b4\001\000\bD\001\000\b@\001\000\b8\001\000\b0\005\000\n|\001\000\nx\001\000\nt\001\000\np\001\000\nl\001\000\nh\001\000\nd\001\000\n`\001\000\n\\\001\000\nX\001\000\bD\002\000\bD\003\000\n\\\002\000\nX\002\000\bD\001\000\b@\001\000\b8\001\000\n\\\003\000\nX\003\000\nX\004\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nX\005\000\b@\002\000\b8\002\000\b<\001\000\b\000\001\000\bH\001\000\bD\001\000\b@\001\000\b8\001\000\002\156\006\000\002\156\007\000\014\248\001\000\014\244\001\000\014\160\001\000\014\156\001\000\014\240\001\000\014\236\001\000\014\172\001\000\001\200\001\000\014l\001\000\014h\001\000\r<\001\000\r8\001\000\r4\001\000\n$\001\000\n \001\000\014\148\001\000\019\132\001\000\007\244\001\000\014\212\001\000\002\204\001\000\002\204\002\000\002\204\003\000\014\b\001\000\014\004\001\000\014\000\001\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\014@\001\000\014<\001\000\014@\002\000\014<\002\000\014@\003\000\014<\003\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\002\188\002\000\002\184\002\000\002\180\002\000\002\176\002\000\002\172\002\000\002\168\002\000\002\188\003\000\002\184\003\000\002\180\003\000\002\176\003\000\002\172\003\000\002\168\003\000\r\\\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\r\\\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\r\\\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\132\001\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\007x\001\000\007t\001\000\007p\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\007t\002\000\002\224\001\000\002\224\002\000\002\224\003\000\005<\001\000\0058\001\000\0054\001\000\011\004\001\000\0058\002\000\0054\002\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\006\152\001\000\001\236\001\000\001\204\001\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\006\180\001\000\001\236\001\000\001\204\001\000\015H\002\000\015\012\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\015H\003\000\006\176\002\000\006\172\002\000\012|\001\000\012x\001\000\006\176\003\000\006\176\004\000\006\176\005\000\002\024\001\000\006\176\006\000\015H\004\000\006\172\003\000\002\024\001\000\006\172\004\000\006\168\002\000\006\180\002\000\006\180\003\000\006\152\002\000\006\152\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\148\001\000\006\144\001\000\006\140\001\000\006\136\001\000\006\132\001\000\006\128\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\006\148\002\000\006\144\002\000\006\140\002\000\006\136\002\000\012|\001\000\012x\001\000\006\148\003\000\006\144\003\000\006\148\004\000\006\144\004\000\006\148\005\000\006\144\005\000\002\024\001\000\006\148\006\000\006\140\003\000\006\136\003\000\002\024\001\000\006\140\004\000\006\132\002\000\0058\003\000\0058\004\000\0058\005\000\0058\006\000\0054\003\000\0054\004\000\0054\005\000\011\000\001\000\005<\002\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\005t\001\000\005h\001\000\005d\001\000\005`\001\000\0040\001\000\004,\001\000\001\236\001\000\001\204\001\000\0040\002\000\004,\002\000\b\196\001\000\b\196\002\000\b\196\003\000\011`\001\000\b\196\004\000\004\196\001\000\004\192\001\000\b\196\005\000\b\192\001\000\0040\003\000\0040\004\000\011`\001\000\004\196\001\000\004\192\001\000\0040\005\000\0040\006\000\b\200\001\000\004,\003\000\004,\004\000\t\000\001\000\b\252\001\000\b\192\001\000\t\000\002\000\015H\002\000\015\012\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\005t\002\000\015H\003\000\006\176\002\000\006\172\002\000\005t\003\000\012|\001\000\012x\001\000\006\176\003\000\005t\004\000\006\176\004\000\005t\005\000\006\176\005\000\005t\006\000\002\024\001\000\005t\007\000\005h\002\000\005`\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\006\156\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\006\176\002\000\006\172\002\000\006\164\002\000\006\160\002\000\012|\001\000\012x\001\000\006\176\003\000\006\164\003\000\006\176\004\000\006\164\004\000\006\176\005\000\006\164\005\000\002\024\001\000\006\172\003\000\006\160\003\000\002\024\001\000\005h\003\000\005h\004\000\005`\003\000\005`\004\000\005d\002\000\005d\003\000\005p\001\000\005l\001\000\005X\001\000\005T\001\000\005P\001\000\005L\001\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\005p\002\000\005l\002\000\005X\002\000\005T\002\000\005P\002\000\001\236\001\000\001\204\001\000\015H\002\000\015\012\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\005l\003\000\015H\003\000\006\176\002\000\006\172\002\000\005l\004\000\012|\001\000\012x\001\000\006\176\003\000\005l\005\000\006\176\004\000\005l\006\000\006\176\005\000\005l\007\000\002\024\001\000\005l\b\000\005p\003\000\005X\003\000\005T\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\006\176\001\000\006\172\001\000\006\168\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\005p\004\000\005X\004\000\005X\005\000\006\176\002\000\006\172\002\000\005p\005\000\012|\001\000\012x\001\000\006\176\003\000\005p\006\000\006\176\004\000\005p\007\000\006\176\005\000\005p\b\000\002\024\001\000\005p\t\000\006\172\003\000\002\024\001\000\005T\004\000\005T\005\000\005P\003\000\005P\004\000\005L\002\000\005\\\001\000\012L\001\000\0048\001\000\0044\001\000\012L\002\000\002\224\004\000\n\016\001\000\n\016\002\000\000\136\001\000\000|\001\000\000p\001\000\002\224\005\000\002\224\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\132\001\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\132\002\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\132\003\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\132\004\000\011\208\005\000\011\204\005\000\011\200\005\000\011\196\005\000\011\192\005\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\208\006\000\011\204\006\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\208\007\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\208\b\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\208\t\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\208\n\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\204\007\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\011\200\006\000\014d\001\000\001\192\001\000\014T\001\000\b\004\001\000\001\196\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\014d\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\014\128\002\000\014\128\003\000\014\132\002\000\014\132\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\014|\002\000\014|\003\000\0144\002\000\014,\002\000\014$\002\000\014$\003\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\r0\005\000\r(\005\000\002\196\001\000\002\196\002\000\002\196\003\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\002\196\004\000\002\196\005\000\004(\001\000\002\200\001\000\002\200\002\000\002\200\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\200\004\000\014p\002\000\0148\002\000\0140\002\000\014(\002\000\014 \002\000\014\028\002\000\014\024\002\000\014\024\003\000\002\212\001\000\002\208\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\212\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\212\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\212\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\212\005\000\012\136\002\000\012\136\003\000\012\128\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\002\228\001\000\002\140\001\000\005\028\001\000\005\024\001\000\005\028\002\000\005\028\003\000\005\028\004\000\005\028\005\000\005\024\002\000\005 \001\000\005 \002\000\005$\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\005$\002\000\014\\\001\000\014\228\001\000\014\224\001\000\014\208\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\168\001\000\014\164\001\000\014\152\001\000\014\144\001\000\014x\001\000\014t\001\000\b\b\001\000\b\000\001\000\001\232\001\000\001\228\001\000\014\228\002\000\014\224\002\000\014\208\002\000\014\204\002\000\014\200\002\000\014\196\002\000\014\192\002\000\014\188\002\000\014\184\002\000\014\180\002\000\014\176\002\000\014\168\002\000\014\164\002\000\014\152\002\000\014\144\002\000\014x\002\000\014t\002\000\b\b\002\000\b\000\002\000\001\232\002\000\019\128\001\000\014\208\003\000\014\144\003\000\014t\003\000\001\232\003\000\014\144\004\000\t\172\001\000\000@\001\000\t\168\001\000\000<\001\000\014\208\004\000\014\208\005\000\014\208\006\000\014\208\007\000\bD\001\000\b@\001\000\b8\001\000\014\208\b\000\014\208\t\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\014\208\n\000\018\180\001\000\t\184\001\000\018\176\001\000\t\180\001\000\t`\001\000\003\180\001\000\n\212\001\000\006\192\001\000\006\192\002\000\006\192\003\000\002\024\001\000\006\192\004\000\006\192\005\000\011\168\001\000\011\164\001\000\011\160\001\000\011\156\001\000\011\152\001\000\002\236\001\000\011\168\002\000\011\164\002\000\011\160\002\000\011\156\002\000\011\152\002\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\168\003\000\011\164\003\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\168\004\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\168\005\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\168\006\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\168\007\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\164\004\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\011\160\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\160\004\000\011\228\003\000\011\224\003\000\011\220\003\000\011\216\003\000\011\212\003\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\228\004\000\011\224\004\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\228\005\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\228\006\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\228\007\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\228\b\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\224\005\000\011\228\001\000\011\224\001\000\011\220\004\000\011\220\001\000\011\216\001\000\011\212\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\005\000\011\220\002\000\011\216\002\000\011\212\002\000\019\140\001\000\014\136\001\000\014X\001\000\014\232\001\000\011\216\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\216\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\216\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\136\001\000\011\216\007\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\\\001\000\002\244\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\244\002\000\006p\001\000\003\176\001\000\003\176\002\000\003\176\003\000\rX\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003d\002\000\003`\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003d\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003d\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003d\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003d\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\003\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003L\002\000\003H\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003L\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003L\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003L\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003L\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\003\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003D\002\000\003@\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003D\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003D\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003D\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003D\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\003\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003<\002\000\0038\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003<\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003<\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003<\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003<\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\003\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003l\002\000\003h\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003l\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003l\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003l\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003l\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\003\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\140\002\000\003\136\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\140\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\140\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\140\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\140\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\003\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003,\002\000\003(\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003,\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003,\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003,\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003,\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\003\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\\\002\000\003X\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\\\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\\\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\\\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\\\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\003\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003T\002\000\003P\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003T\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003T\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003T\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003T\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\003\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003|\002\000\003x\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003|\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003|\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003|\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003|\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\003\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0034\002\000\0030\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\0034\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\0034\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\0034\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\0034\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\003\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003$\002\000\003 \002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003$\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003$\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003$\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003$\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \003\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\028\002\000\003\024\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\028\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\028\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\028\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\028\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\003\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\020\002\000\003\016\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\020\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\020\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\020\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\020\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\003\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\252\002\000\002\248\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\252\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\252\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\252\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\252\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\003\000\002\248\001\000\003\132\002\000\003\128\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\132\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\132\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\132\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\132\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\003\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003t\002\000\003p\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003t\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003t\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003t\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003t\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\003\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\011\188\002\000\011\184\002\000\011\180\002\000\011\176\002\000\011\172\002\000\012\012\001\000\012\b\001\000\012\004\001\000\012\000\001\000\011\252\001\000\011\248\001\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\188\003\000\011\184\003\000\012\012\002\000\012\b\002\000\012\004\002\000\012\000\002\000\011\252\002\000\011\188\004\000\012\012\003\000\012\b\003\000\012\004\003\000\012\000\003\000\011\252\003\000\011\188\005\000\012\012\004\000\012\b\004\000\012\004\004\000\012\000\004\000\011\252\004\000\011\188\006\000\012\012\005\000\012\b\005\000\012\004\005\000\012\000\005\000\011\252\005\000\011\188\007\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\184\004\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\011\180\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\180\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\176\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\176\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\011\176\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\011\176\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\003\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\172\002\000\003\168\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\172\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\172\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\172\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\172\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\003\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\188\002\000\003\184\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\188\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\188\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\188\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\188\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\003\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\148\002\000\003\144\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\148\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\148\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\148\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\148\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\003\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\012\002\000\003\b\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\012\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\012\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\012\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\012\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\003\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\004\002\000\003\000\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\004\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\004\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\004\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\004\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\003\000\003\000\001\000\002\252\001\000\002\248\001\000\003\156\002\000\003\152\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\156\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\156\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\156\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\156\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\003\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\003\164\002\000\003\160\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\164\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\164\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\164\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\164\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\003\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\004\024\002\000\014X\001\000\002\240\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\240\002\000\002\220\001\000\002\216\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\220\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\220\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\220\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\220\005\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\216\002\000\004H\002\000\004D\002\000\004@\002\000\004H\003\000\004H\004\000\004H\005\000\004D\003\000\000T\001\000\000T\002\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\006h\001\000\001\236\001\000\001\204\001\000\015\004\001\000\006h\002\000\006h\003\000\006h\004\000\016(\001\000\016(\002\000\006h\005\000\016,\001\000\nD\001\000\016,\002\000\016,\003\000\002\136\001\000\016,\004\000\012H\001\000\015\004\001\000\006P\001\000\006L\001\000\006@\001\000\006<\001\000\006,\001\000\006(\001\000\006$\001\000\006 \001\000\006\028\001\000\019\020\001\000\019\016\001\000\006P\002\000\006L\002\000\006@\002\000\006<\002\000\006P\003\000\006L\003\000\006P\004\000\006L\004\000\006P\005\000\006L\005\000\006P\006\000\006L\006\000\002\024\001\000\006L\007\000\006L\b\000\006P\007\000\006P\b\000\006P\t\000\012|\001\000\012x\001\000\006@\003\000\006<\003\000\006@\004\000\006<\004\000\006@\005\000\006<\005\000\002\024\001\000\006<\006\000\006<\007\000\006@\006\000\006@\007\000\006@\b\000\006(\002\000\006$\002\000\006$\003\000\006$\004\000\006(\003\000\006(\004\000\006(\005\000\006 \002\000\006,\002\000\006,\003\000\006,\004\000\015\b\001\000\006`\001\000\006\\\001\000\006X\001\000\006`\002\000\006\\\002\000\006`\003\000\006\\\003\000\002\024\001\000\006\\\004\000\006\\\005\000\006`\004\000\006`\005\000\006`\006\000\006X\002\000\006X\003\000\006X\004\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\006T\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\006T\002\000\006T\003\000\006d\001\000\006H\001\000\006D\001\000\0068\001\000\0064\001\000\0060\001\000\006d\002\000\006H\002\000\006D\002\000\0068\002\000\0064\002\000\0060\002\000\019\020\001\000\019\016\001\000\006H\003\000\006D\003\000\012|\001\000\012x\001\000\006H\004\000\006D\004\000\006H\005\000\006D\005\000\006H\006\000\006D\006\000\002\024\001\000\006D\007\000\006D\b\000\006H\007\000\006H\b\000\006H\t\000\0064\003\000\0060\003\000\0060\004\000\0060\005\000\0064\004\000\0064\005\000\0064\006\000\006d\003\000\0068\003\000\0068\004\000\0068\005\000\006\024\001\000\000T\003\000\007\020\001\000\007\020\002\000\000T\004\000\006p\002\000\011\212\004\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\156\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\156\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\011\156\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\011\156\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\011\152\003\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0120\001\000\n\248\001\000\n\244\001\000\n\236\001\000\n\232\001\000\006\196\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\006\196\002\000\006\196\003\000\006\204\001\000\003\180\002\000\003\180\003\000\003\180\004\000\006\204\002\000\006\204\003\000\006\200\001\000\014d\001\000\t\132\001\000\014t\004\000\014t\005\000\014\228\003\000\014\224\003\000\014\196\003\000\014\192\003\000\014\196\004\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\196\005\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\196\006\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\196\007\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\136\001\000\001\132\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\136\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\136\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\136\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\136\005\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\132\002\000\001\128\001\000\012\152\001\000\001\128\002\000\012\152\002\000\001\164\001\000\001\160\001\000\001\156\001\000\001\152\001\000\001\148\001\000\001\144\001\000\001\140\001\000\001\156\002\000\001\152\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\156\003\000\001\152\003\000\001\156\004\000\001\152\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\156\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\156\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\156\007\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\156\b\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\152\005\000\001\164\002\000\001\160\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\164\003\000\001\160\003\000\001\164\004\000\001\160\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\164\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\164\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\164\007\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\164\b\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\160\005\000\001\148\002\000\001\144\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\148\003\000\001\144\003\000\001\148\004\000\001\144\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\148\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\148\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\148\007\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\148\b\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\144\005\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\140\002\000\001\188\001\000\001\184\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\188\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\188\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\188\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\188\005\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\184\002\000\001\180\001\000\001\176\001\000\001\172\001\000\001\168\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\180\002\000\001\176\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\180\003\000\001\176\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\180\004\000\001\176\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\180\005\000\001\176\005\000\002T\001\000\002X\001\000\001\180\006\000\001\176\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\180\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\180\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\180\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\180\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\176\007\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\172\002\000\001\168\002\000\001\172\003\000\001\168\003\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\001\172\004\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\001\172\005\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\001\172\006\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\001\172\007\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\001\168\004\000\001\140\003\000\012\152\003\000\012\148\001\000\014\196\b\000\012T\001\000\014\196\t\000\012T\002\000\012P\001\000\014\228\004\000\014\224\004\000\014\224\005\000\014\192\004\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\r,\002\000\r \002\000\r,\003\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\192\005\000\012T\001\000\014\192\006\000\014\188\003\000\014\184\003\000\014\168\003\000\014\164\003\000\014\188\004\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\188\005\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\188\006\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\188\007\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\188\b\000\012T\001\000\014\188\t\000\014\168\004\000\014\164\004\000\014\164\005\000\014\184\004\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\184\005\000\012T\001\000\014\184\006\000\014\204\003\000\014\200\003\000\014\180\003\000\014\176\003\000\014\204\004\000\014\180\004\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\180\005\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\180\006\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\180\007\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\180\b\000\012T\001\000\014\180\t\000\014\200\004\000\014\200\005\000\014\176\004\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\176\005\000\012T\001\000\014\176\006\000\014x\003\000\014x\004\000\014x\005\000\014\152\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\\\001\000\011\\\002\000\011\\\003\000\rT\001\000\rP\001\000\rL\001\000\rT\002\000\rP\002\000\rL\002\000\rT\003\000\rP\003\000\rL\003\000\rT\004\000\rP\004\000\rT\005\000\011X\001\000\014\152\004\000\014\152\005\000\014\228\001\000\014\224\001\000\014\208\001\000\014\204\001\000\014\200\001\000\014\196\001\000\014\192\001\000\014\188\001\000\014\184\001\000\014\180\001\000\014\176\001\000\014\168\001\000\014\164\001\000\014\152\001\000\014\144\001\000\014x\001\000\014t\001\000\b\b\001\000\b\000\001\000\007\248\001\000\001\232\001\000\001\228\001\000\014\228\002\000\014\224\002\000\014\208\002\000\014\204\002\000\014\200\002\000\014\196\002\000\014\192\002\000\014\188\002\000\014\184\002\000\014\180\002\000\014\176\002\000\014\168\002\000\014\164\002\000\014\152\002\000\014\144\002\000\014x\002\000\014t\002\000\b\b\002\000\b\000\002\000\007\248\002\000\001\232\002\000\019\132\001\000\007\248\003\000\b\b\003\000\005\020\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\005\020\002\000\0144\002\000\014,\002\000\014$\002\000\004\012\002\000\004\b\002\000\003\252\002\000\003\248\002\000\003\236\002\000\003\232\002\000\014$\003\000\003\236\003\000\003\232\003\000\014$\004\000\003\236\004\000\003\232\004\000\014$\005\000\003\236\005\000\003\232\005\000\003\236\006\000\003\232\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\236\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\236\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\236\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\236\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\232\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0144\003\000\004\012\003\000\004\b\003\000\0144\004\000\004\012\004\000\004\b\004\000\0144\005\000\004\012\005\000\004\b\005\000\004\012\006\000\004\b\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\004\012\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\004\012\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\004\012\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\004\012\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\004\b\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014,\003\000\003\252\003\000\003\248\003\000\014,\004\000\003\252\004\000\003\248\004\000\014,\005\000\003\252\005\000\003\248\005\000\003\252\006\000\003\248\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\252\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\252\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\252\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\252\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\248\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014p\002\000\0148\002\000\0140\002\000\014(\002\000\014 \002\000\014\028\002\000\014\024\002\000\004\020\002\000\004\016\002\000\004\004\002\000\004\000\002\000\003\244\002\000\003\240\002\000\003\228\002\000\003\224\002\000\003\220\002\000\003\216\002\000\003\212\002\000\003\208\002\000\003\204\002\000\003\200\002\000\014\024\003\000\003\212\003\000\003\208\003\000\014\024\004\000\003\212\004\000\003\208\004\000\014\024\005\000\003\212\005\000\003\208\005\000\003\212\006\000\003\208\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\212\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\212\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\212\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\212\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\208\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014 \003\000\003\228\003\000\003\224\003\000\014 \004\000\003\228\004\000\003\224\004\000\014 \005\000\003\228\005\000\003\224\005\000\003\228\006\000\003\224\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\228\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\228\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\228\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\228\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\224\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\028\003\000\003\220\003\000\003\216\003\000\014\028\004\000\003\220\004\000\003\216\004\000\014\028\005\000\003\220\005\000\003\216\005\000\003\220\006\000\003\216\006\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\220\007\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\220\b\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\220\t\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\220\n\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\216\007\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0148\003\000\0140\003\000\014(\003\000\b\000\001\000\007\248\001\000\004\020\003\000\004\016\003\000\004\004\003\000\004\000\003\000\003\244\003\000\003\240\003\000\0148\004\000\0140\004\000\014(\004\000\004\020\004\000\004\016\004\000\004\004\004\000\004\000\004\000\003\244\004\000\003\240\004\000\014(\005\000\003\244\005\000\003\240\005\000\014(\006\000\003\244\006\000\003\240\006\000\014(\007\000\003\244\007\000\003\240\007\000\003\244\b\000\003\240\b\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\244\t\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\244\n\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\244\011\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\244\012\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\240\t\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0148\005\000\004\020\005\000\004\016\005\000\0148\006\000\004\020\006\000\004\016\006\000\0148\007\000\004\020\007\000\004\016\007\000\004\020\b\000\004\016\b\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\004\020\t\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\004\020\n\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\004\020\011\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\004\020\012\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\004\016\t\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\0140\005\000\004\004\005\000\004\000\005\000\0140\006\000\004\004\006\000\004\000\006\000\0140\007\000\004\004\007\000\004\000\007\000\004\004\b\000\004\000\b\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\004\004\t\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\004\004\n\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\004\004\011\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\004\004\012\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\004\000\t\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014p\003\000\003\204\003\000\003\200\003\000\003\204\004\000\003\200\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\204\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\204\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\204\007\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\204\b\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\200\005\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\005\016\001\000\012d\001\000\002\228\002\000\012d\002\000\012`\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\208\002\000\014\024\004\000\014\024\005\000\014 \003\000\014 \004\000\014 \005\000\014\028\003\000\014\028\004\000\014\028\005\000\0148\003\000\0140\003\000\014(\003\000\b\000\001\000\007\248\001\000\0148\004\000\0140\004\000\014(\004\000\014(\005\000\014(\006\000\014(\007\000\0148\005\000\0148\006\000\0148\007\000\0140\005\000\0140\006\000\0140\007\000\014p\003\000\004(\002\000\002\196\006\000\002\196\007\000\002\196\b\000\002\196\t\000\002\196\n\000\002\196\011\000\r0\006\000\014$\004\000\014$\005\000\0144\003\000\0144\004\000\0144\005\000\014,\003\000\014,\004\000\014,\005\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\200\007\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\006\000\011\196\001\000\011\192\001\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\007\000\011\196\002\000\011\192\002\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\b\000\011\196\003\000\011\192\003\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\t\000\011\196\004\000\011\192\004\000\011\192\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\224\007\000\007t\003\000\007t\004\000\007t\005\000\007x\002\000\007p\002\000\007x\003\000\007p\003\000\012\132\002\000\r\\\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\188\004\000\002\184\004\000\002\180\004\000\002\176\004\000\002\172\004\000\002\168\004\000\002\188\005\000\002\184\005\000\002\180\005\000\002\176\005\000\002\172\005\000\002\168\005\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\188\006\000\002\180\006\000\002\176\006\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\188\007\000\002\180\007\000\002\176\007\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\188\b\000\002\180\b\000\002\176\b\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\188\t\000\002\180\t\000\002\176\t\000\002\180\n\000\002\176\n\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\180\011\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\180\012\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\180\r\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\180\014\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\176\011\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\184\006\000\002\172\006\000\002\168\006\000\002\172\007\000\002\168\007\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\002\172\b\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\002\172\t\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\002\172\n\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\002\172\011\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\168\b\000\014@\004\000\014<\004\000\014<\005\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\014\004\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\004\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\004\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\004\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\004\006\000\014\000\002\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\000\003\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\014\b\002\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\204\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\212\002\000\011\168\001\000\011\164\001\000\011\160\001\000\011\156\001\000\011\152\001\000\002\236\001\000\014\212\003\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\148\002\000\014\148\003\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\n$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\n$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\n$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\n$\005\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\n \002\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\r<\002\000\r8\002\000\r4\002\000\r<\003\000\r8\003\000\r<\004\000\014l\002\000\014h\002\000\014h\003\000\014\240\002\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\240\003\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\240\004\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\240\005\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\240\006\000\012T\001\000\014\240\007\000\014\172\002\000\014\172\003\000\014\236\002\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\236\003\000\012T\001\000\014\236\004\000\014\248\002\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\014\248\003\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\014\248\004\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\014\248\005\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\014\248\006\000\012T\001\000\014\248\007\000\014\160\002\000\014\156\002\000\014\156\003\000\014\244\002\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\244\003\000\012T\001\000\014\244\004\000\002\156\b\000\002\152\003\000\002\152\004\000\bD\001\000\b@\001\000\b8\001\000\002\152\005\000\002\152\006\000\002\152\007\000\002\144\002\000\002\144\003\000\002\144\004\000\002\144\005\000\b\024\001\000\bD\001\000\b@\001\000\b8\001\000\b\024\002\000\b\028\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b\028\002\000\b\028\003\000\bD\001\000\b@\001\000\b8\001\000\b\028\004\000\002\144\006\000\002\144\007\000\002\144\b\000\b \001\000\b \002\000\002\148\002\000\002\148\003\000\002\148\004\000\001\216\001\000\001\220\001\000\001\204\001\000\001\220\002\000\001\220\003\000\001\200\001\000\002\148\005\000\004d\001\000\002\b\001\000\b\160\001\000\b\164\001\000\004\228\001\000\004\224\001\000\004\228\002\000\004\224\002\000\004\228\003\000\004\224\003\000\012|\001\000\012x\001\000\011(\001\000\011(\002\000\011(\003\000\000P\001\000\000L\001\000\000H\001\000\004\228\004\000\004\224\004\000\004\228\005\000\004\224\005\000\004\228\006\000\004\224\006\000\004\228\007\000\004\228\b\000\011$\001\000\000P\001\000\000L\001\000\000H\001\000\002\b\002\000\002\b\003\000\004\240\001\000\004\236\001\000\004\240\002\000\004\232\001\000\012\200\001\000\001\252\001\000\012\200\002\000\001\252\002\000\000\136\001\000\000|\001\000\000p\001\000\012\200\003\000\001\252\003\000\012\208\001\000\012\204\001\000\002\004\001\000\002\000\001\000\012\208\002\000\012\204\002\000\002\004\002\000\002\000\002\000\012\208\003\000\002\004\003\000\012\208\004\000\002\004\004\000\000\136\001\000\000|\001\000\000p\001\000\012\208\005\000\002\004\005\000\012\204\003\000\002\000\003\000\000\136\001\000\000|\001\000\000p\001\000\012\204\004\000\002\000\004\000\004d\002\000\012\196\001\000\001\248\001\000\000\136\001\000\000|\001\000\000p\001\000\012\196\002\000\001\248\002\000\004t\001\000\004p\001\000\004l\001\000\004h\001\000\012t\001\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\r\004\001\000\r\000\001\000\012\252\001\000\012t\002\000\000\156\002\000\000\148\001\000\r\004\002\000\r\000\002\000\012\252\002\000\012t\003\000\000\156\003\000\000\148\002\000\r\004\003\000\r\000\003\000\012\252\003\000\012t\004\000\000\156\004\000\r\004\004\000\r\000\004\000\012\252\004\000\012t\005\000\011`\001\000\004\196\001\000\004\192\001\000\000\156\005\000\012t\006\000\000\156\006\000\r\004\005\000\r\000\005\000\012\252\005\000\r\004\006\000\000\152\001\000\r\004\007\000\r\004\b\000\011`\001\000\004\196\001\000\004\192\001\000\r\000\006\000\000\148\001\000\r\000\007\000\000\148\002\000\r\000\b\000\r\000\t\000\011`\001\000\004\196\001\000\004\192\001\000\012\252\006\000\002\024\001\000\012|\001\000\012x\001\000\004t\002\000\004l\002\000\004t\003\000\004l\003\000\004l\004\000\004l\005\000\004l\006\000\000\136\001\000\000|\001\000\000p\001\000\012\196\001\000\004t\004\000\001\248\001\000\000\136\001\000\000|\001\000\000p\001\000\004h\002\000\004h\003\000\004h\004\000\000\136\001\000\000|\001\000\000p\001\000\012\196\001\000\004p\002\000\001\248\001\000\000\136\001\000\000|\001\000\000p\001\000\002\148\006\000\002\148\007\000\002\148\b\000\002\148\t\000\001\224\001\000\006l\002\000\006l\003\000\011T\001\000\006l\004\000\006l\005\000\006l\006\000\n<\002\000\005,\005\000\005,\006\000\005(\003\000\005(\004\000\005(\005\000\0050\002\000\006\184\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\003\196\003\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\003\196\004\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\003\196\005\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\003\196\006\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\192\003\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\004\028\002\000\015\000\002\000\r0\001\000\r(\001\000\r$\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\015\000\003\000\r0\002\000\r(\002\000\r$\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\015\000\004\000\r0\003\000\r(\003\000\r$\003\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\015\000\005\000\r0\004\000\r(\004\000\r$\004\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\015\000\006\000\012T\001\000\015\000\007\000\014\220\002\000\014\216\002\000\014\216\003\000\014\252\002\000\r,\001\000\r \001\000\r\028\001\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\014\252\003\000\012T\001\000\014\252\004\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\014`\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\014L\002\000\014H\002\000\014L\003\000\014H\003\000\014L\004\000\014H\004\000\014L\005\000\014H\005\000\bD\001\000\b@\001\000\b8\001\000\014H\006\000\014L\006\000\014L\007\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\014L\b\000\014\020\002\000\014\016\002\000\014\012\002\000\014\012\003\000\014\020\003\000\014\016\003\000\014\016\004\000\014\020\004\000\014\020\005\000\002\160\004\000\002\160\005\000\012\136\001\000\002\160\006\000\004$\002\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\n|\004\000\nt\004\000\nl\004\000\nd\004\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\n|\005\000\nt\005\000\nl\005\000\nd\005\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\n|\006\000\nt\006\000\nl\006\000\nd\006\000\012\136\001\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\n|\007\000\nt\007\000\nl\007\000\nd\007\000\nd\b\000\n|\b\000\n|\t\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\n|\n\000\nt\b\000\nl\b\000\nt\t\000\nl\t\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nl\n\000\nt\n\000\nt\011\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nt\012\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\nx\004\000\np\004\000\nh\004\000\n`\004\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\n`\005\000\nx\005\000\nx\006\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nx\007\000\np\005\000\nh\005\000\np\006\000\nh\006\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\nh\007\000\np\007\000\np\b\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\np\t\000\tP\005\000\bD\001\000\b@\001\000\b8\001\000\tP\006\000\tL\002\000\tL\003\000\tL\004\000\bD\001\000\b@\001\000\b8\001\000\tL\005\000\018\152\001\000\018\148\001\000\b\136\001\000\b\136\002\000\b\136\003\000\b\136\004\000\b\136\005\000\n,\001\000\n,\002\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b\136\006\000\b\136\007\000\018\152\002\000\018\148\002\000\018\152\003\000\018\148\003\000\018\152\004\000\018\152\005\000\018\152\006\000\018\152\007\000\006\236\001\000\006\236\002\000\006\236\003\000\006\236\004\000\006\236\005\000\006\236\006\000\018\152\b\000\018\148\004\000\018\148\005\000\018\148\006\000\004\176\001\000\004\176\002\000\011\024\001\000\011\020\001\000\012\024\001\000\011\024\002\000\011\020\002\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\011\024\003\000\011\024\004\000\002x\001\000\002x\002\000\004\220\001\000\004\220\002\000\004\220\003\000\011`\001\000\004\220\004\000\004\196\001\000\004\192\001\000\004\160\001\000\004\156\001\000\004\160\002\000\0110\001\000\0110\002\000\0110\003\000\0110\004\000\0110\005\000\012|\001\000\012x\001\000\011 \001\000\011 \002\000\011 \003\000\002\024\001\000\0110\006\000\0110\007\000\0110\b\000\t\b\001\000\t\004\001\000\t\b\002\000\0110\t\000\0110\n\000\011\028\001\000\002\024\001\000\016$\001\000\r`\001\000\016$\002\000\r`\002\000\016$\003\000\r`\003\000\016$\004\000\r`\004\000\016$\005\000\001\236\001\000\001\204\001\000\b\000\001\000\001\232\001\000\001\228\001\000\b\000\002\000\001\232\002\000\001\232\003\000\016$\006\000\016$\007\000\016$\b\000\r`\005\000\r`\006\000\r`\007\000\011\016\001\000\011\012\001\000\011\012\002\000\011\016\002\000\002\024\001\000\018\164\001\000\001x\001\000\001x\002\000\001x\003\000\001x\004\000\019\188\001\000\001x\005\000\002\128\001\000\012\188\001\000\012\192\001\000\002\128\002\000\002\128\003\000\012\192\002\000\012\192\003\000\001x\006\000\001x\007\000\001x\b\000\001D\001\000\001D\002\000\001\024\001\000\002\024\001\000\001\024\002\000\001\024\003\000\001D\003\000\001$\001\000\001$\002\000\b\184\001\000\b\176\001\000\b\184\002\000\b\180\001\000\b\172\001\000\b\180\002\000\001$\003\000\001$\004\000\001$\005\000\002\024\001\000\001$\006\000\001$\007\000\001(\001\000\001(\002\000\011L\001\000\011D\001\000\011L\002\000\011H\001\000\011@\001\000\011H\002\000\001(\003\000\001(\004\000\001(\005\000\001(\006\000\001(\007\000\001 \001\000\001 \002\000\001P\001\000\001L\001\000\001P\002\000\001L\002\000\001P\003\000\001P\004\000\b\000\001\000\001P\005\000\001P\006\000\001<\001\000\012\176\001\000\001<\002\000\001<\003\000\001<\004\000\012\176\002\000\012\176\003\000\002\024\001\000\012\172\001\000\002\024\001\000\001@\001\000\0018\001\000\001P\007\000\001H\001\000\001H\002\000\001L\003\000\b\000\001\000\001L\004\000\001L\005\000\001L\006\000\001H\001\000\001H\001\000\001 \003\000\001 \004\000\001,\001\000\001,\002\000\002\024\001\000\001\244\001\000\001\244\002\000\002\024\001\000\001\244\003\000\001,\003\000\001,\004\000\001D\004\000\001D\005\000\0010\001\000\0010\002\000\0014\001\000\0078\001\000\0078\002\000\001x\t\000\001H\001\000\001x\n\000\006\228\001\000\006\228\002\000\006\228\003\000\006\228\004\000\006\228\005\000\006\228\006\000\006\228\007\000\001H\001\000\006\228\b\000\006\228\t\000\001x\011\000\018\164\002\000\018\164\003\000\018\164\004\000\018\164\005\000\018\164\006\000\019\128\001\000\015H\001\000\015\024\001\000\015\020\001\000\015\012\001\000\005t\001\000\005h\001\000\005d\001\000\005`\001\000\001\236\001\000\001\204\001\000\000\244\001\000\001d\001\000\001d\002\000\001d\003\000\000\220\001\000\019\160\001\000\019\152\001\000\019\160\002\000\019\152\002\000\b\152\001\000\019\160\003\000\019\152\003\000\019\160\004\000\019\152\004\000\019\152\005\000\019\152\006\000\019\160\005\000\019\160\006\000\019\160\007\000\000\220\002\000\000\220\003\000\019\156\001\000\019\148\001\000\019\144\001\000\019\200\001\000\019\192\001\000\019\200\002\000\019\196\001\000\b\152\001\000\019\196\002\000\019\144\002\000\019\144\003\000\019\144\004\000\019\144\005\000\002\024\001\000\019\156\002\000\019\148\002\000\019\156\003\000\019\148\003\000\019\148\004\000\019\148\005\000\019\156\004\000\019\156\005\000\019\156\006\000\000\224\001\000\007\176\001\000\007\168\001\000\007\160\001\000\007\176\002\000\007\168\002\000\007\160\002\000\0118\001\000\007\176\003\000\007\168\003\000\007\160\003\000\007\176\004\000\007\168\004\000\007\160\004\000\007\176\005\000\007\168\005\000\007\176\006\000\007\176\007\000\007\176\b\000\007\176\t\000\002\024\001\000\007\176\n\000\007\176\011\000\007\168\006\000\007\168\007\000\007\168\b\000\007\160\005\000\000\224\002\000\000\224\003\000\007\172\001\000\007\164\001\000\007\156\001\000\007\152\001\000\019\212\001\000\019\204\001\000\019\212\002\000\019\208\001\000\0118\001\000\019\208\002\000\007\152\002\000\007\152\003\000\007\152\004\000\007\152\005\000\007\172\002\000\007\164\002\000\007\156\002\000\007\172\003\000\007\164\003\000\007\156\003\000\007\172\004\000\007\164\004\000\007\172\005\000\007\172\006\000\007\172\007\000\007\172\b\000\002\024\001\000\007\172\t\000\007\172\n\000\007\164\005\000\007\164\006\000\007\164\007\000\007\156\004\000\000\232\001\000\000\232\002\000\000\232\003\000\000\232\004\000\000\216\001\000\000\212\001\000\000\216\002\000\000\216\003\000\001`\001\000\001T\001\000\006x\001\000\006t\001\000\000\196\001\000\000\192\001\000\006x\002\000\006x\003\000\006x\004\000\006x\005\000\006x\006\000\006x\007\000\000\196\002\000\000\192\002\000\000\196\003\000\000\196\004\000\b\000\001\000\000\196\005\000\000\196\006\000\001\\\001\000\012\176\001\000\001\\\002\000\001\\\003\000\001\\\004\000\000\184\001\000\000\184\002\000\001\004\001\000\001\000\001\000\001\000\002\000\006|\001\000\000\188\001\000\000\188\002\000\000\208\001\000\000\204\001\000\000\180\001\000\012d\001\000\000\204\002\000\001X\001\000\000\200\001\000\000\188\003\000\000\200\002\000\006|\002\000\001\000\003\000\000\200\001\000\001\004\002\000\000\184\003\000\000\200\001\000\000\196\007\000\000\192\003\000\b\000\001\000\000\192\004\000\000\192\005\000\000\200\001\000\000\192\006\000\006t\002\000\006t\003\000\006t\004\000\006t\005\000\001`\002\000\001T\002\000\000\200\001\000\001T\003\000\001`\003\000\019@\001\000\019<\001\000\007\180\001\000\001p\001\000\001p\002\000\001p\003\000\001p\004\000\0028\001\000\0024\001\000\0020\001\000\001<\001\000\r\024\001\000\012\172\001\000\002\024\001\000\001t\001\000\001t\002\000\001l\001\000\001l\002\000\001l\003\000\b\016\001\000\007\240\001\000\007\232\001\000\007\192\001\000\007\184\001\000\000\144\001\000\007\240\002\000\007\232\002\000\007\192\002\000\007\184\002\000\000\144\002\000\019@\001\000\019<\001\000\007\184\003\000\002t\001\000\001@\001\000\001l\004\000\001h\001\000\001H\001\000\001t\003\000\001p\005\000\001`\004\000\001`\005\000\000\216\004\000\000\200\001\000\n\b\001\000\n\b\002\000\000\216\005\000\000\216\006\000\000\212\002\000\000\212\003\000\000\200\001\000\000\212\004\000\000\212\005\000\000\228\001\000\000\228\002\000\000\228\003\000\000\228\004\000\001d\004\000\001d\005\000\000\236\001\000\000\236\002\000\000\240\001\000\007@\001\000\007@\002\000\000\244\002\000\000\200\001\000\000\248\001\000\000\248\002\000\000\248\003\000\000\248\004\000\000\200\001\000\000\252\001\000\000\252\002\000\018\164\007\000\018\164\b\000\006\212\001\000\006\212\002\000\006\212\003\000\006\212\004\000\006\212\005\000\006\212\006\000\006\212\007\000\006\212\b\000\018\164\t\000\018\128\001\000\0070\001\000\006l\001\000\018\144\001\000\016 \001\000\018|\001\000\018\160\001\000\018\156\001\000\0070\002\000\018l\001\000\006p\001\000\018x\001\000\018p\001\000\018p\002\000\018\172\001\000\018\172\002\000\018\172\003\000\018\172\004\000\bD\001\000\b@\001\000\b8\001\000\018\172\005\000\018\132\001\000\007\004\001\000\007\004\002\000\007\004\003\000\007\004\004\000\007\004\005\000\007\004\006\000\012D\001\000\007\004\007\000\007\004\b\000\007\004\t\000\n\000\001\000\018\132\002\000\018t\001\000\018\168\001\000\011\b\001\000\018h\001\000\018h\002\000\018h\003\000\000\172\001\000\018d\001\000\018l\001\000\006p\001\000\003\176\001\000\002x\003\000\002x\004\000\004\176\003\000\004\176\004\000\007,\002\000\007,\003\000\007,\004\000\007(\002\000\011,\003\000\011,\004\000\004\140\n\000\018\140\006\000\018\140\007\000\018\140\b\000\004x\001\000\002l\001\000\004x\002\000\002l\002\000\002l\003\000\002l\004\000\002l\005\000\004x\003\000\004x\004\000\018\140\t\000\011\136\001\000\011\132\001\000\018\140\n\000\011\132\002\000\011\136\002\000\011t\001\000\011|\001\000\011x\001\000\011\128\001\000\004|\001\000\002p\001\000\002p\002\000\002p\003\000\002p\004\000\004|\002\000\004|\003\000\018\136\004\000\004\136\004\000\019@\001\000\004\136\005\000\004\136\006\000\004\136\007\000\012D\001\000\004\136\b\000\004\136\t\000\018\136\005\000\018\136\006\000\018\136\007\000\018\136\b\000\011\136\001\000\011\132\001\000\018\136\t\000\b,\003\000\b,\004\000\bd\005\000\bD\001\000\b@\001\000\b8\001\000\015\024\007\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\015\024\b\000\012\028\001\000\005\172\004\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\028\002\000\005\172\005\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012 \004\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\168\004\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012\028\001\000\005\188\b\000\005\164\001\000\005\160\001\000\005\156\001\000\005\152\001\000\012\028\002\000\005\188\t\000\005\164\002\000\005\160\002\000\005\156\002\000\005\152\002\000\012$\b\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\184\b\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\012 \002\000\005\180\002\000\005\176\002\000\005\172\002\000\005\168\002\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\001\016\002\000\001\012\002\000\001\012\003\000\001\016\003\000\002\024\001\000\001\016\004\000\001\016\005\000\014P\004\000\014P\005\000\014P\006\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\002\232\002\000\011\240\004\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\011\240\005\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\236\004\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\236\005\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\011\236\006\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\136\001\000\011\236\007\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\011\232\004\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\012\004\007\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\014\132\001\000\014\128\001\000\014|\001\000\014p\001\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014(\001\000\014$\001\000\014 \001\000\014\028\001\000\014\024\001\000\012\004\b\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\012\000\007\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\012\000\b\000\011\208\002\000\011\204\002\000\011\200\002\000\011\196\002\000\011\192\002\000\012\000\t\000\011\208\003\000\011\204\003\000\011\200\003\000\011\196\003\000\011\192\003\000\012\136\001\000\012\000\n\000\011\208\004\000\011\204\004\000\011\200\004\000\011\196\004\000\011\192\004\000\011\252\007\000\011\188\001\000\011\184\001\000\011\180\001\000\011\176\001\000\011\172\001\000\004\024\001\000\003\188\001\000\003\184\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003X\001\000\003T\001\000\003P\001\000\003L\001\000\003H\001\000\003D\001\000\003@\001\000\003<\001\000\0038\001\000\0034\001\000\0030\001\000\003,\001\000\003(\001\000\003$\001\000\003 \001\000\003\028\001\000\003\024\001\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\011\248\002\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\002\164\004\000\002\164\005\000\012\136\001\000\002\164\006\000\004 \002\000\002d\003\000\002d\004\000\019@\001\000\019<\001\000\007\140\001\000\007\132\001\000\007|\001\000\007\140\002\000\007\132\002\000\007|\002\000\007\140\003\000\007\132\003\000\007|\003\000\007\140\004\000\007\132\004\000\007|\004\000\007\132\005\000\007|\005\000\007\132\006\000\007|\006\000\007\148\001\000\007|\007\000\007\144\001\000\007\136\001\000\007\128\001\000\000\136\001\000\000|\001\000\000p\001\000\007\136\002\000\007\128\002\000\007\128\003\000\tH\002\000\tD\002\000\tD\003\000\017\172\002\000\017\168\002\000\017\164\002\000\017\160\002\000\017\156\002\000\017\152\002\000\017\148\002\000\017\144\002\000\016t\002\000\016p\002\000\012|\001\000\012x\001\000\017\172\003\000\017\168\003\000\017\164\003\000\017\160\003\000\017\156\003\000\017\152\003\000\017\148\003\000\017\144\003\000\016t\003\000\016p\003\000\017\172\004\000\017\168\004\000\017\164\004\000\017\160\004\000\017\156\004\000\017\152\004\000\017\148\004\000\017\144\004\000\016t\004\000\016p\004\000\002\024\001\000\017\172\005\000\017\168\005\000\017\164\005\000\017\160\005\000\017\156\005\000\017\152\005\000\017\148\005\000\017\144\005\000\016t\005\000\016p\005\000\017\156\006\000\017\152\006\000\017\148\006\000\017\144\006\000\016p\006\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\148\007\000\017\144\007\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\148\b\000\016|\002\000\016p\007\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\156\007\000\017\152\007\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\156\b\000\017\152\b\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\156\t\000\016\140\003\000\017\172\006\000\017\168\006\000\017\164\006\000\017\160\006\000\016t\006\000\017\172\007\000\017\168\007\000\017\164\007\000\017\160\007\000\016t\007\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\164\b\000\017\160\b\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\164\t\000\016|\002\000\016t\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\172\b\000\017\168\b\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\172\t\000\017\168\t\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\172\n\000\016\140\003\000\0028\001\000\0024\001\000\0020\001\000\001\200\001\000\t8\002\000\t8\003\000\t8\004\000\t(\002\000\004x\001\000\002\012\001\000\004x\002\000\011p\001\000\002\016\001\000\004x\001\000\011p\002\000\011h\001\000\011l\001\000\t\016\002\000\002\024\001\000\t\024\002\000\004|\001\000\t4\001\000\t4\002\000\t4\003\000\t$\001\000\019 \002\000\t@\001\000\t<\001\000\t0\001\000\t,\001\000\t \001\000\t\028\001\000\t\012\001\000\002\024\001\000\t@\002\000\t<\002\000\t0\002\000\t,\002\000\t \002\000\t\028\002\000\t@\003\000\t0\003\000\t \003\000\t@\004\000\t@\005\000\t@\006\000\t0\004\000\t \004\000\t<\003\000\t<\004\000\t<\005\000\t,\003\000\t\028\003\000\t\020\001\000\004\132\b\000\004\132\t\000\012D\001\000\004\132\n\000\004\132\011\000\r\136\006\000\r\136\007\000\r\136\b\000\r\136\t\000\011\148\001\000\r\136\n\000\011\148\002\000\011\140\001\000\011\144\001\000\r\132\004\000\004\136\004\000\004\128\004\000\019@\001\000\004\136\005\000\004\128\005\000\004\136\006\000\004\128\006\000\004\128\007\000\004\128\b\000\012D\001\000\004\128\t\000\004\128\n\000\r\132\005\000\r\132\006\000\r\132\007\000\r\132\b\000\011\148\001\000\r\132\t\000\007\028\001\000\tX\001\000\tT\001\000\tX\002\000\tX\003\000\tX\004\000\tX\005\000\b\016\001\000\007\192\001\000\tX\006\000\tT\002\000\tT\003\000\tT\004\000\b\016\001\000\007\192\001\000\tT\005\000\r\156\001\000\r\148\001\000\r\144\001\000\b\140\001\000\b\136\001\000\bX\001\000\b\140\002\000\b\136\002\000\b\140\003\000\b\136\003\000\b\140\004\000\b\136\004\000\b\140\005\000\b\136\005\000\b\140\006\000\b\140\007\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b\140\b\000\r\156\002\000\r\148\002\000\r\144\002\000\bX\002\000\r\156\003\000\r\148\003\000\r\144\003\000\bX\003\000\bX\004\000\bP\001\000\bX\005\000\bX\006\000\b\016\001\000\007\192\001\000\bX\007\000\r\156\004\000\r\156\005\000\r\156\006\000\r\156\007\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\r\156\b\000\006\244\001\000\006\244\002\000\006\244\003\000\006\244\004\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\006\244\005\000\006\244\006\000\006\244\007\000\r\156\t\000\r\148\004\000\r\144\004\000\r\148\005\000\r\148\006\000\b\000\001\000\r\148\007\000\b$\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\b$\002\000\r\144\005\000\r\144\006\000\b(\001\000\b(\002\000\r`\001\000\r`\002\000\r`\003\000\r`\004\000\r\172\001\000\001x\001\000\r\172\002\000\r\172\003\000\r\172\004\000\r\172\005\000\r\172\006\000\r\172\007\000\r\172\b\000\r\172\t\000\006\220\001\000\006\220\002\000\006\220\003\000\006\220\004\000\006\220\005\000\006\220\006\000\006\220\007\000\006\220\b\000\006\220\t\000\r\172\n\000\rt\001\000\007 \001\000\r\140\001\000\rx\001\000\r\168\001\000\r\164\001\000\r\160\001\000\r\152\001\000\007 \002\000\rp\001\000\rh\001\000\rh\002\000\r\180\001\000\r\180\002\000\r\180\003\000\r\180\004\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\r\180\005\000\r\180\006\000\r|\001\000\r|\002\000\r\128\001\000\007\012\001\000\007\012\002\000\007\012\003\000\007\012\004\000\007\012\005\000\007\012\006\000\007\012\007\000\012D\001\000\007\012\b\000\007\012\t\000\007\012\n\000\r\128\002\000\rl\001\000\r\176\001\000\007\028\002\000\rd\002\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\002,\005\000\002,\006\000\017,\004\000\017(\004\000\017$\004\000\017 \004\000\017\028\004\000\017\024\004\000\017\020\004\000\017\016\004\000\016T\004\000\016P\004\000\012|\001\000\012x\001\000\017,\005\000\017(\005\000\017$\005\000\017 \005\000\017\028\005\000\017\024\005\000\017\020\005\000\017\016\005\000\016T\005\000\016P\005\000\017,\006\000\017(\006\000\017$\006\000\017 \006\000\017\028\006\000\017\024\006\000\017\020\006\000\017\016\006\000\016T\006\000\016P\006\000\002\024\001\000\017,\007\000\017(\007\000\017$\007\000\017 \007\000\017\028\007\000\017\024\007\000\017\020\007\000\017\016\007\000\016T\007\000\016P\007\000\017\028\b\000\017\024\b\000\017\020\b\000\017\016\b\000\016P\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\020\t\000\017\016\t\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\020\n\000\016|\002\000\016P\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\028\t\000\017\024\t\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\028\n\000\017\024\n\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\028\011\000\016\140\003\000\017,\b\000\017(\b\000\017$\b\000\017 \b\000\016T\b\000\017,\t\000\017(\t\000\017$\t\000\017 \t\000\016T\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017$\n\000\017 \n\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017$\011\000\016|\002\000\016T\n\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017,\n\000\017(\n\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017,\011\000\017(\011\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017,\012\000\016\140\003\000\017L\003\000\017H\003\000\017D\003\000\017@\003\000\017<\003\000\0178\003\000\0174\003\000\0170\003\000\016\\\003\000\016X\003\000\017<\004\000\0178\004\000\0174\004\000\0170\004\000\016X\004\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\0174\005\000\0170\005\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\0174\006\000\016|\002\000\016X\005\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017<\005\000\0178\005\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017<\006\000\0178\006\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017<\007\000\016\140\003\000\017L\004\000\017H\004\000\017D\004\000\017@\004\000\016\\\004\000\017L\005\000\017H\005\000\017D\005\000\017@\005\000\016\\\005\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017D\006\000\017@\006\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017D\007\000\016|\002\000\016\\\006\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017L\006\000\017H\006\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017L\007\000\017H\007\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017L\b\000\016\140\003\000\018\\\003\000\018X\003\000\018T\003\000\018P\003\000\018L\003\000\018H\003\000\018D\003\000\018@\003\000\018\028\003\000\018\024\003\000\017\140\003\000\017\136\003\000\017\132\003\000\017\128\003\000\017|\003\000\017x\003\000\017t\003\000\017p\003\000\017l\003\000\017h\003\000\017d\003\000\017`\003\000\017\\\003\000\017X\003\000\017T\003\000\017P\003\000\016l\003\000\016h\003\000\016d\003\000\016`\003\000\017l\004\000\017h\004\000\017d\004\000\017`\004\000\017\\\004\000\017X\004\000\017T\004\000\017P\004\000\016d\004\000\016`\004\000\002,\001\000\002(\001\000\000\160\001\000\000\156\001\000\000\140\001\000\000\128\001\000\000t\001\000\017l\005\000\017h\005\000\017d\005\000\017`\005\000\017\\\005\000\017X\005\000\017T\005\000\017P\005\000\016d\005\000\016`\005\000\012|\001\000\012x\001\000\017l\006\000\017h\006\000\017d\006\000\017`\006\000\017\\\006\000\017X\006\000\017T\006\000\017P\006\000\016d\006\000\016`\006\000\017l\007\000\017h\007\000\017d\007\000\017`\007\000\017\\\007\000\017X\007\000\017T\007\000\017P\007\000\016d\007\000\016`\007\000\002\024\001\000\017l\b\000\017h\b\000\017d\b\000\017`\b\000\017\\\b\000\017X\b\000\017T\b\000\017P\b\000\016d\b\000\016`\b\000\017\\\t\000\017X\t\000\017T\t\000\017P\t\000\016`\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017T\n\000\017P\n\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017T\011\000\016|\002\000\016`\n\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\\\n\000\017X\n\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\\\011\000\017X\011\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\\\012\000\016\140\003\000\017l\t\000\017h\t\000\017d\t\000\017`\t\000\016d\t\000\017l\n\000\017h\n\000\017d\n\000\017`\n\000\016d\n\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017d\011\000\017`\011\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017d\012\000\016|\002\000\016d\011\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017l\011\000\017h\011\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017l\012\000\017h\012\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017l\r\000\016\140\003\000\017\140\004\000\017\136\004\000\017\132\004\000\017\128\004\000\017|\004\000\017x\004\000\017t\004\000\017p\004\000\016l\004\000\016h\004\000\017|\005\000\017x\005\000\017t\005\000\017p\005\000\016h\005\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017t\006\000\017p\006\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017t\007\000\016|\002\000\016h\006\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017|\006\000\017x\006\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017|\007\000\017x\007\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017|\b\000\016\140\003\000\017\140\005\000\017\136\005\000\017\132\005\000\017\128\005\000\016l\005\000\017\140\006\000\017\136\006\000\017\132\006\000\017\128\006\000\016l\006\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\132\007\000\017\128\007\000\016|\001\000\016x\001\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\017\132\b\000\016|\002\000\016l\007\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\140\007\000\017\136\007\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\017\140\b\000\017\136\b\000\016\140\002\000\016\136\002\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\017\140\t\000\016\140\003\000\019\012\001\000\019\b\001\000\018\\\004\000\018X\004\000\018T\004\000\018P\004\000\018L\004\000\018H\004\000\018D\004\000\018@\004\000\018\028\004\000\018\024\004\000\000\136\001\000\000|\001\000\000p\001\000\019\012\002\000\018\\\005\000\018X\005\000\018T\005\000\018P\005\000\018L\005\000\018H\005\000\018D\005\000\018@\005\000\018\028\005\000\018\024\005\000\019\012\003\000\018\\\006\000\018X\006\000\018T\006\000\018P\006\000\018L\006\000\018H\006\000\018D\006\000\018@\006\000\018\028\006\000\018\024\006\000\012\224\001\000\012\220\001\000\018L\007\000\018H\007\000\018D\007\000\018@\007\000\018\024\007\000\018D\b\000\018@\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\018D\t\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\018\024\b\000\018L\b\000\018H\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018L\t\000\018H\t\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018L\n\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\018\\\007\000\018X\007\000\018T\007\000\018P\007\000\018\028\007\000\018\\\b\000\018X\b\000\018T\b\000\018P\b\000\018\028\b\000\018T\t\000\018P\t\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\018T\n\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\018\028\t\000\018\\\t\000\018X\t\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018\\\n\000\018X\n\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018\\\011\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\019\012\001\000\019\b\001\000\018`\003\000\018<\003\000\0188\003\000\0184\003\000\0180\003\000\018,\003\000\018(\003\000\018$\003\000\018 \003\000\018\020\003\000\018\016\003\000\000\136\001\000\000|\001\000\000p\001\000\019\012\002\000\018`\004\000\018<\004\000\0188\004\000\0184\004\000\0180\004\000\018,\004\000\018(\004\000\018$\004\000\018 \004\000\018\020\004\000\018\016\004\000\019\012\003\000\018`\005\000\018<\005\000\0188\005\000\0184\005\000\0180\005\000\018,\005\000\018(\005\000\018$\005\000\018 \005\000\018\020\005\000\018\016\005\000\012\224\001\000\012\220\001\000\018,\006\000\018(\006\000\018$\006\000\018 \006\000\018\016\006\000\018$\007\000\018 \007\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\018$\b\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\018\016\007\000\018,\007\000\018(\007\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018,\b\000\018(\b\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018,\t\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\018<\006\000\0188\006\000\0184\006\000\0180\006\000\018\020\006\000\018<\007\000\0188\007\000\0184\007\000\0180\007\000\018\020\007\000\0184\b\000\0180\b\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\016|\001\000\016x\001\000\0184\t\000\017\204\002\000\017\200\002\000\017\196\002\000\017\192\002\000\016|\002\000\018\020\b\000\018<\b\000\0188\b\000\018\012\001\000\018\b\001\000\018\004\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\018<\t\000\0188\t\000\018\012\002\000\018\b\002\000\018\004\002\000\018\000\002\000\017\252\002\000\017\248\002\000\017\244\002\000\017\240\002\000\016\140\002\000\016\136\002\000\018<\n\000\018\012\003\000\018\b\003\000\018\004\003\000\018\000\003\000\016\140\003\000\004\196\003\000\002\024\001\000\r\004\004\000\r\000\004\000\012\252\004\000\011`\001\000\004\196\001\000\004\192\001\000\000\156\005\000\000\156\006\000\004\204\002\000\002\024\001\000\004\216\002\000\004\184\001\000\004\216\003\000\011`\001\000\004\196\001\000\004\192\001\000\r\016\003\000\r\012\003\000\r\b\003\000\011`\001\000\004\196\001\000\004\192\001\000\000\160\004\000\000\160\005\000\r\016\004\000\r\012\004\000\r\b\004\000\r\016\005\000\000\152\001\000\r\016\006\000\r\016\007\000\011`\001\000\004\196\001\000\004\192\001\000\r\012\005\000\000\148\001\000\r\012\006\000\000\148\002\000\r\012\007\000\r\012\b\000\011`\001\000\004\196\001\000\004\192\001\000\r\b\005\000\002\024\001\000\r\004\001\000\r\000\001\000\012\252\001\000\012t\002\000\012p\001\000\000\156\002\000\000\148\001\000\r\004\002\000\r\000\002\000\012\252\002\000\012t\003\000\012p\002\000\000\156\003\000\000\148\002\000\019\180\006\000\019\180\007\000\019\180\b\000\000\176\003\000\000\176\004\000\002\192\003\000\002\192\004\000\002\192\005\000\002\192\006\000\002\192\007\000\004\152\001\000\004\152\002\000\000\000\001\000\000\004\000\000\004\172\001\000\004\172\002\000\000\004\001\000\000\b\000\000\019\128\001\000\007\200\001\000\001\204\001\000\007\200\002\000\007\200\003\000\007\204\001\000\000\b\001\000\b\016\001\000\007\216\001\000\007\212\001\000\007\208\001\000\007\192\001\000\007\216\002\000\007\212\002\000\007\208\002\000\007\192\002\000\019\128\001\000\007\212\003\000\007\212\004\000\007\212\005\000\007\216\003\000\007\208\003\000\000X\001\000\007\196\001\000\000\\\001\000\n\140\001\000\n\140\002\000\000\012\000\000\000\012\001\000\n\144\001\000\n\144\002\000\000\016\000\000\000\016\001\000\n\148\001\000\002\024\001\000\n\148\002\000\000\020\000\000\n\152\001\000\n\152\002\000\000\020\001\000\000\024\000\000\000\024\001\000\n\156\001\000\b\016\001\000\007\192\001\000\n\156\002\000\000\028\000\000\000\028\001\000\n\160\001\000\b\000\001\000\n\160\002\000\000 \000\000\000 \001\000\n\164\001\000\bD\001\000\b@\001\000\b8\001\000\n\164\002\000\000$\000\000\000$\001\000\n\168\001\000\b\132\001\000\b|\001\000\bx\001\000\bl\001\000\n\168\002\000\000(\000\000\000(\001\000\n\172\001\000\n\172\002\000\000,\000\000\012\024\001\000\n\200\001\000\n\196\001\000\n\188\001\000\n\184\001\000\n\176\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\n\176\002\000\000,\001\000\0000\000\000\n\180\001\000\n\180\002\000\0000\001\000\b\b\001\000\b\000\001\000\b\b\002\000\b\000\002\000\0004\000\000\018\244\001\000\018\240\001\000\018\236\001\000\018\232\001\000\018\228\001\000\018\224\001\000\018\220\001\000\018\244\002\000\018\240\002\000\018\236\002\000\018\232\002\000\018\228\002\000\018\224\002\000\018\220\002\000\018\244\003\000\018\224\003\000\018\228\003\000\018\240\003\000\018\232\003\000\018\236\003\000\b\b\001\000\b\000\001\000\018\216\001\000\018\212\001\000\018\208\001\000\018\204\001\000\018\200\001\000\018\196\001\000\018\192\001\000\018\216\002\000\018\212\002\000\018\208\002\000\018\204\002\000\018\200\002\000\018\196\002\000\018\192\002\000\018\216\003\000\018\196\003\000\018\200\003\000\018\212\003\000\018\204\003\000\018\208\003\000\b\b\001\000\b\000\001\000\019\004\001\000\0004\001\000\019\000\001\000\019\000\002\000\007H\001\000\007H\002\000\018\248\001\000\018\248\002\000\018\248\003\000\018\252\001\000\018\252\002\000\0008\000\000\007T\001\000\007P\001\000\007\\\001\000\007X\001\000\007X\002\000\007\\\002\000\007T\002\000\007T\003\000\007T\004\000\007P\002\000\0008\001\000\019|\001\000\019|\002\000\019|\003\000\019|\004\000\019x\001\000\019x\002"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000]\000_\000`\000a\000c\000e\000f\000h\000j\000l\000m\000o\000q\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\131\000\133\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\143\000\144\000\145\000\147\000\148\000\149\000\150\000\151\000\169\000\174\000\178\000\179\000\180\000\181\000\182\000\183\000\200\000\206\000\212\000\216\000\218\000\219\000\220\000\224\000\225\001 \001!\001^\001o\001p\001q\001r\001t\001u\001v\001w\001y\001z\001{\001|\001}\001~\001\132\001\138\001\144\001\145\001\147\001\148\001\151\001\153\001\154\001\155\001\156\001\159\001\160\001\161\001\165\001\167\001\169\001\170\001\174\001\175\001\177\001\178\001\179\001\180\001\184\001\185\001\186\001\187\001\189\001\191\001\193\001\194\001\198\001\199\001\201\001\202\001\203\001\204\001\205\001\207\001\208\001\209\001\210\001\211\001\212\001\215\001\218\001\219\001\223\001\225\001\226\001\228\001\229\001\233\001\252\001\253\001\255\002\006\002\011\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\024\002\"\002'\002,\002-\002/\0020\0022\0024\0025\0026\0029\002;\002>\002?\002A\002B\002C\002F\002G\002J\002K\002L\002M\002N\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002]\002a\002c\002n\002s\002\127\002\128\002\130\002\131\002\132\002\138\002\143\002\155\002\161\002\162\002\202\002\219\002\220\002\226\002\229\002\230\002\231\002\232\002\233\002\237\002\240\002\241\002\242\002\243\002\244\002\247\002\249\002\250\002\254\003\000\003\002\003\003\003\007\003\027\003,\0038\0039\003:\003;\003<\003=\003>\003B\003C\003M\003N\003O\003P\003Q\003R\003]\003g\003l\003x\003~\003\127\003\149\003\161\003\166\003\178\003\184\003\185\003\207\003\219\003\225\003\230\003\242\003\248\003\249\004\015\004\027\004!\004&\004'\004*\004+\004/\0040\0041\0042\0043\0046\0048\004;\004<\004@\004D\004H\004N\004S\004X\004d\004j\004k\004\129\004\141\004\147\004\148\004\152\004\155\004\156\004\157\004\159\004\160\004\161\004\165\004\166\004\167\004\168\004\169\004\173\004\174\004\179\004\180\004\183\004\185\004\186\004\190\004\192\004\194\004\195\004\199\004\201\004\211\004\216\004\218\004\230\004\240\004\251\005\005\005\n\005\022\005\028\005\029\0053\005?\005E\005J\005O\005[\005a\005b\005x\005\132\005\138\005\148\005\153\005\165\005\171\005\172\005\194\005\206\005\212\005\217\005\222\005\234\005\240\005\241\006\007\006\019\006\025\006-\006>\006J\006T\006_\006i\006n\006z\006\128\006\129\006\151\006\163\006\169\006\174\006\179\006\191\006\197\006\198\006\220\006\232\006\238\006\248\006\253\007\t\007\015\007\016\007&\0072\0078\007=\007B\007N\007T\007U\007k\007w\007}\007\147\007\159\007\165\007\166\007\188\007\200\007\206\007\211\007\213\007\214\007\218\007\219\007\222\007\223\007\227\007\228\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\239\007\240\007\241\007\242\007\244\007\245\007\246\007\247\007\249\007\250\007\254\007\255\b\003\b\004\b\006\b\b\b\t\b\n\b\011\b\r\b\014\b\016\b\017\b\020\b\021\b\022\b\024\b\025\b\026\b\027\b\029\b\031\b\"\b#\b%\b*\b/\b4\b@\bF\bL\bR\bX\b^\bc\bo\bu\b{\b\129\b\135\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\149\b\150\b\160\b\165\b\170\b\175\b\181\b\186\b\191\b\203\b\209\b\215\b\221\b\228\b\234\b\240\b\245\t\001\t\007\t\r\t\019\t\026\t \t&\t*\t+\t,\t-\t.\t2\t3\t4\t5\t6\t=\tB\tD\tF\tH\tI\tJ\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tY\t]\ta\tc\te\tg\th\ti\tk\tl\tm\to\tp\tq\tr\tt\tu\tv\tw\t\129\t\137\t\145\t\146\t\147\t\148\t\149\t\150\t\152\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\172\t\174\t\178\t\179\t\182\t\184\t\185\t\195\t\200\t\205\t\210\t\216\t\221\t\226\t\238\t\244\t\250\n\000\n\007\n\r\n\019\n\024\n$\n*\n0\n6\n=\nC\nI\nK\nM\nO\nP\nQ\nR\nS\nT\nX\nY\n[\n_\n`\na\nb\nc\nd\ne\nf\ng\nj\nl\nm\nn\no\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\131\n\136\n\148\n\154\n\160\n\166\n\173\n\179\n\185\n\191\n\197\n\198\n\200\n\201\n\203\n\205\n\206\n\207\n\208\n\215\n\221\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\241\n\246\011\002\011\b\011\014\011\020\011\027\011!\011'\011-\0113\0114\0115\0116\0117\011A\011B\011L\011M\011W\011X\011Y\011Z\011\\\011f\011l\011q\011}\011\131\011\137\011\143\011\150\011\156\011\162\011\168\011\174\011\175\011\185\011\188\011\196\011\197\011\198\011\199\011\200\011\205\011\206\011\207\011\218\011\219\011\220\011\222\011\223\011\233\011\234\011\235\011\245\011\246\011\248\011\249\011\250\011\251\012\007\012\t\012\n\012\011\012\012\012\022\012\024\012\025\012\"\012#\012-\0121\0124\0125\0126\0127\0128\0129\012:\012;\012<\012=\012>\012D\012J\012O\012[\012a\012g\012m\012t\012z\012\128\012\134\012\140\012\141\012\142\012\152\012\157\012\169\012\175\012\181\012\187\012\194\012\200\012\206\012\212\012\218\012\219\012\229\012\230\012\240\012\241\012\251\012\252\012\253\012\254\012\255\r\005\r\n\r\022\r\028\r\"\r(\r/\r5\r;\rA\rG\rH\rR\rS\r]\rc\ri\rj\rt\ry\r~\r\131\r\134\r\137\r\139\r\145\r\149\r\153\r\155\r\158\r\159\r\160\r\161\r\164\r\165\r\166\r\167\r\168\r\169\r\170\r\171\r\172\r\175\r\177\r\178\r\179\r\180\r\185\r\187\r\188\r\189\r\190\r\191\r\192\r\194\r\195\r\196\r\197\r\199\r\200\r\201\r\202\r\203\r\205\r\206\r\207\r\208\r\209\r\214\r\216\r\218\r\220\r\222\r\224\r\225\r\226\r\230\r\231\r\235\r\237\r\238\r\240\r\241\r\243\r\244\r\248\r\250\r\252\r\253\014\002\014\003\014\b\014\t\014\012\014\014\014\016\014\017\014\018\014\019\014\020\014\021\014\026\014\029\014\030\014!\014\"\014#\014&\014'\014)\014*\014+\014.\014/\0144\0149\014:\014?\014@\014A\014B\014C\014G\014R\014S\014X\014Y\014Z\014_\014`\014a\014b\014d\014e\014i\014j\014n\014r\014t\014w\014y\014z\014|\014}\014~\014\127\014\128\014\129\014\131\014\136\014\138\014\140\014\142\014\148\014\154\014\160\014\166\014\172\014\178\014\179\014\191\014\192\014\193\014\194\014\195\014\198\014\199\014\201\014\209\014\217\014\231\014\234\014\237\014\238\014\240\014\241\014\244\014\245\014\246\014\247\014\248\014\249\014\250\015\t\015\r\015\017\015\019\015\022\015\023\015\026\015\027\015\028\015\029\015\030\015\031\015 \015!\015\"\015#\015$\015%\0152\0154\0155\0156\0157\015;\015<\015>\015?\015C\015D\015E\015F\015G\015I\015J\015K\015Z\015^\015b\015d\015g\015h\015j\015y\015}\015\129\015\131\015\134\015\137\015\138\015\139\015\140\015\141\015\142\015\143\015\149\015\161\015\176\015\180\015\184\015\186\015\189\015\190\015\193\015\207\015\208\015\211\015\215\015\217\015\220\015\221\015\223\015\224\015\225\015\226\015\227\015\228\015\229\015\231\015\232\015\233\015\234\015\235\015\239\015\240\015\241\015\247\015\253\016\003\016\n\016\015\016\027\016!\016'\016-\0163\0169\016?\016@\016A\016B\016C\016D\016R\016S\016T\016U\016c\016d\016e\016h\016i\016q\016y\016\129\016\138\016\140\016\141\016\142\016\143\016\153\016\154\016\155\016\156\016\157\016\158\016\172\016\179\016\180\016\182\016\188\016\194\016\200\016\207\016\208\016\209\016\210\016\245\016\247\016\248\016\249\016\250\016\251\016\252\016\253\016\254\016\255\017\r\017\014\017#\0177\017<\017=\017?\017A\017B\017C\017D\017H\017I\017N\017O\017Q\017S\017U\017W\017X\017Z\017[\017\\\017b\017g\017s\017y\017\127\017\133\017\139\017\145\017\151\017\170\017\175\017\187\017\193\017\199\017\205\017\211\017\217\017\223\017\242\017\243\017\244\017\245\017\246\017\252\018\002\018\b\018\015\018\017\018\031\018!\018\"\018#\018$\018^\018`\018f\018l\018r\018y\018\176\018\178\018\184\018\190\018\196\018\203\019\002\019\004\019\n\019\016\019\022\019\029\019T\019V\019\\\019b\019h\019o\019\166\019\168\019\174\019\180\019\186\019\193\019\248\019\250\020\000\020\006\020\012\020\019\020J\020L\020R\020X\020^\020e\020\156\020\158\020\164\020\170\020\176\020\183\020\238\020\240\020\246\020\252\021\002\021\t\021@\021B\021H\021N\021T\021[\021\146\021\148\021\154\021\160\021\166\021\173\021\228\021\230\021\236\021\242\021\248\021\255\0226\0228\022>\022D\022J\022Q\022\136\022\138\022\144\022\150\022\156\022\163\022\218\022\220\022\226\022\232\022\238\022\245\023,\023.\0234\023:\023@\023G\023~\023\128\023\134\023\140\023\146\023\153\023\208\023\213\023\225\023\231\023\237\023\243\023\249\023\255\024\005\024\024\024\030\024$\024*\0241\024h\024j\024p\024v\024|\024\131\024\186\024\188\024\194\024\200\024\206\024\213\025\012\025\014\025\020\025\026\025 \025'\025^\025`\025f\025l\025r\025y\025\176\025\178\025\184\025\190\025\196\025\203\026\002\026\004\026\n\026\016\026\022\026\029\026T\026V\026\\\026b\026h\026o\026\166\026\167\026\169\026\183\026\185\026\191\026\197\026\203\026\210\027\t\027\012\027\r\027\014\027\015\027\016\027\017\027\018\027\026\027\028\027\029\027\030\027\031\027 \027!\027\"\027#\027$\027%\027&\027'\027(\0272\0278\027:\027<\027>\027A\027B\027C\027D\027E\027F\027J\027L\027O\027P\027Q\027R\027S\027T\027V\027W\027X\027Y\027Z\027[\027\\\027]\027^\027_\027c\027e\027h\027i\027j\027k\027l\027m\027n\027o\027p\027z\027{\027|\027\130\027\136\027\140\027\144\027\146\027\149\027\150\027\151\027\152\027\153\027\154\027\156\027\157\027\158\027\159\027\160\027\161\027\162\027\163\027\164\027\165\027\166\027\167\027\168\027\169\027\170\027\171\027\226\027\232\027\238\027\244\027\251\0282\028<\028=\028>\028@\028A\028B\028C\028D\028E\028G\028H\028I\028M\028V\028_\028h\028r\028t\028z\028\128\028\134\028\141\028\196\028\197\028\199\028\200\028\207\028\209\028\220\028\222\028\228\028\234\028\240\028\247\029.\0290\029;\029=\029C\029I\029O\029V\029\141\029\143\029\154\029\156\029\162\029\168\029\174\029\181\029\236\029\246\029\248\029\254\030\004\030\n\030\017\030H\030L\030S\030Z\030a\030i\030j\030k\030m\030s\030y\030\127\030\134\030\189\030\245\030\247\030\253\031\003\031\t\031\016\031G\031H\031I\031J\031L\031M\031N\031O\031P\031Q\031R\031\140\031\142\031\143\031\200\031\202\031\203\031\207\031\216\031\225\031\234\031\244\031\246\031\247\031\248\031\249\031\250 4 6 7 ; < E N W a c d e f \160 \162 \163 \164 \165 \166 \167 \181 \182 \183 \186 \189 \192 \194 \195 \196 \197 \198 \220 \241 \243 \244 \245!\003!\012!\015!\018!\021!\023!\029!#!)!0!g!j!m!p!r!x!~!\132!\139!\194!\197!\200!\203!\205!\211!\217!\223!\230\"\029\"2\"5\"8\";\"=\"C\"I\"O\"V\"\141\"\144\"\147\"\150\"\152\"\158\"\164\"\170\"\177\"\232\"\235\"\238\"\241\"\243\"\249\"\255#\005#\012#C#N#W#Z#]#`#b#h#n#t#{#\178#\181#\184#\187#\189#\195#\201#\207#\214$\r$\016$\019$\022$\024$\030$$$*$1$h$k$m$s$y$\127$\134$\189$\203$\205$\206$\207%\006%\007%\b%\t%\n%\011%\012%\r%\014%\019%\022%\023%\024%\025%\026%\027%\028%\029%\030%\031% %!%\"%#%$%%%&%'%(%)%*%+%,%-%.%/%0%C%I%O%U%\\%\147%\148%\149%\150%\151%\153%\154%\155%\156%\163%\169%\175%\183%\191%\199%\208%\210%\216%\222%\228%\235&\"&[&]&c&i&o&v&\173&\174&\175&\176&\194&\200&\206&\212&\219&\220'\019'\020'\"'0'5':'?'E'L'M'\131'\132'\133'\139'\145'\151'\158'\213'\216'\218'\219'\220'\221'\222'\231'\240'\249(\003(\005(\006(\007(\b(B(D(E(N(W(`(j(l(m(n(o(p(\170(\172(\173(\174(\175(\176(\180(\181(\182(\183(\184(\185(\186(\187(\191(\192(\197(\198(\202(\203(\204(\205(\206(\207(\208(\209(\210(\211(\213(\214(\215(\216(\217(\218(\219(\220(\221(\223(\225(\227(\230(\231(\235(\237(\239(\241(\242(\243(\247(\248(\249(\251(\252(\253(\255)\004)\006)\n)\014)\016)\021)\023)\028)\030)\031)$)&)*)2)8)>)C)K)M)P)R)S)W)Y)[)\\)`)b)f)h)i)j)n)t)u)v)z)\128)\129)\130)\131)\132)\133)\134)\135)\136)\137)\138)\139)\140)\141)\142)\143)\144)\145)\146)\147)\153)\159)\165)\172)\227)\228)\237)\246)\255*\t*\011*\012*\r*\014*\015*I*K*L*Z*\\*^*`*e*f*g*l*m*p*q*s*t*u*v*w*x*z*{*\132*\141*\150*\160*\161*\162*\167*\168*\170*\176*\177*\178*\183*\184*\242*\243*\244*\249*\250*\252+\002+\003+\004+\t+\n+\014+\015+\016+\017+\021+\022+\025+\026+\027+\028+\029+\030+#+$+%+'+)+*+++,+-+.+/+0+1+2+3+4+5+6+7+8+9+;+F+G+H+I+J+K+L+M+Q+S+T+U+V+W+X+Y+\\+]+_+`+a+b+d+e+f+g+i+k+m+o+q+r+t+w+y+z+{+|+}+~+\127+\128+\130+\131+\133+\135+\136+\137+\138+\139+\140+\141+\142+\144+\145+\146+\147+\148+\149+\150+\151+\152+\153+\155+\156+\157+\158+\159+\161+\162+\164+\165+\166+\167+\168+\170+\171+\172+\173+\175+\176+\178+\179+\180+\181+\182+\183+\184+\185+\186+\188+\190+\191+\192+\194+\195+\196+\198+\199+\200+\201+\203+\205+\206+\207+\209+\210+\211+\213+\214+\216+\218+\219+\220+\221+\223+\224+\226+\227+\228+\229+\230+\231+\232+\233+\234+\235+\237+\238+\239+\240+\241+\242+\243+\244+\246+\247+\248+\249+\250+\251+\252+\253+\254,\t,\n,\011,\012,\r,\014,\016,\018,\019,\021,\023,\024,\025,\026,\027,\028,\029,\030,!,#,$,&,',(,),*,,,.,0,1,2,3,4,5,6,9,<,=,@,C,E,F,G,H,J,K,L,M,N,O,P,Q,R,V,X,Y,[,\\,],^,_,`,c,f,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,y,z,{,},\129,\130,\131,\132,\133,\134,\135,\137,\138,\139,\141,\142,\143,\145,\146,\147,\148,\149,\151,\152,\154,\155,\156,\158,\160,\161,\163,\164,\165,\167,\168,\169,\171,\172,\174,\175,\177,\178,\179,\180,\181,\184,\185,\186,\190,\191,\192,\193,\197,\200,\201,\202,\203,\204,\205,\211,\216,\219,\221,\222,\224,\225,\226,\227,\228,\230,\231,\232,\233,\234,\235,\237,\238,\239,\240,\241,\242,\243,\244,\245,\246,\247,\248,\249,\250,\252,\253,\254,\255-\001-\002-\003-\004-\005-\006-\007-\b-\t-\n-\011-\012-\r-\014-\015-\016-\017-\018-\019-\020-\021-\022-\023-\025-\026-\027-\028-\029-\030-\031-#-$-%-&-'-(-)-*-+---.-/-0-1-2-3-4-5-6-7-8-9-<-=->-?-@-A-B-C-D-E-F-G-H-I-J-L-N-O-P-Q-R-S-V-W-X-Y-Z-[-\\-]-_-`-a-b-c-d-f-h-i-j-l-m-n-o-p-s-t-u-v-z-\127-\128-\134-\140-\141-\151-\157-\163-\164-\174-\179-\190-\191-\192-\194-\195-\196-\197-\198-\212-\218-\237-\243-\249-\255.\006.=.C.V.\\.b.h.o.\166.\171.\172.\173.\175.\176.\177.\178.\183.\186.\189.\192.\194.\196.\197.\198.\204.\206.\207.\208.\209.\210.\222.\232.\243.\253/\002/\014/\020/\021/+/7/=/B/G/S/Y/Z/p/|/\130/\134/\135/\136/\137/\138/\140/\141/\143/\144/\145/\146/\147/\149/\150/\151/\152/\153/\154/\155/\156/\164/\170/\173/\174/\175/\176/\177/\178/\179/\180/\181/\182/\183/\184/\185/\186/\188/\189/\190/\191/\192/\194/\195/\196/\197/\198/\201/\204/\206/\207/\208/\210/\211/\212/\213/\214/\216/\217/\218/\220/\221/\222/\223/\226/\227/\228/\229/\232/\233/\239/\241/\243/\245/\247/\248/\253/\2540\0020\0060\b0\t0\0120\r0\0140\0150\0160\0210\0220\0230\0240\0250\0260\0310 0!0\"0$0%0'0(0)0.0/0001020304050608090:0;0<0=0>0?0@0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0^0_0`0a0b0c0d0e0f0g0h0i0j0l0m0n0o0p0q0r0s0x0y0\1330\1430\1540\1640\1690\1810\1870\1880\2100\2220\2280\2330\2380\2501\0001\0011\0231#1)13181D1J1K1a1m1s1x1}1\1371\1431\1441\1661\1781\1841\2141\2311\2431\2532\b2\0182\0232#2)2*2@2L2R2W2\\2h2n2o2\1332\1452\1512\1612\1662\1782\1842\1852\2072\2192\2252\2302\2352\2472\2532\2543\0203 3&353@3M3R3^3d3e3{3\1353\1413\1463\1513\1633\1693\1703\1923\2043\2103\2263\2383\2524\0014\r4\0194\0204*464<4A4F4R4X4Y4o4{4\1294\1314\1384\1394\1414\1434\1444\1474\1544\1554\1584\1604\1614\1654\1674\1694\1704\1744\1764\1834\1904\1914\1924\1934\1944\1954\1964\1974\1984\1994\2004\2014\2024\2034\2044\2054\2064\2074\2084\2114\2124\2134\2144\2154\2204\2244\2264\2274\2284\2294\2304\2314\2324\2334\2344\2354\2364\2374\2384\2394\2404\2414\2434\2444\2454\2464\2474\2484\2494\2504\2534\2544\2555\0005\0025\0035\0045\0055\t5\n5\0115\0125\0175\0185\0195\0205\0215\0225\0235!5\"5#5$5%5&5'5)5+5,535:5;5<5=5>5?5B5I5P5Q5R5S5T5U5X5Y5Z5[5\\5]5^5_5`5a5b5c5d5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u")) and nullable = "\000\000\016\b\144\016\001\000\000\000\128p\128\000\031\255\000\003\128\000\000\127\255\000\000\000\128\128A\000\000\012\b\000" and first = - (144, "'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 '\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\n\000\b\000\000\000\002\000\000\000\000\000\004@\b \002\004\000\016@ \016\000\001H\000\000\128\000'\244\1681cT\223\153\207\176\021\160?\200\160\000\227 \000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\004\000\000\000@\000\b\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\001 \000@\000\000\000\128\000\000\000\000\000\002\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000H\000\000\000\128\000\000\000\000\000\002\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \000\000\000\000\000\000\000\000\000\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\004@\000 \002\004\000\144@ \016\000\001@\000\000\128\000'\244\1681cT\223\153\207\176\021\160?\192\160\000\227 \003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\001\144\128\016 \000H\t\138\016\003\176\006\000\000\000A\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\000\000\000\000\000\000\000\001\138\000\000 \000\000\000\000\000\000\000\000\128\000 \000@\000\000\016\000\000\004\000\000\000@\000\000\000\128\000 \000@\000\000\016\001\128\004\000\000\000@\000\004@\000 \002\004\000\016@ \016\000\001@\000\000\128\000\004@\b \002\004\000\016@ \016\000\001@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\128\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\000@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\003\148\128\016!\000N\t\155\144\003\176\006@\000\000A\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\148\128\021\004P\n\t\142\144\001\160\006\000\160\000c\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000'\244\1685cT\223\153\207\176\021\160?\192\160\001\227 \001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\144\128\016 \000J\t\139\016\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\n\000\b\000\000\000\002\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\001\248\002\193 \000\003\224A\000 @\004\n\203\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\b\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\016\000\000\000\000\000\000\000\002\000\001\128\000\024\000\000\n.\b\000\0000\000\000\016\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144@ \018\016\001@\000\000\128\000\004@\000 \002\004\000\144@ \016\000\001@\000\000\128\000\004\000\000 \000\000 \016@\012\000\000\000\000\000\128\000\000\004\000\000 \000\000 \016@\004\000\000\000\000\000\128\000\000\004@\b \002\004\000\144@ \016\000\001@\000\000\128\000\004@\b \002\004\000\016@ \016\000\001@\000\000\128\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\148\128\021\004P\n\t\142\144\001\160\006\000\160\000c\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\016\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\016@ \016\000\001H\000\000\128\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\021\160?\200\160\000\227 \000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\b\006\b\000\000 \000\000\000\000\000\000\000\000\000\016\000\000\b.\b\000\000 \000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\001\128\000\024\000\000\n.\n\000\0000\128\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\016\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\001\128\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\000 \000\000\000\000\003\148\128\016!\000N\t\155\144\003\176\006@\000\000A\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\000\128\000\000\000@\n\000\b\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\004\000\000\000\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\004\000\000 \000\000 \016@\012\000\000\000\000\000\128\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000'\244\1685cT\223\153\207\176\021\160?\192\160\001\227 |\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\144\000\000\000\000\n\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000") + (144, "'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 '\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\n\000\b\000\000\000\002\000\000\000\000\000\004@\b \002\004\000\016@ \016\000\001H\000\000\128\128'\244\1681cT\223\153\207\176\021\160?\200\160\000\227 \000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\004\000\000\000@\000\b\000\000\000\000\b\002\000\016\000\000\000\000\000\000\000\002\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\001 \000@\000\000\000\128\000\000\000\000\000\002\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000H\000\000\000\128\000\000\000\000\000\002\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\023\176?\200\160\000\227 \000\000\000\000\000\000\000\000\000\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\004@\000 \002\004\000\144@ \016\000\001@\000\000\128\000'\244\1681cT\223\153\207\176\021\160?\192\160\000\227 \003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000|\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\001\144\128\016 \000H\t\138\016\003\176\006\000\000\000A\000\001\144\128\016 \000J\t\138\016\003\176\006\000\000\000A\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\000\000\000\000\000\000\000\001\138\000\000 \000\000\000\000\000\000\000\000\128\000 \000@\000\000\016\000\000\004\000\000\000@\000\000\000\128\000 \000@\000\000\016\001\128\004\000\000\000@\000\004@\000 \002\004\000\016@ \016\000\001@\000\000\128\000\004@\b \002\004\000\016@ \016\000\001@\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\001\128\000\024\000\000\n.\b\000\0000\128\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\001\000\000@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\003\148\128\016!\000N\t\155\144\003\176\006@\000\000A\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000E\000\000\000\000\b\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\148\128\021\004P\n\t\142\144\001\160\006\000\160\000c\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\001\144\128\017\000P\n\t\142\016\001\160\006\000\160\000c\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000'\244\1685cT\223\153\207\176\021\160?\192\160\001\227 \001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\144\128\016 \000J\t\139\016\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\n\000\b\000\000\000\002\000\000\000\000\000\001\000\000\t \000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\001\248\002\193 \000\003\224A\000 @\004\n\203\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\003\144\000\030\005\000\014.\n\000\0000\002\000\016\000\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\b\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\004\n\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\000\016\000\000\b\b\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\002\000\016\000\000\000\000\000\000\000\002\000\001\128\000\024\000\000\n.\b\000\0000\000\000\016\000\000\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\144@ \018\016\001@\000\000\128\000\004@\000 \002\004\000\144@ \016\000\001@\000\000\128\000\004\000\000 \000\000 \016@\012\000\000\000\000\000\128\000\000\004\000\000 \000\000 \016@\004\000\000\000\000\000\128\000\000\004@\b \002\004\000\144@ \016\000\001@\000\000\128\000\004@\b \002\004\000\016@ \016\000\001@\000\000\128\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\003\148\128\016!\000N\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006\000\000\000A\000\001\148\128\016 \000J\t\139\144\003\176\006@\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\148\128\021\004P\n\t\142\144\001\160\006\000\160\000c\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\128\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\016\000\000\000\000\000\000\000\000\000\000\004@\b \002\004\000\016@ \016\000\001H\000\000\128\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000'\244\1681cT\223\153\207\176\021\160?\200\160\000\227 \000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c \001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000#\180\160\017aP\223\137\143\144\005\160>\128\160\000c #\180\160\017aP\223\137\143\144\005\160>\128\160\000c \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\b\006\b\000\000 \000\000\000\000\000\000\000\000\000\016\000\000\b.\b\000\000 \000\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\004\000\001\128\000\024\000\000\n.\n\000\0000\128\000\000\000\000\000\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\144\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\016\000\000\000\000\b\000\b\000\000\000\002\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\001\128\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\b\000\000 \000\000\000\000\003\148\128\016!\000N\t\155\144\003\176\006@\000\000A\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\128\000\028\004@\n\174\b\000\0000\000\000\000\000\000\000\000\128\000\000\000@\n\000\b\000\000\000\000\000\000\000\000\000\000\128\000\016\000@\002\136\b\000\000\000\000\000\000\000\000\000\004\000\000 \000\000 \016@\004\000\000\000\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020$\000J\t\138\144\003\176\006\000\000\000A\000\001\148\128\020$\000J\t\138\144\003\176\006 \000\001A\000\004\000\000 \000\000 \016@\012\000\000\000\000\000\128\000\000\000\128\000\016\000@\n\136\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000'\244\1685cT\223\153\207\176\021\160?\192\160\001\227 |\251\017\002\n\2526\128\001\012\028\000{G\005\128\1604\001\128\000\024\000\000\n.\b\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\144\000\000\000\000\n\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\003\128\000\028\005\000\014.\b\000\0000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000") end) (ET) (TI) @@ -101501,59 +101452,59 @@ end let use_file = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2961 lexer lexbuf) : (Parsetree.toplevel_phrase list)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2963 lexer lexbuf) : (Parsetree.toplevel_phrase list)) and toplevel_phrase = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2933 lexer lexbuf) : (Parsetree.toplevel_phrase)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2935 lexer lexbuf) : (Parsetree.toplevel_phrase)) and parse_val_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2927 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2929 lexer lexbuf) : (Longident.t)) and parse_pattern = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2923 lexer lexbuf) : (Parsetree.pattern)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2925 lexer lexbuf) : (Parsetree.pattern)) and parse_mty_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2919 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2921 lexer lexbuf) : (Longident.t)) and parse_module_type = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2915 lexer lexbuf) : (Parsetree.module_type)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2917 lexer lexbuf) : (Parsetree.module_type)) and parse_module_expr = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2911 lexer lexbuf) : (Parsetree.module_expr)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2913 lexer lexbuf) : (Parsetree.module_expr)) and parse_mod_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2907 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2909 lexer lexbuf) : (Longident.t)) and parse_mod_ext_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2903 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2905 lexer lexbuf) : (Longident.t)) and parse_expression = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2899 lexer lexbuf) : (Parsetree.expression)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2901 lexer lexbuf) : (Parsetree.expression)) and parse_core_type = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2895 lexer lexbuf) : (Parsetree.core_type)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2897 lexer lexbuf) : (Parsetree.core_type)) and parse_constr_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2891 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2893 lexer lexbuf) : (Longident.t)) and parse_any_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2873 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2875 lexer lexbuf) : (Longident.t)) and interface = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Legacy 2869 lexer lexbuf) : (Parsetree.signature)) + (Obj.magic (MenhirInterpreter.entry `Legacy 2871 lexer lexbuf) : (Parsetree.signature)) and implementation = fun lexer lexbuf -> @@ -101563,59 +101514,59 @@ module Incremental = struct let use_file = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2961 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2963 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) and toplevel_phrase = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2933 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2935 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) and parse_val_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2927 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2929 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_pattern = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2923 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2925 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) and parse_mty_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2919 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2921 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_module_type = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2915 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2917 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) and parse_module_expr = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2911 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2913 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) and parse_mod_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2907 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2909 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_mod_ext_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2903 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2905 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_expression = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2899 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2901 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) and parse_core_type = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2895 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2897 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) and parse_constr_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2891 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2893 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_any_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2873 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2875 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and interface = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2869 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2871 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) and implementation = fun initial_position -> @@ -101623,12 +101574,12 @@ module Incremental = struct end -# 5346 "src/ocaml/preprocess/parser_raw.mly" +# 5361 "src/ocaml/preprocess/parser_raw.mly" -# 101630 "src/ocaml/preprocess/parser_raw.ml" +# 101581 "src/ocaml/preprocess/parser_raw.ml" # 269 "" -# 101635 "src/ocaml/preprocess/parser_raw.ml" +# 101586 "src/ocaml/preprocess/parser_raw.ml" diff --git a/src/ocaml/preprocess/parser_raw.mli b/src/ocaml/preprocess/parser_raw.mli index 49e431914..3383ecdce 100644 --- a/src/ocaml/preprocess/parser_raw.mli +++ b/src/ocaml/preprocess/parser_raw.mli @@ -345,15 +345,15 @@ module MenhirInterpreter : sig | N_virtual_with_private_flag : (Asttypes.private_flag) nonterminal | N_virtual_with_mutable_flag : (Asttypes.mutable_flag) nonterminal | N_virtual_flag : (Asttypes.virtual_flag) nonterminal - | N_value_description : (Parsetree.value_description * string Location.loc option) nonterminal + | N_value_description : (Parsetree.value_description * string Asttypes.loc option) nonterminal | N_value_constant : (Parsetree.constant) nonterminal - | N_value : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + | N_value : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) nonterminal | N_val_longident : (Longident.t) nonterminal | N_val_ident : (string) nonterminal | N_val_extra_ident : (string) nonterminal | N_use_file : (Parsetree.toplevel_phrase list) nonterminal - | N_unboxed_constant : (Parser_types.Constant.t) nonterminal + | N_unboxed_constant : (Parsetree.constant) nonterminal | N_type_variance : (Asttypes.variance * Asttypes.injectivity) nonterminal | N_type_unboxed_longident : (Longident.t) nonterminal | N_type_trailing_no_hash : (string) nonterminal @@ -372,21 +372,21 @@ module MenhirInterpreter : sig | N_structure : (Parsetree.structure) nonterminal | N_strict_function_or_labeled_tuple_type : (Parsetree.core_type) nonterminal | N_strict_binding_modes : (Parsetree.modes -> Parsetree.expression) nonterminal - | N_str_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal + | N_str_exception_declaration : (Parsetree.type_exception * string Asttypes.loc option) nonterminal | N_single_attr_id : (string) nonterminal | N_simple_pattern_not_ident : (Parsetree.pattern) nonterminal | N_simple_pattern : (Parsetree.pattern) nonterminal | N_simple_expr : (Parsetree.expression) nonterminal | N_simple_delimited_pattern : (Parsetree.pattern) nonterminal | N_signed_value_constant : (Parsetree.constant) nonterminal - | N_signed_constant : (Parser_types.Constant.t) nonterminal + | N_signed_constant : (Parsetree.constant) nonterminal | N_signature_item : (Parsetree.signature_item) nonterminal | N_signature : (Parsetree.signature) nonterminal - | N_sig_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal + | N_sig_exception_declaration : (Parsetree.type_exception * string Asttypes.loc option) nonterminal | N_seq_expr : (Parsetree.expression) nonterminal - | N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_ : ((Longident.t Location.loc * Parsetree.expression) list) nonterminal + | N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_ : ((Longident.t Asttypes.loc * Parsetree.expression) list) nonterminal | N_separated_or_terminated_nonempty_list_SEMI_pattern_ : (Parsetree.pattern list) nonterminal - | N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_ : ((string Location.loc * Parsetree.expression) list) nonterminal + | N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_ : ((string Asttypes.loc * Parsetree.expression) list) nonterminal | N_separated_or_terminated_nonempty_list_SEMI_expr_ : (Parsetree.expression list) nonterminal | N_row_field : (Parsetree.row_field) nonterminal | N_reversed_separated_nontrivial_llist_COMMA_one_type_parameter_of_several_ : (Parsetree.core_type list) nonterminal @@ -397,17 +397,16 @@ module MenhirInterpreter : sig | N_reversed_separated_nonempty_llist_COMMA_core_type_ : (Parsetree.core_type list) nonterminal | N_reversed_separated_nonempty_llist_BAR_row_field_ : (Parsetree.row_field list) nonterminal | N_reversed_separated_nonempty_llist_AND_with_constraint_ : (Parsetree.with_constraint list) nonterminal - | N_reversed_separated_nonempty_llist_AND_comprehension_clause_binding_ : (Jane_syntax.Comprehensions.clause_binding list) nonterminal + | N_reversed_separated_nonempty_llist_AND_comprehension_clause_binding_ : (Parsetree.comprehension_clause_binding list) nonterminal | N_reversed_separated_nonempty_llist_AMPERSAND_core_type_no_attr_ : (Parsetree.core_type list) nonterminal | N_reversed_preceded_or_separated_nonempty_llist_BAR_match_case_ : (Parsetree.case list) nonterminal - | N_reversed_nonempty_llist_typevar_ : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list) nonterminal + | N_reversed_nonempty_llist_typevar_ : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal | N_reversed_nonempty_llist_name_tag_ : (string list) nonterminal | N_reversed_nonempty_llist_labeled_simple_expr_ : ((Parsetree.arg_label * Parsetree.expression) list) nonterminal | N_reversed_nonempty_llist_functor_arg_ : ((Lexing.position * Parsetree.functor_parameter) list) nonterminal - | N_reversed_nonempty_llist_comprehension_clause_ : (Jane_syntax.Comprehensions.clause list) nonterminal + | N_reversed_nonempty_llist_comprehension_clause_ : (Parsetree.comprehension_clause list) nonterminal | N_reversed_nonempty_concat_fun_param_as_list_ : (Parsetree.function_param list) nonterminal - | N_reversed_llist_preceded_CONSTRAINT_constrain__ : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) nonterminal + | N_reversed_llist_preceded_CONSTRAINT_constrain__ : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) nonterminal | N_reversed_labeled_tuple_pattern_pattern_no_exn_ : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) nonterminal | N_reversed_labeled_tuple_pattern_pattern_ : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) nonterminal | N_reversed_labeled_tuple_body : ((string option * Parsetree.expression) list) nonterminal @@ -416,11 +415,11 @@ module MenhirInterpreter : sig | N_reversed_bar_llist_constructor_declaration_ : (Parsetree.constructor_declaration list) nonterminal | N_reverse_product_jkind : (Parsetree.jkind_annotation list) nonterminal | N_record_expr_content : (Parsetree.expression option * - (Longident.t Location.loc * Parsetree.expression) list) nonterminal + (Longident.t Asttypes.loc * Parsetree.expression) list) nonterminal | N_rec_flag : (Asttypes.rec_flag) nonterminal | N_private_virtual_flags : (Asttypes.private_flag * Asttypes.virtual_flag) nonterminal | N_private_flag : (Asttypes.private_flag) nonterminal - | N_primitive_declaration : (Parsetree.value_description * string Location.loc option) nonterminal + | N_primitive_declaration : (Parsetree.value_description * string Asttypes.loc option) nonterminal | N_post_item_attribute : (Parsetree.attribute) nonterminal | N_possibly_poly_core_type_no_attr_ : (Parsetree.core_type) nonterminal | N_possibly_poly_core_type_ : (Parsetree.core_type) nonterminal @@ -451,33 +450,33 @@ module MenhirInterpreter : sig | N_option_preceded_EQUAL_expr__ : (Parsetree.expression option) nonterminal | N_option_preceded_COLON_core_type__ : (Parsetree.core_type option) nonterminal | N_option_preceded_COLON_atomic_type__ : (Parsetree.core_type option) nonterminal - | N_option_preceded_AS_mkrhs_LIDENT___ : (string Location.loc option) nonterminal - | N_option_jkind_constraint_ : (Ocaml_parsing.Jane_syntax.Jkind.annotation option) nonterminal + | N_option_preceded_AS_mkrhs_LIDENT___ : (string Asttypes.loc option) nonterminal + | N_option_jkind_constraint_ : (Parsetree.jkind_annotation option) nonterminal | N_option_SEMI_ : (unit option) nonterminal | N_option_BAR_ : (unit option) nonterminal | N_opt_ampersand : (bool) nonterminal | N_operator : (string) nonterminal - | N_open_description : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) nonterminal - | N_open_declaration : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) nonterminal + | N_open_description : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) nonterminal + | N_open_declaration : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) nonterminal | N_object_type : (Parsetree.core_type) nonterminal | N_nonempty_type_kind : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) nonterminal | N_nonempty_list_raw_string_ : (string list) nonterminal - | N_nonempty_list_newtype_ : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) nonterminal + | N_nonempty_list_newtype_ : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal | N_nonempty_list_mode_legacy_ : (Parsetree.modes) nonterminal | N_nonempty_list_mode_ : (Parsetree.modes) nonterminal | N_nonempty_list_modality_ : (Parsetree.modalities) nonterminal - | N_nonempty_list_mkrhs_LIDENT__ : (string Location.loc list) nonterminal - | N_newtypes : ((string Location.loc * Parsetree.jkind_annotation Location.loc option) list) nonterminal - | N_newtype : (string Location.loc * Parsetree.jkind_annotation Location.loc option) nonterminal + | N_nonempty_list_mkrhs_LIDENT__ : (string Asttypes.loc list) nonterminal + | N_newtypes : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal + | N_newtype : (string Asttypes.loc * Parsetree.jkind_annotation option) nonterminal | N_name_tag : (string) nonterminal | N_mutable_virtual_flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) nonterminal - | N_mutable_or_global_flag : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) nonterminal + | N_mutable_or_global_flag : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) nonterminal | N_mutable_flag : (Asttypes.mutable_flag) nonterminal | N_mty_longident : (Longident.t) nonterminal - | N_module_type_subst : (Parsetree.module_type_declaration * string Location.loc option) nonterminal - | N_module_type_declaration : (Parsetree.module_type_declaration * string Location.loc option) nonterminal + | N_module_type_subst : (Parsetree.module_type_declaration * string Asttypes.loc option) nonterminal + | N_module_type_declaration : (Parsetree.module_type_declaration * string Asttypes.loc option) nonterminal | N_module_type : (Parsetree.module_type) nonterminal - | N_module_subst : (Parsetree.module_substitution * string Location.loc option) nonterminal + | N_module_subst : (Parsetree.module_substitution * string Asttypes.loc option) nonterminal | N_module_name : (string option) nonterminal | N_module_expr : (Parsetree.module_expr) nonterminal | N_module_declaration_body : (Parsetree.module_type) nonterminal @@ -493,11 +492,11 @@ module MenhirInterpreter : sig | N_mk_longident_mod_ext_longident___anonymous_47_ : (Longident.t) nonterminal | N_mk_longident_mod_ext_longident_UIDENT_ : (Longident.t) nonterminal | N_mk_longident_mod_ext_longident_LIDENT_ : (Longident.t) nonterminal - | N_method_ : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + | N_method_ : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) nonterminal | N_meth_list : (Parsetree.object_field list * Asttypes.closed_flag) nonterminal | N_match_case : (Parsetree.case) nonterminal - | N_listx_SEMI_record_pat_field_UNDERSCORE_ : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) nonterminal + | N_listx_SEMI_record_pat_field_UNDERSCORE_ : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) nonterminal | N_list_use_file_element_ : (Parsetree.toplevel_phrase list list) nonterminal | N_list_text_str_structure_item__ : (Parsetree.structure_item list list) nonterminal | N_list_text_cstr_class_field__ : (Parsetree.class_field list list) nonterminal @@ -533,30 +532,30 @@ module MenhirInterpreter : sig | N_label_declarations : (Parsetree.label_declaration list) nonterminal | N_label_declaration_semi : (Parsetree.label_declaration) nonterminal | N_label_declaration : (Parsetree.label_declaration) nonterminal - | N_kind_abbreviation_decl : (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation) nonterminal - | N_jkind_constraint : (Ocaml_parsing.Jane_syntax.Jkind.annotation) nonterminal - | N_jkind_annotation : (Ocaml_parsing.Jane_syntax.Jkind.annotation) nonterminal - | N_jkind : (Parsetree.jkind_annotation) nonterminal + | N_kind_abbreviation_decl : (string Asttypes.loc * Parsetree.jkind_annotation) nonterminal + | N_jkind_desc : (Parsetree.jkind_annotation_desc) nonterminal + | N_jkind_constraint : (Parsetree.jkind_annotation) nonterminal + | N_jkind_annotation : (Parsetree.jkind_annotation) nonterminal | N_item_extension : (Parsetree.extension) nonterminal | N_interface : (Parsetree.signature) nonterminal | N_index_mod : (string) nonterminal | N_include_kind : (Parsetree.include_kind) nonterminal | N_implementation : (Parsetree.structure) nonterminal | N_ident : (string) nonterminal - | N_generic_type_declaration_nonrec_flag_type_kind_ : ((Asttypes.rec_flag * string Location.loc option) * + | N_generic_type_declaration_nonrec_flag_type_kind_ : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) nonterminal - | N_generic_type_declaration_no_nonrec_flag_type_subst_kind_ : ((Asttypes.rec_flag * string Location.loc option) * + | N_generic_type_declaration_no_nonrec_flag_type_subst_kind_ : ((Asttypes.rec_flag * string Asttypes.loc option) * Parsetree.type_declaration) nonterminal | N_generic_constructor_declaration_epsilon_ : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) nonterminal + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) nonterminal | N_generic_constructor_declaration_BAR_ : (Ocaml_parsing.Ast_helper.str * - (string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) nonterminal - | N_generalized_constructor_arguments : ((string Location.loc * Ocaml_parsing.Jane_syntax.Jkind.annotation option) - list * Parsetree.constructor_arguments * Parsetree.core_type option) nonterminal + (string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) nonterminal + | N_generalized_constructor_arguments : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.constructor_arguments * Parsetree.core_type option) nonterminal | N_functor_args : ((Lexing.position * Parsetree.functor_parameter) list) nonterminal | N_functor_arg : (Lexing.position * Parsetree.functor_parameter) nonterminal | N_function_type : (Parsetree.core_type) nonterminal @@ -571,7 +570,7 @@ module MenhirInterpreter : sig | N_extension_constructor_rebind_epsilon_ : (Parsetree.extension_constructor) nonterminal | N_extension_constructor_rebind_BAR_ : (Parsetree.extension_constructor) nonterminal | N_extension : (Parsetree.extension) nonterminal - | N_ext : (string Location.loc option) nonterminal + | N_ext : (string Asttypes.loc option) nonterminal | N_direction_flag : (Asttypes.direction_flag) nonterminal | N_delimited_type_supporting_local_open : (Parsetree.core_type) nonterminal | N_delimited_type : (Parsetree.core_type) nonterminal @@ -582,12 +581,12 @@ module MenhirInterpreter : sig | N_constr_longident : (Longident.t) nonterminal | N_constr_ident : (string) nonterminal | N_constr_extra_nonprefix_ident : (string) nonterminal - | N_constant : (Parser_types.Constant.t) nonterminal - | N_comprehension_iterator : (Jane_syntax.Comprehensions.iterator) nonterminal - | N_comprehension_clause_binding : (Jane_syntax.Comprehensions.clause_binding) nonterminal - | N_comprehension_clause : (Jane_syntax.Comprehensions.clause) nonterminal + | N_constant : (Parsetree.constant) nonterminal + | N_comprehension_iterator : (Parsetree.comprehension_iterator) nonterminal + | N_comprehension_clause_binding : (Parsetree.comprehension_clause_binding) nonterminal + | N_comprehension_clause : (Parsetree.comprehension_clause) nonterminal | N_clty_longident : (Longident.t) nonterminal - | N_class_type_declarations : (string Location.loc option * Parsetree.class_type_declaration list) nonterminal + | N_class_type_declarations : (string Asttypes.loc option * Parsetree.class_type_declaration list) nonterminal | N_class_type : (Parsetree.class_type) nonterminal | N_class_simple_expr : (Parsetree.class_expr) nonterminal | N_class_signature : (Parsetree.class_type) nonterminal @@ -601,7 +600,7 @@ module MenhirInterpreter : sig | N_class_expr : (Parsetree.class_expr) nonterminal | N_attribute : (Parsetree.attribute) nonterminal | N_attr_payload : (Parsetree.payload) nonterminal - | N_attr_id : (string Location.loc) nonterminal + | N_attr_id : (string Asttypes.loc) nonterminal | N_atomic_type : (Parsetree.core_type) nonterminal | N_atat_mode_expr : (Parsetree.modes) nonterminal | N_at_mode_expr : (Parsetree.modes) nonterminal diff --git a/src/ocaml/preprocess/parser_raw.mly b/src/ocaml/preprocess/parser_raw.mly index cbb8270b6..586817235 100644 --- a/src/ocaml/preprocess/parser_raw.mly +++ b/src/ocaml/preprocess/parser_raw.mly @@ -926,10 +926,10 @@ let unboxed_int sloc int_loc sign (n, m) = | None -> if Language_extension.is_enabled unboxed_literals_extension then (raise_error Syntaxerr.(Error(Missing_unboxed_literal_suffix (make_loc int_loc))); - Constant.unboxed (Integer (with_sign sign n, 'l'))) + Pconst_unboxed_integer (with_sign sign n, 'l')) else (not_expecting sloc "line number directive"; - Constant.unboxed (Integer (with_sign sign n, 'l'))) + Pconst_unboxed_integer (with_sign sign n, 'l')) let unboxed_float sign (f, m) = Pconst_unboxed_float (with_sign sign f, m) @@ -984,7 +984,14 @@ let merloc startpos ?endpos x = Pat.any ~loc:!default_loc (), None, [] let default_module_expr () = Mod.structure ~loc:!default_loc [] - let default_module_type () = Mty.signature ~loc:!default_loc [] + let default_module_type () = + let desc = { + psg_modalities = []; + psg_items = []; + psg_loc = !default_loc; + } + in + Mty.signature ~loc:!default_loc desc ] /* Tokens */ diff --git a/src/ocaml/preprocess/parser_recover.ml b/src/ocaml/preprocess/parser_recover.ml index b9f793f86..2b5549402 100644 --- a/src/ocaml/preprocess/parser_recover.ml +++ b/src/ocaml/preprocess/parser_recover.ml @@ -17,7 +17,14 @@ module Default = struct Pat.any ~loc:!default_loc (), None, [] let default_module_expr () = Mod.structure ~loc:!default_loc [] - let default_module_type () = Mty.signature ~loc:!default_loc [] + let default_module_type () = + let desc = { + psg_modalities = []; + psg_items = []; + psg_loc = !default_loc; + } + in + Mty.signature ~loc:!default_loc desc let value (type a) : a MenhirInterpreter.symbol -> a = function | MenhirInterpreter.T MenhirInterpreter.T_error -> () @@ -352,9 +359,9 @@ module Default = struct | MenhirInterpreter.N MenhirInterpreter.N_label_declaration_semi -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_label_declaration -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_kind_abbreviation_decl -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_jkind_desc -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_jkind_constraint -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_jkind_annotation -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_jkind -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_item_extension -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_interface -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_index_mod -> raise Not_found @@ -436,7 +443,7 @@ type decision = | Select of (int -> action list) let depth = - [|0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;3;2;2;1;2;1;2;3;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;2;3;4;5;2;3;4;5;2;3;4;5;1;1;1;1;1;1;1;1;2;3;1;4;5;1;1;1;2;2;2;1;1;1;1;1;1;2;1;2;3;1;1;2;3;1;1;1;1;2;1;2;3;4;1;2;3;1;5;6;5;6;7;8;1;2;1;2;2;3;2;3;4;1;1;2;1;2;3;1;1;2;4;1;2;1;1;1;2;2;1;2;3;4;5;1;2;2;3;4;5;6;1;2;3;2;3;1;1;2;3;2;3;4;5;6;1;2;7;1;1;1;1;1;2;1;1;2;3;1;2;1;1;1;1;2;3;1;2;3;1;1;1;2;1;2;2;1;1;2;3;1;1;1;1;2;3;4;2;3;1;2;3;1;2;1;1;1;1;1;1;2;1;1;2;3;1;1;2;2;4;3;4;5;4;1;2;1;2;3;4;5;4;4;1;2;3;3;1;1;2;3;4;5;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;4;1;1;1;1;1;5;6;7;8;9;8;8;9;3;4;5;4;4;5;6;4;5;6;5;5;6;7;1;2;1;2;3;2;3;2;2;3;2;3;4;5;3;1;10;7;8;9;10;9;9;10;11;2;1;2;3;4;3;4;5;6;7;4;5;6;7;8;2;3;2;3;4;5;3;4;5;6;3;2;3;3;3;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;2;3;4;5;4;4;5;6;3;4;5;6;5;5;6;7;2;3;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;4;5;6;3;3;4;5;2;2;3;4;5;6;7;2;3;4;5;2;1;2;1;1;3;4;2;3;1;2;1;3;4;2;3;5;1;2;1;2;3;2;3;4;5;3;4;3;4;4;5;6;2;1;2;1;2;3;4;4;5;6;7;8;9;10;11;8;1;1;1;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;2;2;2;2;1;2;2;2;2;1;1;2;3;4;1;1;5;6;6;1;2;3;4;1;1;2;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;1;2;3;4;1;2;3;1;1;2;3;1;1;2;3;3;1;1;4;1;1;1;2;3;1;1;1;1;1;2;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;1;1;2;1;1;2;3;1;1;2;2;1;1;2;3;1;1;1;2;1;2;1;1;1;1;1;2;1;1;1;1;1;1;1;1;2;3;4;5;6;7;8;9;5;4;5;1;1;2;1;1;3;1;1;1;2;3;4;1;2;3;1;1;1;4;2;1;2;1;2;3;4;5;6;7;8;4;3;4;1;1;1;3;3;2;3;1;2;3;1;2;4;5;6;1;2;3;2;3;2;3;4;5;6;7;8;4;3;4;3;3;3;4;5;2;3;2;3;2;4;5;4;5;3;4;2;3;1;2;3;3;4;4;2;3;1;4;2;3;4;5;1;6;5;2;2;3;2;2;3;8;9;8;1;8;2;3;2;1;1;2;3;4;5;6;7;8;4;3;4;3;3;2;3;4;5;6;7;8;9;5;4;5;4;4;1;2;3;4;5;6;7;8;9;5;4;5;4;4;1;1;2;1;2;3;4;5;1;2;6;3;4;2;3;4;5;3;4;2;1;2;3;4;1;1;2;3;4;5;1;2;1;2;2;3;1;2;3;1;2;1;2;3;4;1;5;2;1;2;3;1;2;4;5;4;5;6;2;3;4;5;1;1;2;3;4;5;2;1;2;3;3;1;1;1;4;5;2;3;2;3;4;2;3;4;1;3;2;3;3;1;4;2;3;4;5;3;4;1;5;2;3;2;3;3;4;5;2;2;1;1;6;7;1;1;1;1;1;1;1;1;1;2;3;1;1;1;1;2;3;1;2;3;1;2;3;1;1;2;1;2;3;1;1;2;1;1;2;3;3;4;5;6;4;4;2;2;3;2;3;1;2;3;4;5;6;3;4;2;3;4;5;6;3;4;5;1;2;1;2;1;2;3;4;5;3;4;5;6;1;3;4;1;1;2;2;3;4;5;6;7;2;1;2;3;4;5;3;3;4;3;4;2;3;1;2;3;4;5;6;7;8;3;4;5;5;6;7;8;9;3;4;5;3;4;2;1;1;1;2;4;1;2;5;6;1;2;3;4;5;6;7;8;9;10;7;6;1;1;1;1;1;2;1;1;2;3;4;1;1;4;5;6;7;8;9;10;1;1;1;1;2;3;4;1;2;3;4;5;1;1;2;3;4;2;3;2;3;2;3;1;2;3;4;5;1;2;3;4;5;1;1;1;2;3;4;5;2;1;2;1;2;2;3;2;3;4;5;1;2;3;4;5;6;7;4;3;4;1;1;1;1;3;4;5;6;2;3;1;2;1;2;3;1;1;2;3;4;5;6;3;2;3;4;5;6;3;2;1;2;1;2;3;4;5;2;2;3;4;5;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;7;4;3;4;3;4;5;6;3;2;3;4;5;6;3;1;2;1;2;3;4;1;2;5;1;1;2;3;1;4;1;1;2;3;4;5;6;7;8;7;8;9;3;4;5;6;7;6;7;8;2;3;4;3;4;5;2;2;3;4;1;2;3;4;5;4;5;6;2;3;4;1;2;3;2;3;4;5;6;7;8;4;3;4;3;3;2;3;2;3;1;2;3;4;5;6;7;8;7;8;9;3;4;5;4;5;6;3;3;4;5;1;3;1;2;4;2;3;3;4;5;3;4;5;3;4;5;6;7;1;2;3;5;6;7;5;6;7;3;1;2;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;3;4;5;6;7;8;5;1;2;2;1;2;6;4;5;3;4;5;3;4;5;2;6;1;1;7;8;9;10;11;5;1;2;3;2;3;4;2;3;1;1;4;5;3;4;5;6;7;1;2;3;4;5;2;1;2;2;1;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;1;2;3;4;5;2;1;2;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;4;3;3;1;8;9;2;1;4;4;5;4;5;6;3;4;5;6;7;8;9;4;4;5;4;5;6;3;4;4;5;6;7;8;9;4;5;4;5;6;3;4;5;3;1;2;3;1;2;3;4;5;1;4;5;1;2;3;3;7;6;7;8;9;6;7;3;4;5;2;3;3;2;4;4;5;6;7;8;9;10;11;12;13;14;11;6;7;8;9;10;11;8;4;4;5;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;2;3;4;5;6;2;3;2;4;1;2;3;4;2;3;1;2;3;2;3;4;5;2;2;3;4;2;2;3;2;3;4;5;6;7;2;3;2;3;4;2;3;4;5;6;7;2;2;3;2;3;4;8;3;4;5;6;7;2;3;4;5;1;2;1;2;3;4;6;7;8;1;2;2;3;4;1;1;2;3;1;5;1;1;1;1;1;2;3;1;2;3;4;1;1;2;2;5;6;7;8;1;2;3;1;2;1;1;2;3;1;2;3;4;5;3;4;2;1;2;1;1;2;3;4;5;6;2;3;4;5;6;4;2;3;4;2;6;7;8;9;1;2;3;1;4;5;6;2;5;6;3;4;5;2;2;3;4;5;6;3;2;2;3;4;5;6;7;2;2;3;2;3;4;2;2;3;4;5;6;6;7;8;2;3;3;4;4;5;4;5;6;2;4;5;6;7;8;8;9;10;8;9;10;10;11;12;4;5;5;6;7;5;6;7;7;8;9;5;6;2;3;4;5;1;2;3;4;5;1;2;6;7;2;3;4;5;6;7;1;2;3;4;5;6;8;4;5;6;1;2;1;2;3;4;1;2;1;2;3;4;1;2;1;2;3;4;5;1;2;3;6;7;8;1;2;9;10;1;1;2;3;4;5;1;1;2;3;6;7;8;5;6;7;1;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;6;7;8;2;3;4;5;6;7;4;5;6;7;8;1;2;3;4;5;6;7;9;4;5;6;7;1;2;5;6;1;2;1;2;3;4;1;2;3;4;1;5;1;1;2;3;2;3;6;7;8;1;2;1;2;3;3;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;3;4;5;6;1;2;3;4;2;3;1;1;1;7;2;3;4;5;6;3;4;1;2;1;2;3;3;4;4;5;1;2;1;1;2;9;10;1;2;3;4;5;6;7;8;9;11;2;3;4;5;6;7;1;2;3;4;1;1;1;2;1;2;3;1;2;3;1;4;1;3;5;8;9;1;2;3;4;5;6;7;8;9;10;1;1;1;1;1;1;1;1;2;1;1;2;1;2;3;4;5;6;1;1;2;3;4;5;6;7;8;9;1;2;1;1;2;3;4;5;6;1;1;2;3;1;1;2;3;4;1;1;2;7;8;9;10;1;1;1;2;3;4;5;6;4;4;1;2;3;3;4;5;3;3;1;2;1;1;2;2;1;2;1;2;3;4;5;6;1;1;1;2;3;1;1;2;1;3;4;5;6;5;6;7;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;4;5;6;1;1;2;1;3;4;5;6;7;8;9;10;11;6;7;8;5;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;6;7;8;9;10;5;6;7;4;1;2;3;4;1;2;3;1;1;2;3;4;5;6;7;2;3;4;5;6;1;2;3;4;1;2;1;2;1;2;1;1;2;1;3;2;2;3;2;3;7;3;4;5;6;2;3;4;5;2;3;3;4;5;4;1;2;5;6;2;3;4;5;1;2;3;4;4;5;1;2;1;1;2;2;1;2;3;4;1;2;7;8;1;2;3;4;5;6;7;8;9;1;1;1;1;1;1;1;1;2;1;1;1;2;1;2;3;4;5;1;2;1;1;1;1;2;3;1;1;1;3;4;3;4;2;3;4;2;3;4;10;6;7;8;1;2;3;4;5;9;10;2;2;1;1;1;1;1;2;3;4;4;5;6;7;8;9;5;6;7;8;9;3;4;5;7;8;8;9;8;8;2;3;4;5;6;7;8;9;5;4;5;4;4;2;3;3;4;5;4;5;6;2;7;8;7;8;9;10;7;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;4;5;6;2;3;4;1;2;3;4;5;6;1;7;1;2;3;2;2;3;2;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;2;3;4;2;2;2;2;8;9;10;11;6;7;8;9;10;2;1;1;4;5;6;7;8;9;10;5;6;7;8;9;3;4;5;6;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;3;4;5;6;7;8;9;10;11;10;10;11;12;9;10;11;12;11;11;12;13;4;5;6;7;6;6;7;8;5;6;7;8;7;7;8;9;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;3;2;3;2;3;6;7;8;9;6;2;2;3;4;5;4;5;6;7;5;6;7;8;5;2;3;6;7;8;3;4;3;4;5;6;7;1;2;1;0;1;2;1;0;1;2;3;1;1;1;2;3;4;5;3;3;1;1;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;2;1;1;2;0;1;2;3;3;3;3;3;3;1;2;3;3;3;3;3;3;1;1;1;2;1;2;1;2;3;1;2;0;1;1;1;2;2;2;3;4;2;1;1;2;3;4;1;2;|] + [|0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;3;2;2;1;2;1;2;3;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;2;3;4;5;2;3;4;5;2;3;4;5;1;1;1;1;1;1;1;1;2;3;1;4;5;1;1;1;2;2;2;1;1;1;1;1;1;2;1;2;3;1;1;2;3;1;1;1;1;2;1;2;3;4;1;2;1;3;1;5;2;1;2;2;3;2;3;4;1;1;2;1;1;2;2;3;4;1;1;2;3;1;1;2;4;1;2;1;1;1;2;2;1;2;3;4;5;2;1;2;3;2;3;1;2;2;3;4;5;6;1;2;3;2;3;1;1;2;3;2;3;4;5;6;1;2;7;1;1;1;1;1;2;1;1;2;3;1;2;1;1;1;1;2;3;1;2;3;1;1;1;2;1;2;2;1;1;2;3;1;1;1;1;2;3;4;2;3;1;2;3;1;2;1;1;1;1;1;1;2;1;1;2;3;1;1;2;2;4;3;4;5;4;1;2;1;2;3;4;5;4;4;1;2;3;3;1;1;2;3;4;5;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;4;1;1;1;1;1;5;6;7;8;9;8;8;9;3;4;5;4;4;5;6;4;5;6;5;5;6;7;1;2;1;2;3;2;3;2;2;3;2;3;4;5;3;1;10;7;8;9;10;9;9;10;11;2;1;2;3;4;3;4;5;6;7;4;5;6;7;8;2;3;2;3;4;5;3;4;5;6;3;2;3;3;3;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;2;3;4;5;4;4;5;6;3;4;5;6;5;5;6;7;2;3;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;4;5;6;3;3;4;5;2;2;3;4;5;6;7;2;3;4;5;2;1;2;1;1;3;4;2;3;1;2;1;3;4;2;3;5;1;2;1;2;3;2;3;4;5;3;4;3;4;4;5;6;2;1;2;1;2;3;4;4;5;6;7;8;9;10;11;8;1;1;1;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;2;2;2;2;1;2;2;2;2;1;1;2;3;4;1;1;5;6;6;1;2;3;4;1;1;2;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;1;2;3;4;1;2;3;1;1;2;3;1;1;2;3;3;1;1;4;1;1;1;2;3;1;1;1;1;1;2;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;1;1;2;1;1;2;3;1;1;2;2;1;1;2;3;1;1;1;2;1;2;1;1;1;1;1;2;1;1;1;1;1;1;1;1;2;3;4;5;6;7;8;9;5;4;5;1;1;2;1;1;3;1;1;1;2;3;4;1;2;3;1;1;1;4;2;1;2;1;2;3;4;5;6;7;8;4;3;4;1;1;1;3;3;2;3;1;2;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;8;4;3;4;3;3;3;4;5;2;3;2;3;2;4;5;4;5;3;4;2;3;1;2;3;3;4;4;2;3;1;4;2;3;4;5;1;6;5;2;2;3;2;2;3;8;9;8;1;8;2;3;2;1;1;2;3;4;5;6;7;8;4;3;4;3;3;2;3;4;5;6;7;8;9;5;4;5;4;4;1;2;3;4;5;6;7;8;9;5;4;5;4;4;1;1;2;1;2;3;4;5;1;2;6;3;4;2;3;4;5;3;4;2;1;2;3;4;1;1;2;3;4;5;1;2;1;2;2;3;1;2;3;1;2;1;2;3;4;1;5;2;1;2;3;1;2;4;5;4;5;6;2;3;4;5;1;1;2;3;4;5;2;1;2;3;3;1;1;1;4;5;2;3;2;3;4;2;3;4;1;3;2;3;3;1;4;2;3;4;5;3;4;1;5;2;3;2;3;3;4;5;2;2;1;1;6;7;1;1;1;1;1;1;1;1;1;2;3;1;1;1;1;2;3;1;2;3;1;2;3;1;1;2;1;2;3;1;1;2;1;1;2;3;3;4;5;6;4;4;2;2;3;2;3;1;2;3;4;5;6;3;4;2;3;4;5;6;3;4;5;1;2;1;2;1;2;3;4;5;3;4;5;6;1;3;4;1;1;2;2;3;4;5;6;7;2;1;2;3;4;5;3;3;4;3;4;2;3;1;2;3;4;5;6;7;8;3;4;5;5;6;7;8;9;3;4;5;3;4;2;1;1;1;2;4;1;2;5;6;1;2;3;4;5;6;7;8;9;10;7;6;1;1;1;1;1;2;1;1;2;3;4;1;1;4;5;6;7;8;9;10;1;1;1;1;2;3;4;1;2;3;4;5;1;1;2;3;4;2;3;2;3;2;3;1;2;3;4;5;1;2;3;4;5;1;1;1;2;3;4;5;2;1;2;1;2;2;3;2;3;4;5;1;2;3;4;5;6;7;4;3;4;1;1;1;1;3;4;5;6;2;3;1;2;1;2;3;1;1;2;3;4;5;6;3;2;3;4;5;6;3;2;1;2;1;2;3;4;5;2;2;3;4;5;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;3;2;3;4;5;6;7;4;3;4;3;4;5;6;3;2;3;4;5;6;3;1;2;1;2;3;4;1;2;5;1;1;2;3;1;4;1;1;2;3;4;5;6;7;8;7;8;9;3;4;5;6;7;6;7;8;2;3;4;3;4;5;2;2;3;4;1;2;3;4;5;4;5;6;2;3;4;1;2;3;2;3;4;5;6;7;8;4;3;4;3;3;2;3;2;3;1;2;3;4;5;6;7;8;7;8;9;3;4;5;4;5;6;3;3;4;5;1;3;1;2;4;2;3;3;4;5;3;4;5;3;4;5;6;7;1;2;3;5;6;7;5;6;7;3;1;2;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;7;3;4;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;5;6;7;8;9;10;11;12;9;3;4;5;6;7;8;5;1;2;2;1;2;6;4;5;3;4;5;3;4;5;2;6;1;1;7;8;9;10;11;5;1;2;3;2;3;4;2;3;1;1;4;5;3;4;5;6;7;1;2;3;4;5;2;1;2;2;1;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;3;4;5;6;7;8;5;2;1;2;3;4;5;2;1;2;3;4;5;6;7;8;9;10;7;2;3;4;5;6;7;4;3;3;1;8;9;2;1;4;4;5;4;5;6;3;4;5;6;7;8;9;4;4;5;4;5;6;3;4;4;5;6;7;8;9;4;5;4;5;6;3;4;5;3;1;2;3;1;2;3;4;5;1;4;5;1;2;3;3;7;6;7;8;9;6;7;3;4;5;2;3;3;2;4;4;5;6;7;8;9;10;11;12;13;14;11;6;7;8;9;10;11;8;4;4;5;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;2;3;4;5;6;2;3;2;4;1;2;3;4;2;3;1;2;3;2;3;4;5;2;2;3;4;2;2;3;2;3;4;5;6;7;2;3;2;3;4;2;3;4;5;6;7;2;2;3;2;3;4;8;3;4;5;6;7;2;3;4;5;1;2;1;2;3;4;6;7;8;1;2;2;3;4;1;1;2;3;1;5;1;1;1;1;1;2;3;1;2;3;4;5;6;7;8;1;2;3;1;2;1;1;2;3;1;2;3;4;5;3;4;2;1;2;1;1;2;3;4;5;6;5;6;7;8;6;7;8;9;6;2;3;4;5;6;4;2;3;4;2;6;7;8;9;1;2;3;1;4;5;6;2;5;6;3;4;5;2;2;3;4;5;6;3;2;2;3;4;5;6;7;2;2;3;2;3;4;2;2;3;4;5;6;6;7;8;2;3;3;4;4;5;4;5;6;2;4;5;6;7;8;8;9;10;8;9;10;10;11;12;4;5;5;6;7;5;6;7;7;8;9;5;6;2;3;4;5;1;2;3;4;5;1;2;6;7;2;3;4;5;6;7;1;2;3;4;5;6;8;4;5;6;1;2;1;2;3;4;1;2;1;2;3;4;1;2;1;2;3;4;5;1;2;3;6;7;8;1;2;9;10;1;1;2;3;4;5;1;1;2;3;6;7;8;5;6;7;1;2;2;1;2;3;4;1;5;1;1;2;3;2;3;6;7;8;1;2;1;2;3;3;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;3;4;5;6;1;2;3;4;2;3;1;1;1;7;2;3;4;5;6;3;4;1;2;1;2;3;3;4;4;5;1;2;1;1;2;9;10;1;2;3;4;5;6;7;8;9;11;2;3;4;5;6;1;1;1;2;3;1;1;2;1;3;4;5;6;5;6;7;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;4;5;6;1;1;2;1;3;4;5;6;7;8;9;10;11;6;7;8;5;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;6;7;8;9;10;5;6;7;4;1;2;3;4;1;2;3;1;1;2;3;4;5;6;7;2;3;4;5;6;1;2;3;4;1;2;1;2;1;2;1;1;2;1;3;2;2;3;2;3;7;3;4;5;6;2;3;4;5;2;3;3;1;2;3;4;1;1;1;2;1;2;3;1;2;3;1;4;1;3;5;4;5;4;1;2;5;6;2;3;4;5;1;2;3;4;4;5;1;2;1;1;2;2;1;2;3;4;1;2;7;8;1;2;3;4;5;6;7;8;9;1;1;1;1;1;1;1;1;2;1;1;1;2;1;2;3;4;5;1;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;2;3;1;1;1;3;4;3;4;2;3;4;2;3;4;10;6;7;8;1;2;3;4;5;3;4;9;10;2;2;1;1;1;1;1;2;3;4;2;3;4;5;6;7;8;9;5;6;7;8;9;3;4;5;7;8;8;9;8;8;2;3;4;5;6;7;8;9;5;4;5;4;4;2;3;3;4;5;4;5;6;2;7;8;7;8;9;10;7;2;3;4;5;6;7;8;5;4;5;4;5;6;7;4;4;5;6;2;3;4;1;2;3;4;5;6;1;7;1;2;3;2;2;3;2;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;1;2;3;4;2;1;2;1;1;2;1;1;2;2;1;1;2;3;1;2;1;2;3;4;5;6;4;4;3;4;5;3;3;1;8;9;10;11;6;7;8;9;10;2;1;1;4;5;6;7;8;9;10;5;6;7;8;9;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;6;7;8;2;3;4;5;6;7;4;5;6;7;8;1;2;3;4;5;6;7;9;4;5;6;7;1;2;5;6;1;2;1;2;3;4;1;2;3;4;5;6;7;8;9;1;2;3;4;5;6;7;8;9;10;1;1;1;1;1;1;1;1;2;1;1;2;1;2;3;4;5;6;1;2;1;1;2;3;4;5;6;7;8;9;10;2;1;1;2;2;5;6;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;3;4;5;6;7;8;9;10;11;10;10;11;12;9;10;11;12;11;11;12;13;4;5;6;7;6;6;7;8;5;6;7;8;7;7;8;9;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;3;6;2;2;3;1;4;5;4;5;6;7;5;6;7;8;5;2;3;6;7;8;3;4;3;4;5;6;7;1;2;1;0;1;2;1;0;1;2;3;1;1;1;2;3;4;5;3;3;1;1;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;2;1;1;2;0;1;2;3;3;3;3;3;3;1;2;3;3;3;3;3;3;1;1;1;2;1;2;1;2;3;1;2;0;1;1;1;2;2;2;3;4;2;1;1;2;3;4;1;2;|] let can_pop (type a) : a terminal -> bool = function | T_WITH -> true @@ -635,9 +642,9 @@ let recover = let r72 = Sub (r34) :: r71 in let r73 = S (T T_DOT) :: r72 in let r74 = Sub (r67) :: r73 in - let r75 = [R 306] in + let r75 = [R 308] in let r76 = S (T T_UNDERSCORE) :: r75 in - let r77 = [R 309] in + let r77 = [R 302] in let r78 = Sub (r76) :: r77 in let r79 = [R 797] in let r80 = S (T T_RPAREN) :: r79 in @@ -648,9 +655,9 @@ let recover = let r85 = S (T T_RPAREN) :: r84 in let r86 = Sub (r78) :: r85 in let r87 = S (T T_COLON) :: r86 in - let r88 = [R 308] in + let r88 = [R 310] in let r89 = S (T T_RPAREN) :: r88 in - let r90 = [R 305] in + let r90 = [R 307] in let r91 = [R 139] in let r92 = S (T T_RPAREN) :: r91 in let r93 = S (N N_module_type) :: r92 in @@ -662,2052 +669,2054 @@ let recover = let r99 = S (T T_COLON) :: r98 in let r100 = Sub (r60) :: r99 in let r101 = [R 729] in - let r102 = [R 833] in - let r103 = Sub (r78) :: r102 in - let r104 = S (T T_COLON) :: r103 in - let r105 = [R 303] in - let r106 = [R 1232] in - let r107 = [R 821] in - let r108 = Sub (r26) :: r107 in - let r109 = [R 1176] in - let r110 = Sub (r108) :: r109 in - let r111 = S (T T_STAR) :: r110 in - let r112 = Sub (r26) :: r111 in - let r113 = [R 857] in - let r114 = R 454 :: r113 in - let r115 = [R 535] in - let r116 = S (T T_END) :: r115 in - let r117 = Sub (r114) :: r116 in - let r118 = [R 290] in - let r119 = R 452 :: r118 in - let r120 = R 784 :: r119 in - let r121 = R 1223 :: r120 in - let r122 = R 639 :: r121 in - let r123 = S (T T_LIDENT) :: r122 in - let r124 = R 1228 :: r123 in - let r125 = R 446 :: r124 in - let r126 = R 151 :: r125 in - let r127 = S (T T_LIDENT) :: r106 in - let r128 = [R 507] in - let r129 = Sub (r127) :: r128 in - let r130 = [R 1225] in - let r131 = Sub (r129) :: r130 in - let r132 = [R 116] in - let r133 = S (T T_FALSE) :: r132 in - let r134 = [R 120] in - let r135 = Sub (r133) :: r134 in - let r136 = [R 287] in - let r137 = R 446 :: r136 in - let r138 = R 280 :: r137 in - let r139 = Sub (r135) :: r138 in - let r140 = [R 739] in - let r141 = Sub (r139) :: r140 in - let r142 = [R 864] in + let r102 = [R 305] in + let r103 = [R 1232] in + let r104 = [R 821] in + let r105 = Sub (r26) :: r104 in + let r106 = [R 1176] in + let r107 = Sub (r105) :: r106 in + let r108 = S (T T_STAR) :: r107 in + let r109 = Sub (r26) :: r108 in + let r110 = [R 857] in + let r111 = R 454 :: r110 in + let r112 = R 658 :: r111 in + let r113 = [R 535] in + let r114 = S (T T_END) :: r113 in + let r115 = Sub (r112) :: r114 in + let r116 = [R 565] in + let r117 = S (T T_LIDENT) :: r116 in + let r118 = [R 659] in + let r119 = S (T T_LIDENT) :: r103 in + let r120 = [R 507] in + let r121 = Sub (r119) :: r120 in + let r122 = [R 1225] in + let r123 = Sub (r121) :: r122 in + let r124 = [R 116] in + let r125 = S (T T_FALSE) :: r124 in + let r126 = [R 120] in + let r127 = Sub (r125) :: r126 in + let r128 = [R 287] in + let r129 = R 446 :: r128 in + let r130 = R 280 :: r129 in + let r131 = Sub (r127) :: r130 in + let r132 = [R 739] in + let r133 = Sub (r131) :: r132 in + let r134 = [R 865] in + let r135 = R 452 :: r134 in + let r136 = Sub (r133) :: r135 in + let r137 = R 717 :: r136 in + let r138 = S (T T_PLUSEQ) :: r137 in + let r139 = Sub (r123) :: r138 in + let r140 = R 1228 :: r139 in + let r141 = R 446 :: r140 in + let r142 = [R 866] in let r143 = R 452 :: r142 in - let r144 = Sub (r141) :: r143 in + let r144 = Sub (r133) :: r143 in let r145 = R 717 :: r144 in let r146 = S (T T_PLUSEQ) :: r145 in - let r147 = Sub (r131) :: r146 in - let r148 = R 1228 :: r147 in + let r147 = Sub (r123) :: r146 in + let r148 = [R 1227] in let r149 = R 446 :: r148 in - let r150 = [R 291] in - let r151 = R 452 :: r150 in - let r152 = R 784 :: r151 in - let r153 = R 1223 :: r152 in - let r154 = R 639 :: r153 in - let r155 = S (T T_LIDENT) :: r154 in - let r156 = R 1228 :: r155 in - let r157 = [R 865] in - let r158 = R 452 :: r157 in - let r159 = Sub (r141) :: r158 in - let r160 = R 717 :: r159 in - let r161 = S (T T_PLUSEQ) :: r160 in - let r162 = Sub (r131) :: r161 in - let r163 = [R 1227] in - let r164 = R 446 :: r163 in - let r165 = S (T T_UNDERSCORE) :: r164 in - let r166 = R 1234 :: r165 in - let r167 = [R 672] in - let r168 = Sub (r166) :: r167 in - let r169 = [R 813] in - let r170 = Sub (r168) :: r169 in - let r171 = [R 1230] in - let r172 = S (T T_RPAREN) :: r171 in - let r173 = [R 674] in - let r174 = [R 447] in - let r175 = [R 1226] in - let r176 = R 446 :: r175 in - let r177 = Sub (r60) :: r176 in - let r178 = [R 673] in - let r179 = [R 814] in - let r180 = [R 310] in - let r181 = [R 585] in - let r182 = S (T T_DOTDOT) :: r181 in - let r183 = [R 1224] in - let r184 = [R 586] in - let r185 = [R 119] in - let r186 = S (T T_RPAREN) :: r185 in - let r187 = [R 115] in - let r188 = [R 594] in - let r189 = [R 153] in - let r190 = S (T T_RBRACKET) :: r189 in - let r191 = Sub (r17) :: r190 in - let r192 = [R 264] in - let r193 = [R 931] in - let r194 = [R 511] in - let r195 = [R 476] in - let r196 = Sub (r3) :: r195 in - let r197 = S (T T_MINUSGREATER) :: r196 in - let r198 = S (N N_pattern) :: r197 in - let r199 = [R 800] in - let r200 = Sub (r198) :: r199 in - let r201 = [R 169] in - let r202 = Sub (r200) :: r201 in - let r203 = S (T T_WITH) :: r202 in - let r204 = Sub (r3) :: r203 in - let r205 = R 446 :: r204 in - let r206 = [R 762] in + let r150 = S (T T_UNDERSCORE) :: r149 in + let r151 = R 1234 :: r150 in + let r152 = [R 672] in + let r153 = Sub (r151) :: r152 in + let r154 = [R 813] in + let r155 = Sub (r153) :: r154 in + let r156 = [R 1230] in + let r157 = S (T T_RPAREN) :: r156 in + let r158 = [R 674] in + let r159 = [R 563] in + let r160 = S (T T_LIDENT) :: r159 in + let r161 = [R 304] in + let r162 = [R 728] in + let r163 = Sub (r78) :: r162 in + let r164 = [R 447] in + let r165 = [R 1226] in + let r166 = R 446 :: r165 in + let r167 = Sub (r60) :: r166 in + let r168 = [R 673] in + let r169 = [R 814] in + let r170 = [R 303] in + let r171 = [R 291] in + let r172 = R 452 :: r171 in + let r173 = R 784 :: r172 in + let r174 = R 1223 :: r173 in + let r175 = [R 585] in + let r176 = S (T T_DOTDOT) :: r175 in + let r177 = [R 1224] in + let r178 = [R 586] in + let r179 = [R 119] in + let r180 = S (T T_RPAREN) :: r179 in + let r181 = [R 115] in + let r182 = [R 594] in + let r183 = [R 153] in + let r184 = S (T T_RBRACKET) :: r183 in + let r185 = Sub (r17) :: r184 in + let r186 = [R 264] in + let r187 = [R 931] in + let r188 = [R 511] in + let r189 = [R 476] in + let r190 = Sub (r3) :: r189 in + let r191 = S (T T_MINUSGREATER) :: r190 in + let r192 = S (N N_pattern) :: r191 in + let r193 = [R 800] in + let r194 = Sub (r192) :: r193 in + let r195 = [R 169] in + let r196 = Sub (r194) :: r195 in + let r197 = S (T T_WITH) :: r196 in + let r198 = Sub (r3) :: r197 in + let r199 = R 446 :: r198 in + let r200 = [R 762] in + let r201 = S (N N_fun_expr) :: r200 in + let r202 = S (T T_COMMA) :: r201 in + let r203 = [R 1220] in + let r204 = Sub (r34) :: r203 in + let r205 = S (T T_COLON) :: r204 in + let r206 = [R 767] in let r207 = S (N N_fun_expr) :: r206 in let r208 = S (T T_COMMA) :: r207 in - let r209 = [R 1220] in - let r210 = Sub (r34) :: r209 in - let r211 = S (T T_COLON) :: r210 in - let r212 = [R 767] in - let r213 = S (N N_fun_expr) :: r212 in - let r214 = S (T T_COMMA) :: r213 in - let r215 = S (T T_RPAREN) :: r214 in - let r216 = Sub (r211) :: r215 in - let r217 = [R 1222] in - let r218 = [R 838] in - let r219 = Sub (r34) :: r218 in - let r220 = [R 809] in - let r221 = Sub (r219) :: r220 in - let r222 = [R 145] in - let r223 = S (T T_RBRACKET) :: r222 in - let r224 = Sub (r221) :: r223 in - let r225 = [R 144] in - let r226 = S (T T_RBRACKET) :: r225 in - let r227 = [R 143] in - let r228 = S (T T_RBRACKET) :: r227 in - let r229 = [R 559] in - let r230 = Sub (r60) :: r229 in - let r231 = S (T T_BACKQUOTE) :: r230 in - let r232 = [R 1199] in - let r233 = R 446 :: r232 in - let r234 = Sub (r231) :: r233 in - let r235 = [R 140] in - let r236 = S (T T_RBRACKET) :: r235 in - let r237 = [R 147] in - let r238 = S (T T_RPAREN) :: r237 in - let r239 = Sub (r108) :: r238 in - let r240 = S (T T_STAR) :: r239 in - let r241 = [R 148] in - let r242 = S (T T_RPAREN) :: r241 in - let r243 = Sub (r108) :: r242 in - let r244 = S (T T_STAR) :: r243 in - let r245 = Sub (r26) :: r244 in - let r246 = [R 493] in - let r247 = S (T T_LIDENT) :: r246 in - let r248 = [R 95] in - let r249 = Sub (r247) :: r248 in - let r250 = [R 33] in - let r251 = [R 494] in - let r252 = S (T T_LIDENT) :: r251 in - let r253 = S (T T_DOT) :: r252 in - let r254 = S (T T_UIDENT) :: r57 in - let r255 = [R 515] in - let r256 = Sub (r254) :: r255 in - let r257 = [R 516] in - let r258 = S (T T_RPAREN) :: r257 in - let r259 = [R 496] in - let r260 = S (T T_UIDENT) :: r259 in - let r261 = S (T T_DOT) :: r260 in - let r262 = S (T T_LBRACKETGREATER) :: r226 in - let r263 = [R 36] in - let r264 = Sub (r262) :: r263 in - let r265 = [R 1132] in - let r266 = [R 567] in - let r267 = S (T T_LIDENT) :: r266 in - let r268 = [R 24] in - let r269 = [R 1136] in - let r270 = Sub (r28) :: r269 in - let r271 = [R 1068] in - let r272 = Sub (r28) :: r271 in - let r273 = S (T T_MINUSGREATER) :: r272 in - let r274 = [R 29] in - let r275 = Sub (r131) :: r274 in - let r276 = [R 35] in - let r277 = [R 508] in - let r278 = Sub (r127) :: r277 in - let r279 = S (T T_DOT) :: r278 in - let r280 = [R 827] in - let r281 = Sub (r78) :: r280 in - let r282 = S (T T_COLON) :: r281 in - let r283 = [R 826] in - let r284 = Sub (r78) :: r283 in - let r285 = S (T T_COLON) :: r284 in - let r286 = [R 1148] in - let r287 = Sub (r28) :: r286 in - let r288 = S (T T_MINUSGREATER) :: r287 in - let r289 = [R 1140] in - let r290 = Sub (r28) :: r289 in - let r291 = S (T T_MINUSGREATER) :: r290 in - let r292 = S (T T_RPAREN) :: r291 in - let r293 = Sub (r34) :: r292 in - let r294 = [R 798] in - let r295 = [R 799] in - let r296 = S (T T_RPAREN) :: r295 in - let r297 = Sub (r78) :: r296 in - let r298 = S (T T_COLON) :: r297 in - let r299 = Sub (r60) :: r298 in - let r300 = [R 1142] in - let r301 = [R 1150] in - let r302 = [R 1152] in - let r303 = Sub (r28) :: r302 in - let r304 = [R 1154] in - let r305 = [R 1219] in - let r306 = [R 822] in - let r307 = Sub (r26) :: r306 in - let r308 = [R 34] in - let r309 = [R 823] in - let r310 = [R 824] in - let r311 = Sub (r26) :: r310 in - let r312 = [R 1144] in - let r313 = Sub (r28) :: r312 in - let r314 = [R 1146] in - let r315 = [R 18] in - let r316 = Sub (r60) :: r315 in - let r317 = [R 20] in - let r318 = S (T T_RPAREN) :: r317 in - let r319 = Sub (r78) :: r318 in - let r320 = S (T T_COLON) :: r319 in - let r321 = [R 19] in - let r322 = S (T T_RPAREN) :: r321 in - let r323 = Sub (r78) :: r322 in - let r324 = S (T T_COLON) :: r323 in - let r325 = [R 138] in - let r326 = [R 830] in - let r327 = Sub (r78) :: r326 in - let r328 = S (T T_COLON) :: r327 in - let r329 = [R 829] in - let r330 = Sub (r78) :: r329 in - let r331 = S (T T_COLON) :: r330 in - let r332 = [R 1060] in + let r209 = S (T T_RPAREN) :: r208 in + let r210 = Sub (r205) :: r209 in + let r211 = [R 1222] in + let r212 = [R 838] in + let r213 = Sub (r34) :: r212 in + let r214 = [R 809] in + let r215 = Sub (r213) :: r214 in + let r216 = [R 145] in + let r217 = S (T T_RBRACKET) :: r216 in + let r218 = Sub (r215) :: r217 in + let r219 = [R 144] in + let r220 = S (T T_RBRACKET) :: r219 in + let r221 = [R 143] in + let r222 = S (T T_RBRACKET) :: r221 in + let r223 = [R 559] in + let r224 = Sub (r60) :: r223 in + let r225 = S (T T_BACKQUOTE) :: r224 in + let r226 = [R 1199] in + let r227 = R 446 :: r226 in + let r228 = Sub (r225) :: r227 in + let r229 = [R 140] in + let r230 = S (T T_RBRACKET) :: r229 in + let r231 = [R 147] in + let r232 = S (T T_RPAREN) :: r231 in + let r233 = Sub (r105) :: r232 in + let r234 = S (T T_STAR) :: r233 in + let r235 = [R 148] in + let r236 = S (T T_RPAREN) :: r235 in + let r237 = Sub (r105) :: r236 in + let r238 = S (T T_STAR) :: r237 in + let r239 = Sub (r26) :: r238 in + let r240 = [R 493] in + let r241 = S (T T_LIDENT) :: r240 in + let r242 = [R 95] in + let r243 = Sub (r241) :: r242 in + let r244 = [R 33] in + let r245 = [R 494] in + let r246 = S (T T_LIDENT) :: r245 in + let r247 = S (T T_DOT) :: r246 in + let r248 = S (T T_UIDENT) :: r57 in + let r249 = [R 515] in + let r250 = Sub (r248) :: r249 in + let r251 = [R 516] in + let r252 = S (T T_RPAREN) :: r251 in + let r253 = [R 496] in + let r254 = S (T T_UIDENT) :: r253 in + let r255 = S (T T_DOT) :: r254 in + let r256 = S (T T_LBRACKETGREATER) :: r220 in + let r257 = [R 36] in + let r258 = Sub (r256) :: r257 in + let r259 = [R 1132] in + let r260 = [R 567] in + let r261 = S (T T_LIDENT) :: r260 in + let r262 = [R 24] in + let r263 = [R 1136] in + let r264 = Sub (r28) :: r263 in + let r265 = [R 1068] in + let r266 = Sub (r28) :: r265 in + let r267 = S (T T_MINUSGREATER) :: r266 in + let r268 = [R 29] in + let r269 = Sub (r123) :: r268 in + let r270 = [R 35] in + let r271 = [R 508] in + let r272 = Sub (r119) :: r271 in + let r273 = S (T T_DOT) :: r272 in + let r274 = [R 827] in + let r275 = Sub (r78) :: r274 in + let r276 = S (T T_COLON) :: r275 in + let r277 = [R 826] in + let r278 = Sub (r78) :: r277 in + let r279 = S (T T_COLON) :: r278 in + let r280 = [R 1148] in + let r281 = Sub (r28) :: r280 in + let r282 = S (T T_MINUSGREATER) :: r281 in + let r283 = [R 1140] in + let r284 = Sub (r28) :: r283 in + let r285 = S (T T_MINUSGREATER) :: r284 in + let r286 = S (T T_RPAREN) :: r285 in + let r287 = Sub (r34) :: r286 in + let r288 = [R 798] in + let r289 = [R 799] in + let r290 = S (T T_RPAREN) :: r289 in + let r291 = Sub (r78) :: r290 in + let r292 = S (T T_COLON) :: r291 in + let r293 = Sub (r60) :: r292 in + let r294 = [R 1142] in + let r295 = [R 1150] in + let r296 = [R 1152] in + let r297 = Sub (r28) :: r296 in + let r298 = [R 1154] in + let r299 = [R 1219] in + let r300 = [R 822] in + let r301 = Sub (r26) :: r300 in + let r302 = [R 34] in + let r303 = [R 823] in + let r304 = [R 824] in + let r305 = Sub (r26) :: r304 in + let r306 = [R 1144] in + let r307 = Sub (r28) :: r306 in + let r308 = [R 1146] in + let r309 = [R 18] in + let r310 = Sub (r60) :: r309 in + let r311 = [R 20] in + let r312 = S (T T_RPAREN) :: r311 in + let r313 = Sub (r78) :: r312 in + let r314 = S (T T_COLON) :: r313 in + let r315 = [R 19] in + let r316 = S (T T_RPAREN) :: r315 in + let r317 = Sub (r78) :: r316 in + let r318 = S (T T_COLON) :: r317 in + let r319 = [R 138] in + let r320 = [R 830] in + let r321 = Sub (r78) :: r320 in + let r322 = S (T T_COLON) :: r321 in + let r323 = [R 829] in + let r324 = Sub (r78) :: r323 in + let r325 = S (T T_COLON) :: r324 in + let r326 = [R 1060] in + let r327 = Sub (r28) :: r326 in + let r328 = S (T T_MINUSGREATER) :: r327 in + let r329 = S (T T_RPAREN) :: r328 in + let r330 = Sub (r34) :: r329 in + let r331 = [R 1062] in + let r332 = [R 1064] in let r333 = Sub (r28) :: r332 in - let r334 = S (T T_MINUSGREATER) :: r333 in - let r335 = S (T T_RPAREN) :: r334 in - let r336 = Sub (r34) :: r335 in - let r337 = [R 1062] in - let r338 = [R 1064] in - let r339 = Sub (r28) :: r338 in - let r340 = [R 1066] in - let r341 = [R 1070] in - let r342 = [R 1072] in + let r334 = [R 1066] in + let r335 = [R 1070] in + let r336 = [R 1072] in + let r337 = Sub (r28) :: r336 in + let r338 = [R 1074] in + let r339 = [R 1084] in + let r340 = Sub (r28) :: r339 in + let r341 = S (T T_MINUSGREATER) :: r340 in + let r342 = [R 1076] in let r343 = Sub (r28) :: r342 in - let r344 = [R 1074] in - let r345 = [R 1084] in - let r346 = Sub (r28) :: r345 in - let r347 = S (T T_MINUSGREATER) :: r346 in - let r348 = [R 1076] in + let r344 = S (T T_MINUSGREATER) :: r343 in + let r345 = S (T T_RPAREN) :: r344 in + let r346 = Sub (r34) :: r345 in + let r347 = [R 1078] in + let r348 = [R 1080] in let r349 = Sub (r28) :: r348 in - let r350 = S (T T_MINUSGREATER) :: r349 in - let r351 = S (T T_RPAREN) :: r350 in - let r352 = Sub (r34) :: r351 in - let r353 = [R 1078] in - let r354 = [R 1080] in - let r355 = Sub (r28) :: r354 in - let r356 = [R 1082] in - let r357 = [R 1086] in - let r358 = [R 1088] in - let r359 = Sub (r28) :: r358 in - let r360 = [R 1090] in - let r361 = [R 1138] in - let r362 = [R 1134] in - let r363 = [R 141] in - let r364 = S (T T_RBRACKET) :: r363 in - let r365 = [R 810] in - let r366 = [R 803] in - let r367 = Sub (r32) :: r366 in - let r368 = [R 1198] in - let r369 = R 446 :: r368 in - let r370 = Sub (r367) :: r369 in - let r371 = [R 804] in - let r372 = [R 142] in - let r373 = S (T T_RBRACKET) :: r372 in - let r374 = Sub (r221) :: r373 in - let r375 = [R 794] in - let r376 = Sub (r231) :: r375 in - let r377 = [R 146] in - let r378 = S (T T_RBRACKET) :: r377 in - let r379 = [R 1221] in - let r380 = [R 770] in - let r381 = [R 771] in - let r382 = S (T T_RPAREN) :: r381 in - let r383 = Sub (r211) :: r382 in - let r384 = S (T T_UNDERSCORE) :: r193 in - let r385 = [R 186] in - let r386 = [R 920] in - let r387 = [R 916] in - let r388 = S (T T_END) :: r387 in - let r389 = R 463 :: r388 in - let r390 = R 69 :: r389 in - let r391 = R 446 :: r390 in - let r392 = [R 67] in - let r393 = S (T T_RPAREN) :: r392 in - let r394 = [R 967] in - let r395 = [R 776] in - let r396 = S (T T_DOTDOT) :: r395 in - let r397 = S (T T_COMMA) :: r396 in - let r398 = [R 777] in - let r399 = S (T T_DOTDOT) :: r398 in - let r400 = S (T T_COMMA) :: r399 in - let r401 = S (T T_RPAREN) :: r400 in - let r402 = Sub (r34) :: r401 in - let r403 = S (T T_COLON) :: r402 in - let r404 = [R 368] in - let r405 = [R 369] in + let r350 = [R 1082] in + let r351 = [R 1086] in + let r352 = [R 1088] in + let r353 = Sub (r28) :: r352 in + let r354 = [R 1090] in + let r355 = [R 1138] in + let r356 = [R 1134] in + let r357 = [R 141] in + let r358 = S (T T_RBRACKET) :: r357 in + let r359 = [R 810] in + let r360 = [R 803] in + let r361 = Sub (r32) :: r360 in + let r362 = [R 1198] in + let r363 = R 446 :: r362 in + let r364 = Sub (r361) :: r363 in + let r365 = [R 804] in + let r366 = [R 142] in + let r367 = S (T T_RBRACKET) :: r366 in + let r368 = Sub (r215) :: r367 in + let r369 = [R 794] in + let r370 = Sub (r225) :: r369 in + let r371 = [R 146] in + let r372 = S (T T_RBRACKET) :: r371 in + let r373 = [R 1221] in + let r374 = [R 770] in + let r375 = [R 771] in + let r376 = S (T T_RPAREN) :: r375 in + let r377 = Sub (r205) :: r376 in + let r378 = S (T T_UNDERSCORE) :: r187 in + let r379 = [R 186] in + let r380 = [R 920] in + let r381 = [R 916] in + let r382 = S (T T_END) :: r381 in + let r383 = R 463 :: r382 in + let r384 = R 69 :: r383 in + let r385 = R 446 :: r384 in + let r386 = [R 67] in + let r387 = S (T T_RPAREN) :: r386 in + let r388 = [R 967] in + let r389 = [R 776] in + let r390 = S (T T_DOTDOT) :: r389 in + let r391 = S (T T_COMMA) :: r390 in + let r392 = [R 777] in + let r393 = S (T T_DOTDOT) :: r392 in + let r394 = S (T T_COMMA) :: r393 in + let r395 = S (T T_RPAREN) :: r394 in + let r396 = Sub (r34) :: r395 in + let r397 = S (T T_COLON) :: r396 in + let r398 = [R 368] in + let r399 = [R 369] in + let r400 = S (T T_RPAREN) :: r399 in + let r401 = Sub (r34) :: r400 in + let r402 = S (T T_COLON) :: r401 in + let r403 = [R 887] in + let r404 = [R 885] in + let r405 = [R 963] in let r406 = S (T T_RPAREN) :: r405 in - let r407 = Sub (r34) :: r406 in - let r408 = S (T T_COLON) :: r407 in - let r409 = [R 887] in - let r410 = [R 885] in - let r411 = [R 963] in - let r412 = S (T T_RPAREN) :: r411 in - let r413 = S (N N_pattern) :: r412 in - let r414 = [R 533] in - let r415 = S (T T_UNDERSCORE) :: r414 in - let r416 = [R 965] in - let r417 = S (T T_RPAREN) :: r416 in - let r418 = Sub (r415) :: r417 in - let r419 = R 446 :: r418 in - let r420 = [R 966] in - let r421 = S (T T_RPAREN) :: r420 in - let r422 = [R 537] in - let r423 = S (N N_module_expr) :: r422 in - let r424 = R 446 :: r423 in - let r425 = S (T T_OF) :: r424 in - let r426 = [R 523] in - let r427 = S (T T_END) :: r426 in - let r428 = S (N N_structure) :: r427 in - let r429 = [R 733] in - let r430 = Sub (r139) :: r429 in - let r431 = [R 1185] in - let r432 = R 452 :: r431 in - let r433 = Sub (r430) :: r432 in - let r434 = R 717 :: r433 in - let r435 = S (T T_PLUSEQ) :: r434 in - let r436 = Sub (r131) :: r435 in - let r437 = R 1228 :: r436 in - let r438 = R 446 :: r437 in - let r439 = [R 1186] in - let r440 = R 452 :: r439 in - let r441 = Sub (r430) :: r440 in - let r442 = R 717 :: r441 in - let r443 = S (T T_PLUSEQ) :: r442 in - let r444 = Sub (r131) :: r443 in - let r445 = [R 715] in - let r446 = S (T T_RBRACKET) :: r445 in - let r447 = Sub (r19) :: r446 in - let r448 = [R 458] in - let r449 = [R 595] in - let r450 = R 452 :: r449 in - let r451 = S (N N_module_expr) :: r450 in - let r452 = R 446 :: r451 in - let r453 = [R 596] in + let r407 = S (N N_pattern) :: r406 in + let r408 = [R 533] in + let r409 = S (T T_UNDERSCORE) :: r408 in + let r410 = [R 965] in + let r411 = S (T T_RPAREN) :: r410 in + let r412 = Sub (r409) :: r411 in + let r413 = R 446 :: r412 in + let r414 = [R 966] in + let r415 = S (T T_RPAREN) :: r414 in + let r416 = [R 537] in + let r417 = S (N N_module_expr) :: r416 in + let r418 = R 446 :: r417 in + let r419 = S (T T_OF) :: r418 in + let r420 = [R 523] in + let r421 = S (T T_END) :: r420 in + let r422 = S (N N_structure) :: r421 in + let r423 = [R 733] in + let r424 = Sub (r131) :: r423 in + let r425 = [R 1186] in + let r426 = R 452 :: r425 in + let r427 = Sub (r424) :: r426 in + let r428 = R 717 :: r427 in + let r429 = S (T T_PLUSEQ) :: r428 in + let r430 = Sub (r123) :: r429 in + let r431 = R 1228 :: r430 in + let r432 = R 446 :: r431 in + let r433 = [R 290] in + let r434 = R 452 :: r433 in + let r435 = R 784 :: r434 in + let r436 = R 1223 :: r435 in + let r437 = R 639 :: r436 in + let r438 = S (T T_LIDENT) :: r437 in + let r439 = R 1228 :: r438 in + let r440 = R 446 :: r439 in + let r441 = [R 1187] in + let r442 = R 452 :: r441 in + let r443 = Sub (r424) :: r442 in + let r444 = R 717 :: r443 in + let r445 = S (T T_PLUSEQ) :: r444 in + let r446 = Sub (r123) :: r445 in + let r447 = R 639 :: r174 in + let r448 = S (T T_LIDENT) :: r447 in + let r449 = [R 715] in + let r450 = S (T T_RBRACKET) :: r449 in + let r451 = Sub (r19) :: r450 in + let r452 = [R 458] in + let r453 = [R 595] in let r454 = R 452 :: r453 in let r455 = S (N N_module_expr) :: r454 in let r456 = R 446 :: r455 in - let r457 = [R 663] in - let r458 = S (T T_RPAREN) :: r457 in - let r459 = [R 664] in - let r460 = S (T T_RPAREN) :: r459 in - let r461 = S (N N_fun_expr) :: r460 in - let r462 = [R 265] in - let r463 = [R 509] in - let r464 = S (T T_LIDENT) :: r463 in - let r465 = [R 66] in - let r466 = Sub (r464) :: r465 in - let r467 = [R 913] in - let r468 = Sub (r466) :: r467 in - let r469 = R 446 :: r468 in - let r470 = [R 510] in - let r471 = S (T T_LIDENT) :: r470 in - let r472 = [R 512] in - let r473 = [R 517] in - let r474 = [R 168] in - let r475 = Sub (r200) :: r474 in - let r476 = S (T T_WITH) :: r475 in - let r477 = Sub (r3) :: r476 in - let r478 = R 446 :: r477 in - let r479 = [R 899] in - let r480 = S (T T_RPAREN) :: r479 in - let r481 = [R 951] in - let r482 = [R 263] in - let r483 = [R 240] in - let r484 = [R 431] in - let r485 = Sub (r24) :: r484 in - let r486 = [R 434] in - let r487 = Sub (r485) :: r486 in - let r488 = [R 237] in - let r489 = Sub (r3) :: r488 in - let r490 = S (T T_IN) :: r489 in - let r491 = [R 782] in - let r492 = S (T T_DOTDOT) :: r491 in - let r493 = S (T T_COMMA) :: r492 in - let r494 = [R 783] in - let r495 = S (T T_DOTDOT) :: r494 in - let r496 = S (T T_COMMA) :: r495 in - let r497 = S (T T_RPAREN) :: r496 in - let r498 = Sub (r34) :: r497 in - let r499 = S (T T_COLON) :: r498 in - let r500 = [R 388] in - let r501 = [R 389] in - let r502 = S (T T_RPAREN) :: r501 in - let r503 = Sub (r34) :: r502 in - let r504 = S (T T_COLON) :: r503 in - let r505 = [R 895] in - let r506 = [R 892] in - let r507 = [R 114] in - let r508 = [R 848] in - let r509 = S (N N_pattern) :: r508 in - let r510 = [R 890] in - let r511 = S (T T_RBRACKET) :: r510 in - let r512 = [R 323] in - let r513 = Sub (r464) :: r512 in - let r514 = [R 472] in - let r515 = R 652 :: r514 in - let r516 = R 645 :: r515 in - let r517 = Sub (r513) :: r516 in - let r518 = [R 889] in - let r519 = S (T T_RBRACE) :: r518 in - let r520 = [R 646] in - let r521 = [R 653] in - let r522 = S (T T_UNDERSCORE) :: r394 in - let r523 = [R 962] in - let r524 = Sub (r522) :: r523 in - let r525 = [R 697] in - let r526 = Sub (r524) :: r525 in - let r527 = R 446 :: r526 in - let r528 = [R 1257] in - let r529 = [R 972] in - let r530 = [R 774] in - let r531 = S (T T_DOTDOT) :: r530 in - let r532 = S (T T_COMMA) :: r531 in - let r533 = S (N N_pattern) :: r532 in - let r534 = [R 893] in - let r535 = S (T T_RPAREN) :: r534 in - let r536 = [R 775] in - let r537 = S (T T_DOTDOT) :: r536 in - let r538 = S (T T_COMMA) :: r537 in - let r539 = [R 971] in - let r540 = [R 884] in - let r541 = [R 360] in - let r542 = [R 361] in - let r543 = S (T T_RPAREN) :: r542 in - let r544 = Sub (r34) :: r543 in - let r545 = S (T T_COLON) :: r544 in - let r546 = [R 359] in - let r547 = S (T T_INT) :: r528 in - let r548 = Sub (r547) :: r540 in - let r549 = [R 968] in - let r550 = Sub (r548) :: r549 in - let r551 = [R 974] in - let r552 = S (T T_RBRACKET) :: r551 in - let r553 = S (T T_LBRACKET) :: r552 in - let r554 = [R 975] in - let r555 = [R 692] in - let r556 = S (N N_pattern) :: r555 in - let r557 = R 446 :: r556 in - let r558 = [R 696] in - let r559 = [R 773] in - let r560 = [R 352] in - let r561 = [R 353] in - let r562 = S (T T_RPAREN) :: r561 in - let r563 = Sub (r34) :: r562 in - let r564 = S (T T_COLON) :: r563 in - let r565 = [R 351] in - let r566 = [R 124] in - let r567 = [R 686] in - let r568 = [R 694] in - let r569 = [R 563] in - let r570 = S (T T_LIDENT) :: r569 in - let r571 = [R 695] in - let r572 = Sub (r524) :: r571 in - let r573 = S (T T_RPAREN) :: r572 in - let r574 = [R 123] in + let r457 = [R 596] in + let r458 = R 452 :: r457 in + let r459 = S (N N_module_expr) :: r458 in + let r460 = R 446 :: r459 in + let r461 = [R 663] in + let r462 = S (T T_RPAREN) :: r461 in + let r463 = [R 664] in + let r464 = S (T T_RPAREN) :: r463 in + let r465 = S (N N_fun_expr) :: r464 in + let r466 = [R 265] in + let r467 = [R 509] in + let r468 = S (T T_LIDENT) :: r467 in + let r469 = [R 66] in + let r470 = Sub (r468) :: r469 in + let r471 = [R 913] in + let r472 = Sub (r470) :: r471 in + let r473 = R 446 :: r472 in + let r474 = [R 510] in + let r475 = S (T T_LIDENT) :: r474 in + let r476 = [R 512] in + let r477 = [R 517] in + let r478 = [R 168] in + let r479 = Sub (r194) :: r478 in + let r480 = S (T T_WITH) :: r479 in + let r481 = Sub (r3) :: r480 in + let r482 = R 446 :: r481 in + let r483 = [R 899] in + let r484 = S (T T_RPAREN) :: r483 in + let r485 = [R 951] in + let r486 = [R 263] in + let r487 = [R 240] in + let r488 = [R 431] in + let r489 = Sub (r24) :: r488 in + let r490 = [R 434] in + let r491 = Sub (r489) :: r490 in + let r492 = [R 237] in + let r493 = Sub (r3) :: r492 in + let r494 = S (T T_IN) :: r493 in + let r495 = [R 782] in + let r496 = S (T T_DOTDOT) :: r495 in + let r497 = S (T T_COMMA) :: r496 in + let r498 = [R 783] in + let r499 = S (T T_DOTDOT) :: r498 in + let r500 = S (T T_COMMA) :: r499 in + let r501 = S (T T_RPAREN) :: r500 in + let r502 = Sub (r34) :: r501 in + let r503 = S (T T_COLON) :: r502 in + let r504 = [R 388] in + let r505 = [R 389] in + let r506 = S (T T_RPAREN) :: r505 in + let r507 = Sub (r34) :: r506 in + let r508 = S (T T_COLON) :: r507 in + let r509 = [R 894] in + let r510 = [R 892] in + let r511 = [R 114] in + let r512 = [R 848] in + let r513 = S (N N_pattern) :: r512 in + let r514 = [R 890] in + let r515 = S (T T_RBRACKET) :: r514 in + let r516 = [R 323] in + let r517 = Sub (r468) :: r516 in + let r518 = [R 472] in + let r519 = R 652 :: r518 in + let r520 = R 645 :: r519 in + let r521 = Sub (r517) :: r520 in + let r522 = [R 889] in + let r523 = S (T T_RBRACE) :: r522 in + let r524 = [R 646] in + let r525 = [R 653] in + let r526 = S (T T_UNDERSCORE) :: r388 in + let r527 = [R 962] in + let r528 = Sub (r526) :: r527 in + let r529 = [R 697] in + let r530 = Sub (r528) :: r529 in + let r531 = R 446 :: r530 in + let r532 = [R 1257] in + let r533 = [R 972] in + let r534 = [R 774] in + let r535 = S (T T_DOTDOT) :: r534 in + let r536 = S (T T_COMMA) :: r535 in + let r537 = S (N N_pattern) :: r536 in + let r538 = [R 895] in + let r539 = S (T T_RPAREN) :: r538 in + let r540 = [R 775] in + let r541 = S (T T_DOTDOT) :: r540 in + let r542 = S (T T_COMMA) :: r541 in + let r543 = [R 971] in + let r544 = [R 884] in + let r545 = [R 360] in + let r546 = [R 361] in + let r547 = S (T T_RPAREN) :: r546 in + let r548 = Sub (r34) :: r547 in + let r549 = S (T T_COLON) :: r548 in + let r550 = [R 359] in + let r551 = S (T T_INT) :: r532 in + let r552 = Sub (r551) :: r544 in + let r553 = [R 968] in + let r554 = Sub (r552) :: r553 in + let r555 = [R 974] in + let r556 = S (T T_RBRACKET) :: r555 in + let r557 = S (T T_LBRACKET) :: r556 in + let r558 = [R 975] in + let r559 = [R 692] in + let r560 = S (N N_pattern) :: r559 in + let r561 = R 446 :: r560 in + let r562 = [R 696] in + let r563 = [R 773] in + let r564 = [R 352] in + let r565 = [R 353] in + let r566 = S (T T_RPAREN) :: r565 in + let r567 = Sub (r34) :: r566 in + let r568 = S (T T_COLON) :: r567 in + let r569 = [R 351] in + let r570 = [R 124] in + let r571 = [R 686] in + let r572 = [R 694] in + let r573 = [R 695] in + let r574 = Sub (r528) :: r573 in let r575 = S (T T_RPAREN) :: r574 in - let r576 = [R 356] in - let r577 = [R 357] in - let r578 = S (T T_RPAREN) :: r577 in - let r579 = Sub (r34) :: r578 in - let r580 = S (T T_COLON) :: r579 in - let r581 = [R 355] in - let r582 = [R 978] in - let r583 = S (T T_RPAREN) :: r582 in - let r584 = Sub (r34) :: r583 in - let r585 = [R 690] in - let r586 = [R 689] in - let r587 = [R 122] in - let r588 = S (T T_RPAREN) :: r587 in - let r589 = [R 976] in - let r590 = [R 474] in - let r591 = [R 891] in - let r592 = [R 894] in - let r593 = [R 387] in - let r594 = [R 698] in - let r595 = [R 779] in - let r596 = [R 372] in - let r597 = [R 373] in - let r598 = S (T T_RPAREN) :: r597 in - let r599 = Sub (r34) :: r598 in - let r600 = S (T T_COLON) :: r599 in - let r601 = [R 371] in - let r602 = [R 384] in - let r603 = [R 385] in - let r604 = S (T T_RPAREN) :: r603 in - let r605 = Sub (r34) :: r604 in - let r606 = S (T T_COLON) :: r605 in - let r607 = [R 383] in - let r608 = [R 781] in - let r609 = S (T T_DOTDOT) :: r608 in - let r610 = S (T T_COMMA) :: r609 in - let r611 = [R 380] in - let r612 = [R 381] in - let r613 = S (T T_RPAREN) :: r612 in - let r614 = Sub (r34) :: r613 in - let r615 = S (T T_COLON) :: r614 in - let r616 = [R 379] in - let r617 = [R 338] in - let r618 = [R 317] in - let r619 = S (T T_LIDENT) :: r618 in - let r620 = [R 336] in - let r621 = S (T T_RPAREN) :: r620 in - let r622 = [R 319] in - let r623 = [R 321] in - let r624 = Sub (r34) :: r623 in - let r625 = [R 25] in - let r626 = Sub (r267) :: r625 in - let r627 = [R 337] in - let r628 = S (T T_RPAREN) :: r627 in - let r629 = [R 332] in - let r630 = [R 330] in - let r631 = S (T T_RPAREN) :: r630 in - let r632 = R 654 :: r631 in - let r633 = [R 331] in - let r634 = S (T T_RPAREN) :: r633 in - let r635 = R 654 :: r634 in - let r636 = [R 655] in - let r637 = [R 166] in - let r638 = Sub (r3) :: r637 in - let r639 = S (T T_IN) :: r638 in - let r640 = S (N N_module_expr) :: r639 in - let r641 = R 446 :: r640 in - let r642 = R 151 :: r641 in - let r643 = [R 391] in - let r644 = Sub (r24) :: r643 in - let r645 = [R 411] in - let r646 = R 452 :: r645 in - let r647 = Sub (r644) :: r646 in - let r648 = R 724 :: r647 in - let r649 = R 446 :: r648 in - let r650 = R 151 :: r649 in - let r651 = [R 167] in - let r652 = Sub (r3) :: r651 in - let r653 = S (T T_IN) :: r652 in - let r654 = S (N N_module_expr) :: r653 in - let r655 = R 446 :: r654 in - let r656 = [R 524] in - let r657 = S (N N_module_expr) :: r656 in - let r658 = S (T T_MINUSGREATER) :: r657 in - let r659 = S (N N_functor_args) :: r658 in - let r660 = [R 277] in - let r661 = [R 278] in - let r662 = S (T T_RPAREN) :: r661 in - let r663 = S (N N_module_type) :: r662 in - let r664 = [R 538] in - let r665 = S (T T_RPAREN) :: r664 in - let r666 = [R 541] in - let r667 = S (N N_module_type) :: r666 in - let r668 = [R 536] in + let r576 = [R 123] in + let r577 = S (T T_RPAREN) :: r576 in + let r578 = [R 356] in + let r579 = [R 357] in + let r580 = S (T T_RPAREN) :: r579 in + let r581 = Sub (r34) :: r580 in + let r582 = S (T T_COLON) :: r581 in + let r583 = [R 355] in + let r584 = [R 978] in + let r585 = S (T T_RPAREN) :: r584 in + let r586 = Sub (r34) :: r585 in + let r587 = [R 690] in + let r588 = [R 689] in + let r589 = [R 122] in + let r590 = S (T T_RPAREN) :: r589 in + let r591 = [R 976] in + let r592 = [R 474] in + let r593 = [R 891] in + let r594 = [R 893] in + let r595 = [R 387] in + let r596 = [R 698] in + let r597 = [R 779] in + let r598 = [R 372] in + let r599 = [R 373] in + let r600 = S (T T_RPAREN) :: r599 in + let r601 = Sub (r34) :: r600 in + let r602 = S (T T_COLON) :: r601 in + let r603 = [R 371] in + let r604 = [R 384] in + let r605 = [R 385] in + let r606 = S (T T_RPAREN) :: r605 in + let r607 = Sub (r34) :: r606 in + let r608 = S (T T_COLON) :: r607 in + let r609 = [R 383] in + let r610 = [R 781] in + let r611 = S (T T_DOTDOT) :: r610 in + let r612 = S (T T_COMMA) :: r611 in + let r613 = [R 380] in + let r614 = [R 381] in + let r615 = S (T T_RPAREN) :: r614 in + let r616 = Sub (r34) :: r615 in + let r617 = S (T T_COLON) :: r616 in + let r618 = [R 379] in + let r619 = [R 338] in + let r620 = [R 317] in + let r621 = S (T T_LIDENT) :: r620 in + let r622 = [R 336] in + let r623 = S (T T_RPAREN) :: r622 in + let r624 = [R 319] in + let r625 = [R 321] in + let r626 = Sub (r34) :: r625 in + let r627 = [R 25] in + let r628 = Sub (r261) :: r627 in + let r629 = [R 337] in + let r630 = S (T T_RPAREN) :: r629 in + let r631 = [R 332] in + let r632 = [R 330] in + let r633 = S (T T_RPAREN) :: r632 in + let r634 = R 654 :: r633 in + let r635 = [R 331] in + let r636 = S (T T_RPAREN) :: r635 in + let r637 = R 654 :: r636 in + let r638 = [R 655] in + let r639 = [R 166] in + let r640 = Sub (r3) :: r639 in + let r641 = S (T T_IN) :: r640 in + let r642 = S (N N_module_expr) :: r641 in + let r643 = R 446 :: r642 in + let r644 = R 151 :: r643 in + let r645 = [R 391] in + let r646 = Sub (r24) :: r645 in + let r647 = [R 411] in + let r648 = R 452 :: r647 in + let r649 = Sub (r646) :: r648 in + let r650 = R 724 :: r649 in + let r651 = R 446 :: r650 in + let r652 = R 151 :: r651 in + let r653 = [R 167] in + let r654 = Sub (r3) :: r653 in + let r655 = S (T T_IN) :: r654 in + let r656 = S (N N_module_expr) :: r655 in + let r657 = R 446 :: r656 in + let r658 = [R 524] in + let r659 = S (N N_module_expr) :: r658 in + let r660 = S (T T_MINUSGREATER) :: r659 in + let r661 = S (N N_functor_args) :: r660 in + let r662 = [R 277] in + let r663 = [R 278] in + let r664 = S (T T_RPAREN) :: r663 in + let r665 = S (N N_module_type) :: r664 in + let r666 = [R 538] in + let r667 = S (T T_RPAREN) :: r666 in + let r668 = [R 541] in let r669 = S (N N_module_type) :: r668 in - let r670 = S (T T_MINUSGREATER) :: r669 in - let r671 = S (N N_functor_args) :: r670 in - let r672 = [R 545] in - let r673 = [R 1271] in - let r674 = Sub (r32) :: r673 in - let r675 = S (T T_COLONEQUAL) :: r674 in - let r676 = Sub (r513) :: r675 in - let r677 = [R 1270] in - let r678 = R 784 :: r677 in - let r679 = [R 785] in - let r680 = Sub (r34) :: r679 in - let r681 = S (T T_EQUAL) :: r680 in - let r682 = [R 503] in - let r683 = Sub (r60) :: r682 in - let r684 = [R 548] in - let r685 = Sub (r683) :: r684 in - let r686 = [R 1274] in - let r687 = S (N N_module_type) :: r686 in - let r688 = S (T T_EQUAL) :: r687 in - let r689 = Sub (r685) :: r688 in - let r690 = S (T T_TYPE) :: r689 in - let r691 = [R 504] in - let r692 = Sub (r60) :: r691 in - let r693 = [R 1275] in - let r694 = [R 542] in - let r695 = [R 1272] in - let r696 = Sub (r256) :: r695 in - let r697 = S (T T_UIDENT) :: r472 in - let r698 = [R 1273] in - let r699 = S (T T_MODULE) :: r690 in - let r700 = [R 808] in - let r701 = [R 529] in - let r702 = [R 662] in - let r703 = S (T T_RPAREN) :: r702 in - let r704 = [R 936] in - let r705 = [R 839] in - let r706 = S (N N_fun_expr) :: r705 in - let r707 = [R 939] in - let r708 = S (T T_RBRACKET) :: r707 in - let r709 = [R 923] in - let r710 = [R 845] in - let r711 = R 647 :: r710 in - let r712 = [R 648] in - let r713 = [R 851] in - let r714 = R 647 :: r713 in - let r715 = R 656 :: r714 in - let r716 = Sub (r513) :: r715 in - let r717 = [R 726] in - let r718 = Sub (r716) :: r717 in - let r719 = [R 933] in - let r720 = S (T T_RBRACE) :: r719 in - let r721 = [R 747] in - let r722 = S (N N_fun_expr) :: r721 in - let r723 = S (T T_COMMA) :: r722 in + let r670 = [R 536] in + let r671 = S (N N_module_type) :: r670 in + let r672 = S (T T_MINUSGREATER) :: r671 in + let r673 = S (N N_functor_args) :: r672 in + let r674 = [R 545] in + let r675 = [R 1271] in + let r676 = Sub (r32) :: r675 in + let r677 = S (T T_COLONEQUAL) :: r676 in + let r678 = Sub (r517) :: r677 in + let r679 = [R 1270] in + let r680 = R 784 :: r679 in + let r681 = [R 785] in + let r682 = Sub (r34) :: r681 in + let r683 = S (T T_EQUAL) :: r682 in + let r684 = [R 503] in + let r685 = Sub (r60) :: r684 in + let r686 = [R 548] in + let r687 = Sub (r685) :: r686 in + let r688 = [R 1274] in + let r689 = S (N N_module_type) :: r688 in + let r690 = S (T T_EQUAL) :: r689 in + let r691 = Sub (r687) :: r690 in + let r692 = S (T T_TYPE) :: r691 in + let r693 = [R 504] in + let r694 = Sub (r60) :: r693 in + let r695 = [R 1275] in + let r696 = [R 542] in + let r697 = [R 1272] in + let r698 = Sub (r250) :: r697 in + let r699 = S (T T_UIDENT) :: r476 in + let r700 = [R 1273] in + let r701 = S (T T_MODULE) :: r692 in + let r702 = [R 808] in + let r703 = [R 529] in + let r704 = [R 662] in + let r705 = S (T T_RPAREN) :: r704 in + let r706 = [R 936] in + let r707 = [R 839] in + let r708 = S (N N_fun_expr) :: r707 in + let r709 = [R 939] in + let r710 = S (T T_RBRACKET) :: r709 in + let r711 = [R 923] in + let r712 = [R 845] in + let r713 = R 647 :: r712 in + let r714 = [R 648] in + let r715 = [R 851] in + let r716 = R 647 :: r715 in + let r717 = R 656 :: r716 in + let r718 = Sub (r517) :: r717 in + let r719 = [R 726] in + let r720 = Sub (r718) :: r719 in + let r721 = [R 933] in + let r722 = S (T T_RBRACE) :: r721 in + let r723 = [R 747] in let r724 = S (N N_fun_expr) :: r723 in - let r725 = [R 949] in - let r726 = S (T T_RPAREN) :: r725 in - let r727 = [R 179] in - let r728 = Sub (r384) :: r727 in - let r729 = R 446 :: r728 in - let r730 = [R 898] in - let r731 = [R 896] in - let r732 = S (T T_GREATERDOT) :: r731 in - let r733 = [R 757] in - let r734 = S (N N_fun_expr) :: r733 in - let r735 = S (T T_COMMA) :: r734 in - let r736 = [R 912] in - let r737 = S (T T_END) :: r736 in - let r738 = R 446 :: r737 in - let r739 = [R 174] in - let r740 = S (N N_fun_expr) :: r739 in - let r741 = S (T T_THEN) :: r740 in - let r742 = Sub (r3) :: r741 in - let r743 = R 446 :: r742 in - let r744 = [R 855] in - let r745 = Sub (r200) :: r744 in - let r746 = R 446 :: r745 in - let r747 = [R 801] in - let r748 = [R 477] in - let r749 = Sub (r3) :: r748 in - let r750 = S (T T_MINUSGREATER) :: r749 in - let r751 = [R 343] in - let r752 = Sub (r524) :: r751 in - let r753 = [R 269] in - let r754 = Sub (r752) :: r753 in - let r755 = [R 786] in + let r725 = S (T T_COMMA) :: r724 in + let r726 = S (N N_fun_expr) :: r725 in + let r727 = [R 949] in + let r728 = S (T T_RPAREN) :: r727 in + let r729 = [R 179] in + let r730 = Sub (r378) :: r729 in + let r731 = R 446 :: r730 in + let r732 = [R 898] in + let r733 = [R 896] in + let r734 = S (T T_GREATERDOT) :: r733 in + let r735 = [R 757] in + let r736 = S (N N_fun_expr) :: r735 in + let r737 = S (T T_COMMA) :: r736 in + let r738 = [R 912] in + let r739 = S (T T_END) :: r738 in + let r740 = R 446 :: r739 in + let r741 = [R 174] in + let r742 = S (N N_fun_expr) :: r741 in + let r743 = S (T T_THEN) :: r742 in + let r744 = Sub (r3) :: r743 in + let r745 = R 446 :: r744 in + let r746 = [R 855] in + let r747 = Sub (r194) :: r746 in + let r748 = R 446 :: r747 in + let r749 = [R 801] in + let r750 = [R 477] in + let r751 = Sub (r3) :: r750 in + let r752 = S (T T_MINUSGREATER) :: r751 in + let r753 = [R 343] in + let r754 = Sub (r528) :: r753 in + let r755 = [R 269] in let r756 = Sub (r754) :: r755 in - let r757 = [R 270] in + let r757 = [R 786] in let r758 = Sub (r756) :: r757 in - let r759 = [R 162] in - let r760 = Sub (r1) :: r759 in - let r761 = [R 184] in - let r762 = Sub (r760) :: r761 in - let r763 = S (T T_MINUSGREATER) :: r762 in - let r764 = R 643 :: r763 in - let r765 = Sub (r758) :: r764 in - let r766 = R 446 :: r765 in - let r767 = [R 705] in - let r768 = S (T T_UNDERSCORE) :: r767 in - let r769 = [R 335] in - let r770 = [R 333] in - let r771 = S (T T_RPAREN) :: r770 in - let r772 = R 654 :: r771 in - let r773 = S (T T_ATAT) :: r626 in - let r774 = [R 428] in - let r775 = Sub (r773) :: r774 in - let r776 = Sub (r34) :: r775 in - let r777 = [R 427] in - let r778 = [R 429] in - let r779 = [R 422] in - let r780 = [R 418] in - let r781 = [R 420] in - let r782 = Sub (r34) :: r781 in - let r783 = [R 334] in - let r784 = S (T T_RPAREN) :: r783 in - let r785 = R 654 :: r784 in - let r786 = [R 560] in - let r787 = S (T T_LIDENT) :: r786 in - let r788 = [R 575] in - let r789 = Sub (r787) :: r788 in - let r790 = [R 562] in + let r759 = [R 270] in + let r760 = Sub (r758) :: r759 in + let r761 = [R 162] in + let r762 = Sub (r1) :: r761 in + let r763 = [R 184] in + let r764 = Sub (r762) :: r763 in + let r765 = S (T T_MINUSGREATER) :: r764 in + let r766 = R 643 :: r765 in + let r767 = Sub (r760) :: r766 in + let r768 = R 446 :: r767 in + let r769 = [R 705] in + let r770 = S (T T_UNDERSCORE) :: r769 in + let r771 = [R 335] in + let r772 = [R 333] in + let r773 = S (T T_RPAREN) :: r772 in + let r774 = R 654 :: r773 in + let r775 = S (T T_ATAT) :: r628 in + let r776 = [R 428] in + let r777 = Sub (r775) :: r776 in + let r778 = Sub (r34) :: r777 in + let r779 = [R 427] in + let r780 = [R 429] in + let r781 = [R 422] in + let r782 = [R 418] in + let r783 = [R 420] in + let r784 = Sub (r34) :: r783 in + let r785 = [R 334] in + let r786 = S (T T_RPAREN) :: r785 in + let r787 = R 654 :: r786 in + let r788 = [R 560] in + let r789 = S (T T_LIDENT) :: r788 in + let r790 = [R 575] in let r791 = Sub (r789) :: r790 in - let r792 = [R 267] in - let r793 = S (T T_RPAREN) :: r792 in - let r794 = [R 561] in + let r792 = [R 562] in + let r793 = Sub (r791) :: r792 in + let r794 = [R 267] in let r795 = S (T T_RPAREN) :: r794 in - let r796 = Sub (r78) :: r795 in - let r797 = S (T T_COLON) :: r796 in - let r798 = [R 268] in - let r799 = S (T T_RPAREN) :: r798 in - let r800 = [R 349] in + let r796 = [R 561] in + let r797 = S (T T_RPAREN) :: r796 in + let r798 = Sub (r78) :: r797 in + let r799 = S (T T_COLON) :: r798 in + let r800 = [R 268] in let r801 = S (T T_RPAREN) :: r800 in - let r802 = Sub (r34) :: r801 in - let r803 = [R 423] in - let r804 = S (N N_pattern) :: r803 in - let r805 = [R 344] in - let r806 = S (T T_RPAREN) :: r805 in - let r807 = [R 424] in - let r808 = [R 425] in - let r809 = Sub (r34) :: r808 in - let r810 = [R 346] in - let r811 = [R 345] in - let r812 = [R 339] in - let r813 = [R 347] in - let r814 = S (T T_RPAREN) :: r813 in - let r815 = Sub (r34) :: r814 in - let r816 = [R 342] in - let r817 = S (T T_RPAREN) :: r816 in - let r818 = Sub (r773) :: r777 in - let r819 = [R 348] in - let r820 = S (T T_RPAREN) :: r819 in - let r821 = Sub (r34) :: r820 in - let r822 = [R 341] in - let r823 = [R 340] in - let r824 = [R 644] in - let r825 = [R 161] in - let r826 = Sub (r200) :: r825 in - let r827 = R 446 :: r826 in - let r828 = [R 752] in - let r829 = S (N N_fun_expr) :: r828 in - let r830 = [R 755] in - let r831 = [R 756] in - let r832 = S (T T_RPAREN) :: r831 in - let r833 = Sub (r211) :: r832 in - let r834 = [R 754] in - let r835 = [R 921] in - let r836 = [R 932] in - let r837 = S (T T_RPAREN) :: r836 in - let r838 = S (T T_LPAREN) :: r837 in - let r839 = S (T T_DOT) :: r838 in - let r840 = [R 948] in - let r841 = S (T T_RPAREN) :: r840 in - let r842 = S (N N_module_type) :: r841 in - let r843 = S (T T_COLON) :: r842 in - let r844 = S (N N_module_expr) :: r843 in - let r845 = R 446 :: r844 in - let r846 = [R 432] in - let r847 = Sub (r3) :: r846 in - let r848 = S (T T_EQUAL) :: r847 in - let r849 = [R 150] in - let r850 = S (T T_DOWNTO) :: r849 in - let r851 = [R 177] in - let r852 = S (T T_DONE) :: r851 in - let r853 = Sub (r3) :: r852 in - let r854 = S (T T_DO) :: r853 in + let r802 = [R 349] in + let r803 = S (T T_RPAREN) :: r802 in + let r804 = Sub (r34) :: r803 in + let r805 = [R 423] in + let r806 = S (N N_pattern) :: r805 in + let r807 = [R 344] in + let r808 = S (T T_RPAREN) :: r807 in + let r809 = [R 424] in + let r810 = [R 425] in + let r811 = Sub (r34) :: r810 in + let r812 = [R 346] in + let r813 = [R 345] in + let r814 = [R 339] in + let r815 = [R 347] in + let r816 = S (T T_RPAREN) :: r815 in + let r817 = Sub (r34) :: r816 in + let r818 = [R 342] in + let r819 = S (T T_RPAREN) :: r818 in + let r820 = Sub (r775) :: r779 in + let r821 = [R 348] in + let r822 = S (T T_RPAREN) :: r821 in + let r823 = Sub (r34) :: r822 in + let r824 = [R 341] in + let r825 = [R 340] in + let r826 = [R 644] in + let r827 = [R 161] in + let r828 = Sub (r194) :: r827 in + let r829 = R 446 :: r828 in + let r830 = [R 752] in + let r831 = S (N N_fun_expr) :: r830 in + let r832 = [R 755] in + let r833 = [R 756] in + let r834 = S (T T_RPAREN) :: r833 in + let r835 = Sub (r205) :: r834 in + let r836 = [R 754] in + let r837 = [R 921] in + let r838 = [R 932] in + let r839 = S (T T_RPAREN) :: r838 in + let r840 = S (T T_LPAREN) :: r839 in + let r841 = S (T T_DOT) :: r840 in + let r842 = [R 948] in + let r843 = S (T T_RPAREN) :: r842 in + let r844 = S (N N_module_type) :: r843 in + let r845 = S (T T_COLON) :: r844 in + let r846 = S (N N_module_expr) :: r845 in + let r847 = R 446 :: r846 in + let r848 = [R 432] in + let r849 = Sub (r3) :: r848 in + let r850 = S (T T_EQUAL) :: r849 in + let r851 = [R 150] in + let r852 = S (T T_DOWNTO) :: r851 in + let r853 = [R 177] in + let r854 = S (T T_DONE) :: r853 in let r855 = Sub (r3) :: r854 in - let r856 = Sub (r850) :: r855 in + let r856 = S (T T_DO) :: r855 in let r857 = Sub (r3) :: r856 in - let r858 = S (T T_EQUAL) :: r857 in - let r859 = S (N N_pattern) :: r858 in - let r860 = R 446 :: r859 in - let r861 = [R 266] in - let r862 = [R 178] in - let r863 = Sub (r384) :: r862 in - let r864 = R 446 :: r863 in - let r865 = [R 928] in - let r866 = [R 929] in - let r867 = [R 905] in - let r868 = S (T T_RPAREN) :: r867 in - let r869 = Sub (r706) :: r868 in - let r870 = S (T T_LPAREN) :: r869 in - let r871 = [R 841] in - let r872 = Sub (r200) :: r871 in - let r873 = R 446 :: r872 in - let r874 = R 151 :: r873 in - let r875 = [R 180] in - let r876 = [R 181] in - let r877 = Sub (r200) :: r876 in - let r878 = R 446 :: r877 in - let r879 = [R 326] in - let r880 = [R 327] in - let r881 = S (T T_RPAREN) :: r880 in - let r882 = Sub (r211) :: r881 in - let r883 = [R 328] in - let r884 = [R 329] in - let r885 = [R 927] in - let r886 = [R 902] in - let r887 = S (T T_RPAREN) :: r886 in - let r888 = Sub (r3) :: r887 in - let r889 = S (T T_LPAREN) :: r888 in - let r890 = [R 742] in - let r891 = [R 745] in - let r892 = [R 746] in - let r893 = S (T T_RPAREN) :: r892 in - let r894 = Sub (r211) :: r893 in - let r895 = [R 744] in - let r896 = [R 743] in - let r897 = Sub (r200) :: r896 in - let r898 = R 446 :: r897 in - let r899 = [R 802] in - let r900 = [R 236] in - let r901 = Sub (r3) :: r900 in - let r902 = [R 216] in - let r903 = [R 217] in - let r904 = Sub (r200) :: r903 in - let r905 = R 446 :: r904 in - let r906 = [R 204] in - let r907 = [R 205] in - let r908 = Sub (r200) :: r907 in - let r909 = R 446 :: r908 in - let r910 = [R 182] in - let r911 = [R 183] in - let r912 = Sub (r200) :: r911 in - let r913 = R 446 :: r912 in - let r914 = [R 274] in - let r915 = Sub (r3) :: r914 in - let r916 = [R 210] in - let r917 = [R 211] in - let r918 = Sub (r200) :: r917 in - let r919 = R 446 :: r918 in - let r920 = [R 218] in - let r921 = [R 219] in - let r922 = Sub (r200) :: r921 in - let r923 = R 446 :: r922 in - let r924 = [R 202] in - let r925 = [R 203] in - let r926 = Sub (r200) :: r925 in - let r927 = R 446 :: r926 in - let r928 = [R 200] in - let r929 = [R 201] in - let r930 = Sub (r200) :: r929 in - let r931 = R 446 :: r930 in - let r932 = [R 208] in - let r933 = [R 209] in - let r934 = Sub (r200) :: r933 in - let r935 = R 446 :: r934 in - let r936 = [R 206] in - let r937 = [R 207] in - let r938 = Sub (r200) :: r937 in - let r939 = R 446 :: r938 in - let r940 = [R 226] in - let r941 = [R 227] in - let r942 = Sub (r200) :: r941 in - let r943 = R 446 :: r942 in - let r944 = [R 214] in - let r945 = [R 215] in - let r946 = Sub (r200) :: r945 in - let r947 = R 446 :: r946 in - let r948 = [R 212] in - let r949 = [R 213] in - let r950 = Sub (r200) :: r949 in - let r951 = R 446 :: r950 in - let r952 = [R 222] in - let r953 = [R 223] in - let r954 = Sub (r200) :: r953 in - let r955 = R 446 :: r954 in - let r956 = [R 198] in - let r957 = [R 199] in - let r958 = Sub (r200) :: r957 in - let r959 = R 446 :: r958 in - let r960 = [R 196] in - let r961 = [R 197] in - let r962 = Sub (r200) :: r961 in - let r963 = R 446 :: r962 in - let r964 = [R 238] in - let r965 = [R 239] in - let r966 = Sub (r200) :: r965 in - let r967 = R 446 :: r966 in - let r968 = [R 194] in - let r969 = [R 195] in - let r970 = Sub (r200) :: r969 in - let r971 = R 446 :: r970 in - let r972 = [R 192] in - let r973 = [R 193] in - let r974 = Sub (r200) :: r973 in - let r975 = R 446 :: r974 in - let r976 = [R 190] in - let r977 = [R 191] in - let r978 = Sub (r200) :: r977 in - let r979 = R 446 :: r978 in - let r980 = [R 224] in - let r981 = [R 225] in - let r982 = Sub (r200) :: r981 in - let r983 = R 446 :: r982 in - let r984 = [R 220] in - let r985 = [R 221] in - let r986 = Sub (r200) :: r985 in - let r987 = R 446 :: r986 in - let r988 = [R 228] in - let r989 = [R 229] in - let r990 = Sub (r200) :: r989 in - let r991 = R 446 :: r990 in - let r992 = [R 230] in - let r993 = [R 231] in - let r994 = Sub (r200) :: r993 in - let r995 = R 446 :: r994 in - let r996 = [R 232] in - let r997 = [R 233] in - let r998 = Sub (r200) :: r997 in - let r999 = R 446 :: r998 in - let r1000 = [R 750] in - let r1001 = [R 751] in - let r1002 = S (T T_RPAREN) :: r1001 in - let r1003 = Sub (r211) :: r1002 in - let r1004 = [R 749] in - let r1005 = [R 748] in - let r1006 = Sub (r200) :: r1005 in - let r1007 = R 446 :: r1006 in - let r1008 = [R 234] in - let r1009 = [R 235] in - let r1010 = Sub (r200) :: r1009 in - let r1011 = R 446 :: r1010 in - let r1012 = [R 21] in - let r1013 = R 452 :: r1012 in - let r1014 = Sub (r644) :: r1013 in - let r1015 = [R 1034] in - let r1016 = Sub (r3) :: r1015 in - let r1017 = S (T T_EQUAL) :: r1016 in - let r1018 = [R 410] in - let r1019 = Sub (r1017) :: r1018 in - let r1020 = [R 1035] in - let r1021 = Sub (r760) :: r1020 in - let r1022 = S (T T_EQUAL) :: r1021 in - let r1023 = [R 403] in - let r1024 = Sub (r3) :: r1023 in - let r1025 = S (T T_EQUAL) :: r1024 in - let r1026 = Sub (r34) :: r1025 in - let r1027 = S (T T_DOT) :: r1026 in - let r1028 = [R 404] in - let r1029 = Sub (r3) :: r1028 in - let r1030 = [R 399] in + let r858 = Sub (r852) :: r857 in + let r859 = Sub (r3) :: r858 in + let r860 = S (T T_EQUAL) :: r859 in + let r861 = S (N N_pattern) :: r860 in + let r862 = R 446 :: r861 in + let r863 = [R 266] in + let r864 = [R 178] in + let r865 = Sub (r378) :: r864 in + let r866 = R 446 :: r865 in + let r867 = [R 928] in + let r868 = [R 929] in + let r869 = [R 905] in + let r870 = S (T T_RPAREN) :: r869 in + let r871 = Sub (r708) :: r870 in + let r872 = S (T T_LPAREN) :: r871 in + let r873 = [R 841] in + let r874 = Sub (r194) :: r873 in + let r875 = R 446 :: r874 in + let r876 = R 151 :: r875 in + let r877 = [R 180] in + let r878 = [R 181] in + let r879 = Sub (r194) :: r878 in + let r880 = R 446 :: r879 in + let r881 = [R 326] in + let r882 = [R 327] in + let r883 = S (T T_RPAREN) :: r882 in + let r884 = Sub (r205) :: r883 in + let r885 = [R 328] in + let r886 = [R 329] in + let r887 = [R 927] in + let r888 = [R 902] in + let r889 = S (T T_RPAREN) :: r888 in + let r890 = Sub (r3) :: r889 in + let r891 = S (T T_LPAREN) :: r890 in + let r892 = [R 742] in + let r893 = [R 745] in + let r894 = [R 746] in + let r895 = S (T T_RPAREN) :: r894 in + let r896 = Sub (r205) :: r895 in + let r897 = [R 744] in + let r898 = [R 743] in + let r899 = Sub (r194) :: r898 in + let r900 = R 446 :: r899 in + let r901 = [R 802] in + let r902 = [R 236] in + let r903 = Sub (r3) :: r902 in + let r904 = [R 216] in + let r905 = [R 217] in + let r906 = Sub (r194) :: r905 in + let r907 = R 446 :: r906 in + let r908 = [R 204] in + let r909 = [R 205] in + let r910 = Sub (r194) :: r909 in + let r911 = R 446 :: r910 in + let r912 = [R 182] in + let r913 = [R 183] in + let r914 = Sub (r194) :: r913 in + let r915 = R 446 :: r914 in + let r916 = [R 274] in + let r917 = Sub (r3) :: r916 in + let r918 = [R 210] in + let r919 = [R 211] in + let r920 = Sub (r194) :: r919 in + let r921 = R 446 :: r920 in + let r922 = [R 218] in + let r923 = [R 219] in + let r924 = Sub (r194) :: r923 in + let r925 = R 446 :: r924 in + let r926 = [R 202] in + let r927 = [R 203] in + let r928 = Sub (r194) :: r927 in + let r929 = R 446 :: r928 in + let r930 = [R 200] in + let r931 = [R 201] in + let r932 = Sub (r194) :: r931 in + let r933 = R 446 :: r932 in + let r934 = [R 208] in + let r935 = [R 209] in + let r936 = Sub (r194) :: r935 in + let r937 = R 446 :: r936 in + let r938 = [R 206] in + let r939 = [R 207] in + let r940 = Sub (r194) :: r939 in + let r941 = R 446 :: r940 in + let r942 = [R 226] in + let r943 = [R 227] in + let r944 = Sub (r194) :: r943 in + let r945 = R 446 :: r944 in + let r946 = [R 214] in + let r947 = [R 215] in + let r948 = Sub (r194) :: r947 in + let r949 = R 446 :: r948 in + let r950 = [R 212] in + let r951 = [R 213] in + let r952 = Sub (r194) :: r951 in + let r953 = R 446 :: r952 in + let r954 = [R 222] in + let r955 = [R 223] in + let r956 = Sub (r194) :: r955 in + let r957 = R 446 :: r956 in + let r958 = [R 198] in + let r959 = [R 199] in + let r960 = Sub (r194) :: r959 in + let r961 = R 446 :: r960 in + let r962 = [R 196] in + let r963 = [R 197] in + let r964 = Sub (r194) :: r963 in + let r965 = R 446 :: r964 in + let r966 = [R 238] in + let r967 = [R 239] in + let r968 = Sub (r194) :: r967 in + let r969 = R 446 :: r968 in + let r970 = [R 194] in + let r971 = [R 195] in + let r972 = Sub (r194) :: r971 in + let r973 = R 446 :: r972 in + let r974 = [R 192] in + let r975 = [R 193] in + let r976 = Sub (r194) :: r975 in + let r977 = R 446 :: r976 in + let r978 = [R 190] in + let r979 = [R 191] in + let r980 = Sub (r194) :: r979 in + let r981 = R 446 :: r980 in + let r982 = [R 224] in + let r983 = [R 225] in + let r984 = Sub (r194) :: r983 in + let r985 = R 446 :: r984 in + let r986 = [R 220] in + let r987 = [R 221] in + let r988 = Sub (r194) :: r987 in + let r989 = R 446 :: r988 in + let r990 = [R 228] in + let r991 = [R 229] in + let r992 = Sub (r194) :: r991 in + let r993 = R 446 :: r992 in + let r994 = [R 230] in + let r995 = [R 231] in + let r996 = Sub (r194) :: r995 in + let r997 = R 446 :: r996 in + let r998 = [R 232] in + let r999 = [R 233] in + let r1000 = Sub (r194) :: r999 in + let r1001 = R 446 :: r1000 in + let r1002 = [R 750] in + let r1003 = [R 751] in + let r1004 = S (T T_RPAREN) :: r1003 in + let r1005 = Sub (r205) :: r1004 in + let r1006 = [R 749] in + let r1007 = [R 748] in + let r1008 = Sub (r194) :: r1007 in + let r1009 = R 446 :: r1008 in + let r1010 = [R 234] in + let r1011 = [R 235] in + let r1012 = Sub (r194) :: r1011 in + let r1013 = R 446 :: r1012 in + let r1014 = [R 21] in + let r1015 = R 452 :: r1014 in + let r1016 = Sub (r646) :: r1015 in + let r1017 = [R 1034] in + let r1018 = Sub (r3) :: r1017 in + let r1019 = S (T T_EQUAL) :: r1018 in + let r1020 = [R 410] in + let r1021 = Sub (r1019) :: r1020 in + let r1022 = [R 1035] in + let r1023 = Sub (r762) :: r1022 in + let r1024 = S (T T_EQUAL) :: r1023 in + let r1025 = [R 403] in + let r1026 = Sub (r3) :: r1025 in + let r1027 = S (T T_EQUAL) :: r1026 in + let r1028 = Sub (r34) :: r1027 in + let r1029 = S (T T_DOT) :: r1028 in + let r1030 = [R 404] in let r1031 = Sub (r3) :: r1030 in - let r1032 = S (T T_EQUAL) :: r1031 in - let r1033 = Sub (r34) :: r1032 in - let r1034 = [R 400] in - let r1035 = Sub (r3) :: r1034 in - let r1036 = [R 393] in + let r1032 = [R 399] in + let r1033 = Sub (r3) :: r1032 in + let r1034 = S (T T_EQUAL) :: r1033 in + let r1035 = Sub (r34) :: r1034 in + let r1036 = [R 400] in let r1037 = Sub (r3) :: r1036 in - let r1038 = [R 394] in + let r1038 = [R 393] in let r1039 = Sub (r3) :: r1038 in - let r1040 = [R 395] in + let r1040 = [R 394] in let r1041 = Sub (r3) :: r1040 in - let r1042 = [R 407] in + let r1042 = [R 395] in let r1043 = Sub (r3) :: r1042 in - let r1044 = S (T T_EQUAL) :: r1043 in - let r1045 = [R 408] in - let r1046 = Sub (r3) :: r1045 in - let r1047 = [R 406] in + let r1044 = [R 407] in + let r1045 = Sub (r3) :: r1044 in + let r1046 = S (T T_EQUAL) :: r1045 in + let r1047 = [R 408] in let r1048 = Sub (r3) :: r1047 in - let r1049 = [R 405] in + let r1049 = [R 406] in let r1050 = Sub (r3) :: r1049 in - let r1051 = [R 780] in - let r1052 = [R 376] in - let r1053 = [R 377] in - let r1054 = S (T T_RPAREN) :: r1053 in - let r1055 = Sub (r34) :: r1054 in - let r1056 = S (T T_COLON) :: r1055 in - let r1057 = [R 375] in - let r1058 = [R 702] in - let r1059 = [R 701] in - let r1060 = [R 409] in - let r1061 = Sub (r1017) :: r1060 in - let r1062 = [R 401] in - let r1063 = Sub (r3) :: r1062 in - let r1064 = S (T T_EQUAL) :: r1063 in - let r1065 = Sub (r34) :: r1064 in - let r1066 = [R 402] in - let r1067 = Sub (r3) :: r1066 in - let r1068 = [R 396] in + let r1051 = [R 405] in + let r1052 = Sub (r3) :: r1051 in + let r1053 = [R 780] in + let r1054 = [R 376] in + let r1055 = [R 377] in + let r1056 = S (T T_RPAREN) :: r1055 in + let r1057 = Sub (r34) :: r1056 in + let r1058 = S (T T_COLON) :: r1057 in + let r1059 = [R 375] in + let r1060 = [R 702] in + let r1061 = [R 701] in + let r1062 = [R 409] in + let r1063 = Sub (r1019) :: r1062 in + let r1064 = [R 401] in + let r1065 = Sub (r3) :: r1064 in + let r1066 = S (T T_EQUAL) :: r1065 in + let r1067 = Sub (r34) :: r1066 in + let r1068 = [R 402] in let r1069 = Sub (r3) :: r1068 in - let r1070 = [R 397] in + let r1070 = [R 396] in let r1071 = Sub (r3) :: r1070 in - let r1072 = [R 398] in + let r1072 = [R 397] in let r1073 = Sub (r3) :: r1072 in - let r1074 = [R 453] in - let r1075 = [R 904] in - let r1076 = S (T T_RBRACKET) :: r1075 in - let r1077 = Sub (r3) :: r1076 in - let r1078 = [R 903] in - let r1079 = S (T T_RBRACE) :: r1078 in - let r1080 = Sub (r3) :: r1079 in - let r1081 = [R 906] in - let r1082 = S (T T_RPAREN) :: r1081 in - let r1083 = Sub (r706) :: r1082 in - let r1084 = S (T T_LPAREN) :: r1083 in - let r1085 = [R 910] in - let r1086 = S (T T_RBRACKET) :: r1085 in - let r1087 = Sub (r706) :: r1086 in - let r1088 = [R 908] in - let r1089 = S (T T_RBRACE) :: r1088 in - let r1090 = Sub (r706) :: r1089 in - let r1091 = [R 325] in - let r1092 = [R 250] in - let r1093 = [R 251] in - let r1094 = Sub (r200) :: r1093 in - let r1095 = R 446 :: r1094 in - let r1096 = [R 909] in - let r1097 = S (T T_RBRACKET) :: r1096 in - let r1098 = Sub (r706) :: r1097 in - let r1099 = [R 258] in - let r1100 = [R 259] in - let r1101 = Sub (r200) :: r1100 in - let r1102 = R 446 :: r1101 in - let r1103 = [R 907] in - let r1104 = S (T T_RBRACE) :: r1103 in - let r1105 = Sub (r706) :: r1104 in - let r1106 = [R 254] in - let r1107 = [R 255] in - let r1108 = Sub (r200) :: r1107 in - let r1109 = R 446 :: r1108 in - let r1110 = [R 244] in - let r1111 = [R 245] in - let r1112 = Sub (r200) :: r1111 in - let r1113 = R 446 :: r1112 in - let r1114 = [R 248] in - let r1115 = [R 249] in - let r1116 = Sub (r200) :: r1115 in - let r1117 = R 446 :: r1116 in - let r1118 = [R 246] in - let r1119 = [R 247] in - let r1120 = Sub (r200) :: r1119 in - let r1121 = R 446 :: r1120 in - let r1122 = [R 252] in - let r1123 = [R 253] in - let r1124 = Sub (r200) :: r1123 in - let r1125 = R 446 :: r1124 in - let r1126 = [R 260] in - let r1127 = [R 261] in - let r1128 = Sub (r200) :: r1127 in - let r1129 = R 446 :: r1128 in - let r1130 = [R 256] in - let r1131 = [R 257] in - let r1132 = Sub (r200) :: r1131 in - let r1133 = R 446 :: r1132 in - let r1134 = [R 242] in - let r1135 = [R 243] in - let r1136 = Sub (r200) :: r1135 in - let r1137 = R 446 :: r1136 in - let r1138 = [R 433] in - let r1139 = Sub (r3) :: r1138 in - let r1140 = [R 435] in - let r1141 = [R 925] in - let r1142 = [R 953] in - let r1143 = [R 97] in - let r1144 = [R 98] in - let r1145 = Sub (r200) :: r1144 in - let r1146 = R 446 :: r1145 in - let r1147 = [R 110] in - let r1148 = S (N N_fun_expr) :: r1147 in - let r1149 = S (T T_IN) :: r1148 in - let r1150 = [R 99] in - let r1151 = Sub (r1149) :: r1150 in - let r1152 = S (N N_pattern) :: r1151 in - let r1153 = R 446 :: r1152 in - let r1154 = [R 805] in - let r1155 = Sub (r1153) :: r1154 in - let r1156 = [R 96] in - let r1157 = [R 806] in - let r1158 = [R 102] in - let r1159 = S (N N_fun_expr) :: r1158 in - let r1160 = S (T T_IN) :: r1159 in - let r1161 = [R 103] in - let r1162 = Sub (r200) :: r1161 in - let r1163 = R 446 :: r1162 in - let r1164 = [R 104] in - let r1165 = S (N N_fun_expr) :: r1164 in - let r1166 = S (T T_IN) :: r1165 in - let r1167 = [R 105] in - let r1168 = Sub (r200) :: r1167 in - let r1169 = R 446 :: r1168 in - let r1170 = [R 100] in - let r1171 = S (N N_fun_expr) :: r1170 in - let r1172 = S (T T_IN) :: r1171 in - let r1173 = [R 101] in - let r1174 = Sub (r200) :: r1173 in - let r1175 = R 446 :: r1174 in - let r1176 = [R 111] in - let r1177 = Sub (r200) :: r1176 in - let r1178 = R 446 :: r1177 in - let r1179 = [R 106] in - let r1180 = S (N N_fun_expr) :: r1179 in - let r1181 = Sub (r850) :: r1180 in - let r1182 = [R 108] in - let r1183 = S (N N_fun_expr) :: r1182 in - let r1184 = Sub (r850) :: r1183 in - let r1185 = Sub (r200) :: r1184 in - let r1186 = R 446 :: r1185 in - let r1187 = [R 109] in - let r1188 = Sub (r200) :: r1187 in - let r1189 = R 446 :: r1188 in - let r1190 = [R 107] in - let r1191 = Sub (r200) :: r1190 in - let r1192 = R 446 :: r1191 in - let r1193 = [R 945] in - let r1194 = [R 952] in - let r1195 = [R 944] in - let r1196 = [R 938] in - let r1197 = [R 943] in - let r1198 = [R 937] in - let r1199 = [R 942] in - let r1200 = [R 947] in - let r1201 = [R 941] in - let r1202 = [R 946] in - let r1203 = [R 940] in - let r1204 = S (T T_LIDENT) :: r711 in - let r1205 = [R 926] in - let r1206 = S (T T_GREATERRBRACE) :: r1205 in - let r1207 = [R 934] in - let r1208 = S (T T_RBRACE) :: r1207 in - let r1209 = [R 727] in - let r1210 = Sub (r716) :: r1209 in - let r1211 = [R 753] in - let r1212 = Sub (r200) :: r1211 in - let r1213 = R 446 :: r1212 in - let r1214 = [R 175] in - let r1215 = Sub (r200) :: r1214 in - let r1216 = R 446 :: r1215 in - let r1217 = [R 172] in - let r1218 = [R 173] in - let r1219 = Sub (r200) :: r1218 in - let r1220 = R 446 :: r1219 in - let r1221 = [R 170] in - let r1222 = [R 171] in - let r1223 = Sub (r200) :: r1222 in - let r1224 = R 446 :: r1223 in - let r1225 = [R 911] in - let r1226 = [R 760] in - let r1227 = [R 761] in - let r1228 = S (T T_RPAREN) :: r1227 in - let r1229 = Sub (r211) :: r1228 in - let r1230 = [R 759] in - let r1231 = [R 758] in - let r1232 = Sub (r200) :: r1231 in - let r1233 = R 446 :: r1232 in - let r1234 = [R 897] in - let r1235 = S (T T_GREATERDOT) :: r1234 in - let r1236 = Sub (r200) :: r1235 in - let r1237 = R 446 :: r1236 in - let r1238 = S (T T_COMMA) :: r829 in - let r1239 = Sub (r200) :: r1238 in - let r1240 = R 446 :: r1239 in - let r1241 = [R 649] in - let r1242 = Sub (r200) :: r1241 in - let r1243 = R 446 :: r1242 in - let r1244 = [R 922] in - let r1245 = [R 956] in - let r1246 = [R 955] in - let r1247 = [R 958] in - let r1248 = [R 935] in - let r1249 = [R 957] in - let r1250 = [R 518] in - let r1251 = S (N N_module_expr) :: r1250 in - let r1252 = S (T T_EQUAL) :: r1251 in - let r1253 = [R 164] in - let r1254 = Sub (r3) :: r1253 in - let r1255 = S (T T_IN) :: r1254 in - let r1256 = Sub (r1252) :: r1255 in - let r1257 = Sub (r415) :: r1256 in - let r1258 = R 446 :: r1257 in - let r1259 = [R 519] in - let r1260 = S (N N_module_expr) :: r1259 in - let r1261 = S (T T_EQUAL) :: r1260 in - let r1262 = [R 520] in - let r1263 = [R 165] in - let r1264 = Sub (r3) :: r1263 in - let r1265 = S (T T_IN) :: r1264 in - let r1266 = R 446 :: r1265 in - let r1267 = R 280 :: r1266 in - let r1268 = Sub (r135) :: r1267 in - let r1269 = R 446 :: r1268 in - let r1270 = [R 126] in - let r1271 = R 658 :: r1270 in - let r1272 = Sub (r26) :: r1271 in - let r1273 = [R 281] in - let r1274 = [R 713] in - let r1275 = Sub (r32) :: r1274 in - let r1276 = [R 312] in - let r1277 = R 446 :: r1276 in - let r1278 = R 658 :: r1277 in - let r1279 = Sub (r1275) :: r1278 in - let r1280 = S (T T_COLON) :: r1279 in - let r1281 = S (T T_LIDENT) :: r1280 in - let r1282 = R 551 :: r1281 in - let r1283 = [R 314] in - let r1284 = Sub (r1282) :: r1283 in - let r1285 = [R 130] in - let r1286 = S (T T_RBRACE) :: r1285 in - let r1287 = [R 313] in - let r1288 = R 446 :: r1287 in - let r1289 = S (T T_SEMI) :: r1288 in + let r1074 = [R 398] in + let r1075 = Sub (r3) :: r1074 in + let r1076 = [R 453] in + let r1077 = [R 904] in + let r1078 = S (T T_RBRACKET) :: r1077 in + let r1079 = Sub (r3) :: r1078 in + let r1080 = [R 903] in + let r1081 = S (T T_RBRACE) :: r1080 in + let r1082 = Sub (r3) :: r1081 in + let r1083 = [R 906] in + let r1084 = S (T T_RPAREN) :: r1083 in + let r1085 = Sub (r708) :: r1084 in + let r1086 = S (T T_LPAREN) :: r1085 in + let r1087 = [R 910] in + let r1088 = S (T T_RBRACKET) :: r1087 in + let r1089 = Sub (r708) :: r1088 in + let r1090 = [R 908] in + let r1091 = S (T T_RBRACE) :: r1090 in + let r1092 = Sub (r708) :: r1091 in + let r1093 = [R 325] in + let r1094 = [R 250] in + let r1095 = [R 251] in + let r1096 = Sub (r194) :: r1095 in + let r1097 = R 446 :: r1096 in + let r1098 = [R 909] in + let r1099 = S (T T_RBRACKET) :: r1098 in + let r1100 = Sub (r708) :: r1099 in + let r1101 = [R 258] in + let r1102 = [R 259] in + let r1103 = Sub (r194) :: r1102 in + let r1104 = R 446 :: r1103 in + let r1105 = [R 907] in + let r1106 = S (T T_RBRACE) :: r1105 in + let r1107 = Sub (r708) :: r1106 in + let r1108 = [R 254] in + let r1109 = [R 255] in + let r1110 = Sub (r194) :: r1109 in + let r1111 = R 446 :: r1110 in + let r1112 = [R 244] in + let r1113 = [R 245] in + let r1114 = Sub (r194) :: r1113 in + let r1115 = R 446 :: r1114 in + let r1116 = [R 248] in + let r1117 = [R 249] in + let r1118 = Sub (r194) :: r1117 in + let r1119 = R 446 :: r1118 in + let r1120 = [R 246] in + let r1121 = [R 247] in + let r1122 = Sub (r194) :: r1121 in + let r1123 = R 446 :: r1122 in + let r1124 = [R 252] in + let r1125 = [R 253] in + let r1126 = Sub (r194) :: r1125 in + let r1127 = R 446 :: r1126 in + let r1128 = [R 260] in + let r1129 = [R 261] in + let r1130 = Sub (r194) :: r1129 in + let r1131 = R 446 :: r1130 in + let r1132 = [R 256] in + let r1133 = [R 257] in + let r1134 = Sub (r194) :: r1133 in + let r1135 = R 446 :: r1134 in + let r1136 = [R 242] in + let r1137 = [R 243] in + let r1138 = Sub (r194) :: r1137 in + let r1139 = R 446 :: r1138 in + let r1140 = [R 433] in + let r1141 = Sub (r3) :: r1140 in + let r1142 = [R 435] in + let r1143 = [R 925] in + let r1144 = [R 953] in + let r1145 = [R 97] in + let r1146 = [R 98] in + let r1147 = Sub (r194) :: r1146 in + let r1148 = R 446 :: r1147 in + let r1149 = [R 110] in + let r1150 = S (N N_fun_expr) :: r1149 in + let r1151 = S (T T_IN) :: r1150 in + let r1152 = [R 99] in + let r1153 = Sub (r1151) :: r1152 in + let r1154 = S (N N_pattern) :: r1153 in + let r1155 = R 446 :: r1154 in + let r1156 = [R 805] in + let r1157 = Sub (r1155) :: r1156 in + let r1158 = [R 96] in + let r1159 = [R 806] in + let r1160 = [R 102] in + let r1161 = S (N N_fun_expr) :: r1160 in + let r1162 = S (T T_IN) :: r1161 in + let r1163 = [R 103] in + let r1164 = Sub (r194) :: r1163 in + let r1165 = R 446 :: r1164 in + let r1166 = [R 104] in + let r1167 = S (N N_fun_expr) :: r1166 in + let r1168 = S (T T_IN) :: r1167 in + let r1169 = [R 105] in + let r1170 = Sub (r194) :: r1169 in + let r1171 = R 446 :: r1170 in + let r1172 = [R 100] in + let r1173 = S (N N_fun_expr) :: r1172 in + let r1174 = S (T T_IN) :: r1173 in + let r1175 = [R 101] in + let r1176 = Sub (r194) :: r1175 in + let r1177 = R 446 :: r1176 in + let r1178 = [R 111] in + let r1179 = Sub (r194) :: r1178 in + let r1180 = R 446 :: r1179 in + let r1181 = [R 106] in + let r1182 = S (N N_fun_expr) :: r1181 in + let r1183 = Sub (r852) :: r1182 in + let r1184 = [R 108] in + let r1185 = S (N N_fun_expr) :: r1184 in + let r1186 = Sub (r852) :: r1185 in + let r1187 = Sub (r194) :: r1186 in + let r1188 = R 446 :: r1187 in + let r1189 = [R 109] in + let r1190 = Sub (r194) :: r1189 in + let r1191 = R 446 :: r1190 in + let r1192 = [R 107] in + let r1193 = Sub (r194) :: r1192 in + let r1194 = R 446 :: r1193 in + let r1195 = [R 945] in + let r1196 = [R 952] in + let r1197 = [R 944] in + let r1198 = [R 938] in + let r1199 = [R 943] in + let r1200 = [R 937] in + let r1201 = [R 942] in + let r1202 = [R 947] in + let r1203 = [R 941] in + let r1204 = [R 946] in + let r1205 = [R 940] in + let r1206 = S (T T_LIDENT) :: r713 in + let r1207 = [R 926] in + let r1208 = S (T T_GREATERRBRACE) :: r1207 in + let r1209 = [R 934] in + let r1210 = S (T T_RBRACE) :: r1209 in + let r1211 = [R 727] in + let r1212 = Sub (r718) :: r1211 in + let r1213 = [R 753] in + let r1214 = Sub (r194) :: r1213 in + let r1215 = R 446 :: r1214 in + let r1216 = [R 175] in + let r1217 = Sub (r194) :: r1216 in + let r1218 = R 446 :: r1217 in + let r1219 = [R 172] in + let r1220 = [R 173] in + let r1221 = Sub (r194) :: r1220 in + let r1222 = R 446 :: r1221 in + let r1223 = [R 170] in + let r1224 = [R 171] in + let r1225 = Sub (r194) :: r1224 in + let r1226 = R 446 :: r1225 in + let r1227 = [R 911] in + let r1228 = [R 760] in + let r1229 = [R 761] in + let r1230 = S (T T_RPAREN) :: r1229 in + let r1231 = Sub (r205) :: r1230 in + let r1232 = [R 759] in + let r1233 = [R 758] in + let r1234 = Sub (r194) :: r1233 in + let r1235 = R 446 :: r1234 in + let r1236 = [R 897] in + let r1237 = S (T T_GREATERDOT) :: r1236 in + let r1238 = Sub (r194) :: r1237 in + let r1239 = R 446 :: r1238 in + let r1240 = S (T T_COMMA) :: r831 in + let r1241 = Sub (r194) :: r1240 in + let r1242 = R 446 :: r1241 in + let r1243 = [R 649] in + let r1244 = Sub (r194) :: r1243 in + let r1245 = R 446 :: r1244 in + let r1246 = [R 922] in + let r1247 = [R 956] in + let r1248 = [R 955] in + let r1249 = [R 958] in + let r1250 = [R 935] in + let r1251 = [R 957] in + let r1252 = [R 518] in + let r1253 = S (N N_module_expr) :: r1252 in + let r1254 = S (T T_EQUAL) :: r1253 in + let r1255 = [R 164] in + let r1256 = Sub (r3) :: r1255 in + let r1257 = S (T T_IN) :: r1256 in + let r1258 = Sub (r1254) :: r1257 in + let r1259 = Sub (r409) :: r1258 in + let r1260 = R 446 :: r1259 in + let r1261 = [R 519] in + let r1262 = S (N N_module_expr) :: r1261 in + let r1263 = S (T T_EQUAL) :: r1262 in + let r1264 = [R 520] in + let r1265 = [R 165] in + let r1266 = Sub (r3) :: r1265 in + let r1267 = S (T T_IN) :: r1266 in + let r1268 = R 446 :: r1267 in + let r1269 = R 280 :: r1268 in + let r1270 = Sub (r127) :: r1269 in + let r1271 = R 446 :: r1270 in + let r1272 = [R 126] in + let r1273 = R 658 :: r1272 in + let r1274 = Sub (r26) :: r1273 in + let r1275 = [R 281] in + let r1276 = [R 713] in + let r1277 = Sub (r32) :: r1276 in + let r1278 = [R 312] in + let r1279 = R 446 :: r1278 in + let r1280 = R 658 :: r1279 in + let r1281 = Sub (r1277) :: r1280 in + let r1282 = S (T T_COLON) :: r1281 in + let r1283 = S (T T_LIDENT) :: r1282 in + let r1284 = R 551 :: r1283 in + let r1285 = [R 314] in + let r1286 = Sub (r1284) :: r1285 in + let r1287 = [R 130] in + let r1288 = S (T T_RBRACE) :: r1287 in + let r1289 = [R 313] in let r1290 = R 446 :: r1289 in - let r1291 = R 658 :: r1290 in - let r1292 = Sub (r1275) :: r1291 in - let r1293 = S (T T_COLON) :: r1292 in - let r1294 = [R 714] in - let r1295 = Sub (r32) :: r1294 in - let r1296 = [R 565] in - let r1297 = S (T T_LIDENT) :: r1296 in - let r1298 = [R 659] in - let r1299 = [R 127] in - let r1300 = R 658 :: r1299 in - let r1301 = [R 128] in - let r1302 = R 658 :: r1301 in - let r1303 = Sub (r26) :: r1302 in - let r1304 = [R 129] in - let r1305 = R 658 :: r1304 in - let r1306 = [R 284] in - let r1307 = [R 285] in - let r1308 = Sub (r26) :: r1307 in - let r1309 = [R 283] in - let r1310 = Sub (r26) :: r1309 in - let r1311 = [R 282] in - let r1312 = Sub (r26) :: r1311 in - let r1313 = [R 241] in - let r1314 = Sub (r200) :: r1313 in - let r1315 = R 446 :: r1314 in - let r1316 = [R 960] in - let r1317 = [R 950] in - let r1318 = [R 959] in - let r1319 = [R 914] in - let r1320 = S (T T_RPAREN) :: r1319 in - let r1321 = S (N N_module_expr) :: r1320 in - let r1322 = R 446 :: r1321 in - let r1323 = [R 915] in - let r1324 = S (T T_RPAREN) :: r1323 in - let r1325 = [R 900] in - let r1326 = [R 901] in - let r1327 = [R 665] in - let r1328 = S (T T_RPAREN) :: r1327 in - let r1329 = Sub (r200) :: r1328 in - let r1330 = R 446 :: r1329 in - let r1331 = [R 671] in - let r1332 = S (T T_RPAREN) :: r1331 in - let r1333 = [R 667] in - let r1334 = S (T T_RPAREN) :: r1333 in - let r1335 = [R 669] in - let r1336 = S (T T_RPAREN) :: r1335 in - let r1337 = [R 670] in - let r1338 = S (T T_RPAREN) :: r1337 in - let r1339 = [R 666] in - let r1340 = S (T T_RPAREN) :: r1339 in - let r1341 = [R 668] in - let r1342 = S (T T_RPAREN) :: r1341 in - let r1343 = [R 1188] in - let r1344 = R 452 :: r1343 in - let r1345 = Sub (r1252) :: r1344 in - let r1346 = Sub (r415) :: r1345 in - let r1347 = R 446 :: r1346 in - let r1348 = [R 546] in + let r1291 = S (T T_SEMI) :: r1290 in + let r1292 = R 446 :: r1291 in + let r1293 = R 658 :: r1292 in + let r1294 = Sub (r1277) :: r1293 in + let r1295 = S (T T_COLON) :: r1294 in + let r1296 = [R 714] in + let r1297 = Sub (r32) :: r1296 in + let r1298 = [R 127] in + let r1299 = R 658 :: r1298 in + let r1300 = [R 128] in + let r1301 = R 658 :: r1300 in + let r1302 = Sub (r26) :: r1301 in + let r1303 = [R 129] in + let r1304 = R 658 :: r1303 in + let r1305 = [R 284] in + let r1306 = [R 833] in + let r1307 = Sub (r78) :: r1306 in + let r1308 = S (T T_COLON) :: r1307 in + let r1309 = [R 832] in + let r1310 = Sub (r78) :: r1309 in + let r1311 = S (T T_COLON) :: r1310 in + let r1312 = [R 285] in + let r1313 = Sub (r26) :: r1312 in + let r1314 = [R 283] in + let r1315 = Sub (r26) :: r1314 in + let r1316 = [R 282] in + let r1317 = Sub (r26) :: r1316 in + let r1318 = [R 241] in + let r1319 = Sub (r194) :: r1318 in + let r1320 = R 446 :: r1319 in + let r1321 = [R 960] in + let r1322 = [R 950] in + let r1323 = [R 959] in + let r1324 = [R 914] in + let r1325 = S (T T_RPAREN) :: r1324 in + let r1326 = S (N N_module_expr) :: r1325 in + let r1327 = R 446 :: r1326 in + let r1328 = [R 915] in + let r1329 = S (T T_RPAREN) :: r1328 in + let r1330 = [R 900] in + let r1331 = [R 901] in + let r1332 = [R 665] in + let r1333 = S (T T_RPAREN) :: r1332 in + let r1334 = Sub (r194) :: r1333 in + let r1335 = R 446 :: r1334 in + let r1336 = [R 671] in + let r1337 = S (T T_RPAREN) :: r1336 in + let r1338 = [R 667] in + let r1339 = S (T T_RPAREN) :: r1338 in + let r1340 = [R 669] in + let r1341 = S (T T_RPAREN) :: r1340 in + let r1342 = [R 670] in + let r1343 = S (T T_RPAREN) :: r1342 in + let r1344 = [R 666] in + let r1345 = S (T T_RPAREN) :: r1344 in + let r1346 = [R 668] in + let r1347 = S (T T_RPAREN) :: r1346 in + let r1348 = [R 1189] in let r1349 = R 452 :: r1348 in - let r1350 = R 650 :: r1349 in - let r1351 = Sub (r60) :: r1350 in + let r1350 = Sub (r1254) :: r1349 in + let r1351 = Sub (r409) :: r1350 in let r1352 = R 446 :: r1351 in - let r1353 = R 151 :: r1352 in - let r1354 = [R 651] in - let r1355 = [R 1189] in - let r1356 = R 442 :: r1355 in - let r1357 = R 452 :: r1356 in - let r1358 = Sub (r1252) :: r1357 in - let r1359 = [R 443] in + let r1353 = [R 546] in + let r1354 = R 452 :: r1353 in + let r1355 = R 650 :: r1354 in + let r1356 = Sub (r60) :: r1355 in + let r1357 = R 446 :: r1356 in + let r1358 = [R 651] in + let r1359 = [R 1190] in let r1360 = R 442 :: r1359 in let r1361 = R 452 :: r1360 in - let r1362 = Sub (r1252) :: r1361 in - let r1363 = Sub (r415) :: r1362 in - let r1364 = [R 300] in - let r1365 = S (T T_RBRACKET) :: r1364 in - let r1366 = Sub (r17) :: r1365 in - let r1367 = [R 709] in - let r1368 = [R 710] in - let r1369 = [R 158] in - let r1370 = S (T T_RBRACKET) :: r1369 in - let r1371 = Sub (r19) :: r1370 in - let r1372 = [R 311] in - let r1373 = Sub (r78) :: r1372 in - let r1374 = S (T T_EQUAL) :: r1373 in - let r1375 = [R 577] in - let r1376 = S (T T_STRING) :: r1375 in - let r1377 = [R 716] in - let r1378 = R 452 :: r1377 in - let r1379 = Sub (r1376) :: r1378 in - let r1380 = S (T T_EQUAL) :: r1379 in - let r1381 = R 658 :: r1380 in - let r1382 = Sub (r36) :: r1381 in - let r1383 = S (T T_COLON) :: r1382 in - let r1384 = Sub (r24) :: r1383 in - let r1385 = R 446 :: r1384 in - let r1386 = [R 712] in - let r1387 = Sub (r34) :: r1386 in - let r1388 = Sub (r133) :: r566 in - let r1389 = [R 1033] in - let r1390 = R 452 :: r1389 in - let r1391 = R 446 :: r1390 in - let r1392 = Sub (r1388) :: r1391 in - let r1393 = S (T T_EQUAL) :: r1392 in - let r1394 = Sub (r135) :: r1393 in + let r1362 = Sub (r1254) :: r1361 in + let r1363 = [R 443] in + let r1364 = R 442 :: r1363 in + let r1365 = R 452 :: r1364 in + let r1366 = Sub (r1254) :: r1365 in + let r1367 = Sub (r409) :: r1366 in + let r1368 = [R 300] in + let r1369 = S (T T_RBRACKET) :: r1368 in + let r1370 = Sub (r17) :: r1369 in + let r1371 = [R 709] in + let r1372 = [R 710] in + let r1373 = [R 158] in + let r1374 = S (T T_RBRACKET) :: r1373 in + let r1375 = Sub (r19) :: r1374 in + let r1376 = [R 311] in + let r1377 = Sub (r78) :: r1376 in + let r1378 = S (T T_EQUAL) :: r1377 in + let r1379 = [R 577] in + let r1380 = S (T T_STRING) :: r1379 in + let r1381 = [R 716] in + let r1382 = R 452 :: r1381 in + let r1383 = Sub (r1380) :: r1382 in + let r1384 = S (T T_EQUAL) :: r1383 in + let r1385 = R 658 :: r1384 in + let r1386 = Sub (r36) :: r1385 in + let r1387 = S (T T_COLON) :: r1386 in + let r1388 = Sub (r24) :: r1387 in + let r1389 = R 446 :: r1388 in + let r1390 = [R 712] in + let r1391 = Sub (r34) :: r1390 in + let r1392 = Sub (r125) :: r570 in + let r1393 = [R 1033] in + let r1394 = R 452 :: r1393 in let r1395 = R 446 :: r1394 in - let r1396 = [R 856] in - let r1397 = R 452 :: r1396 in - let r1398 = R 446 :: r1397 in - let r1399 = R 280 :: r1398 in - let r1400 = Sub (r135) :: r1399 in - let r1401 = R 446 :: r1400 in - let r1402 = R 151 :: r1401 in - let r1403 = S (T T_COLONCOLON) :: r588 in - let r1404 = [R 707] in - let r1405 = [R 455] in - let r1406 = [R 597] in - let r1407 = R 452 :: r1406 in - let r1408 = Sub (r256) :: r1407 in - let r1409 = R 446 :: r1408 in - let r1410 = [R 598] in - let r1411 = R 452 :: r1410 in - let r1412 = Sub (r256) :: r1411 in - let r1413 = R 446 :: r1412 in - let r1414 = [R 521] in - let r1415 = S (N N_module_type) :: r1414 in - let r1416 = S (T T_COLON) :: r1415 in - let r1417 = [R 867] in - let r1418 = R 452 :: r1417 in - let r1419 = Sub (r1416) :: r1418 in - let r1420 = Sub (r415) :: r1419 in - let r1421 = R 446 :: r1420 in - let r1422 = [R 547] in - let r1423 = R 452 :: r1422 in - let r1424 = S (N N_module_type) :: r1423 in - let r1425 = S (T T_COLONEQUAL) :: r1424 in - let r1426 = Sub (r60) :: r1425 in - let r1427 = R 446 :: r1426 in - let r1428 = [R 534] in - let r1429 = R 452 :: r1428 in - let r1430 = [R 870] in - let r1431 = R 444 :: r1430 in - let r1432 = R 452 :: r1431 in - let r1433 = S (N N_module_type) :: r1432 in - let r1434 = S (T T_COLON) :: r1433 in - let r1435 = [R 445] in - let r1436 = R 444 :: r1435 in - let r1437 = R 452 :: r1436 in - let r1438 = S (N N_module_type) :: r1437 in - let r1439 = S (T T_COLON) :: r1438 in - let r1440 = Sub (r415) :: r1439 in - let r1441 = S (T T_UIDENT) :: r194 in - let r1442 = Sub (r1441) :: r473 in - let r1443 = [R 868] in - let r1444 = R 452 :: r1443 in - let r1445 = [R 522] in - let r1446 = S (T T_QUOTED_STRING_EXPR) :: r58 in - let r1447 = [R 80] in - let r1448 = Sub (r1446) :: r1447 in - let r1449 = [R 90] in - let r1450 = Sub (r1448) :: r1449 in - let r1451 = [R 874] in - let r1452 = R 438 :: r1451 in - let r1453 = R 452 :: r1452 in - let r1454 = Sub (r1450) :: r1453 in - let r1455 = S (T T_COLON) :: r1454 in - let r1456 = S (T T_LIDENT) :: r1455 in - let r1457 = R 159 :: r1456 in - let r1458 = R 1262 :: r1457 in - let r1459 = R 446 :: r1458 in - let r1460 = [R 94] in - let r1461 = R 440 :: r1460 in - let r1462 = R 452 :: r1461 in - let r1463 = Sub (r1448) :: r1462 in - let r1464 = S (T T_EQUAL) :: r1463 in - let r1465 = S (T T_LIDENT) :: r1464 in - let r1466 = R 159 :: r1465 in - let r1467 = R 1262 :: r1466 in - let r1468 = R 446 :: r1467 in - let r1469 = [R 815] in - let r1470 = Sub (r166) :: r1469 in - let r1471 = [R 160] in - let r1472 = S (T T_RBRACKET) :: r1471 in - let r1473 = [R 816] in - let r1474 = [R 81] in - let r1475 = S (T T_END) :: r1474 in - let r1476 = R 461 :: r1475 in - let r1477 = R 71 :: r1476 in - let r1478 = [R 70] in - let r1479 = S (T T_RPAREN) :: r1478 in - let r1480 = [R 73] in - let r1481 = R 452 :: r1480 in - let r1482 = Sub (r34) :: r1481 in - let r1483 = S (T T_COLON) :: r1482 in - let r1484 = S (T T_LIDENT) :: r1483 in - let r1485 = R 554 :: r1484 in - let r1486 = [R 74] in - let r1487 = R 452 :: r1486 in - let r1488 = Sub (r36) :: r1487 in - let r1489 = S (T T_COLON) :: r1488 in - let r1490 = S (T T_LIDENT) :: r1489 in - let r1491 = R 719 :: r1490 in - let r1492 = [R 72] in - let r1493 = R 452 :: r1492 in - let r1494 = Sub (r1448) :: r1493 in - let r1495 = [R 83] in - let r1496 = Sub (r1448) :: r1495 in - let r1497 = S (T T_IN) :: r1496 in - let r1498 = Sub (r1442) :: r1497 in - let r1499 = R 446 :: r1498 in - let r1500 = [R 84] in - let r1501 = Sub (r1448) :: r1500 in - let r1502 = S (T T_IN) :: r1501 in - let r1503 = Sub (r1442) :: r1502 in - let r1504 = [R 811] in - let r1505 = Sub (r34) :: r1504 in - let r1506 = [R 79] in - let r1507 = Sub (r249) :: r1506 in - let r1508 = S (T T_RBRACKET) :: r1507 in - let r1509 = Sub (r1505) :: r1508 in - let r1510 = [R 812] in - let r1511 = [R 125] in - let r1512 = Sub (r34) :: r1511 in - let r1513 = S (T T_EQUAL) :: r1512 in - let r1514 = Sub (r34) :: r1513 in - let r1515 = [R 75] in - let r1516 = R 452 :: r1515 in - let r1517 = Sub (r1514) :: r1516 in - let r1518 = [R 76] in - let r1519 = [R 462] in - let r1520 = [R 441] in - let r1521 = R 440 :: r1520 in - let r1522 = R 452 :: r1521 in - let r1523 = Sub (r1448) :: r1522 in - let r1524 = S (T T_EQUAL) :: r1523 in - let r1525 = S (T T_LIDENT) :: r1524 in - let r1526 = R 159 :: r1525 in - let r1527 = R 1262 :: r1526 in - let r1528 = [R 92] in - let r1529 = Sub (r1450) :: r1528 in - let r1530 = S (T T_MINUSGREATER) :: r1529 in - let r1531 = Sub (r28) :: r1530 in - let r1532 = [R 93] in - let r1533 = Sub (r1450) :: r1532 in - let r1534 = [R 91] in - let r1535 = Sub (r1450) :: r1534 in - let r1536 = S (T T_MINUSGREATER) :: r1535 in - let r1537 = [R 439] in - let r1538 = R 438 :: r1537 in - let r1539 = R 452 :: r1538 in - let r1540 = Sub (r1450) :: r1539 in - let r1541 = S (T T_COLON) :: r1540 in - let r1542 = S (T T_LIDENT) :: r1541 in - let r1543 = R 159 :: r1542 in - let r1544 = R 1262 :: r1543 in - let r1545 = [R 456] in - let r1546 = [R 858] in - let r1547 = [R 876] in - let r1548 = R 658 :: r1547 in - let r1549 = R 452 :: r1548 in - let r1550 = S (N N_module_type) :: r1549 in - let r1551 = R 446 :: r1550 in - let r1552 = [R 862] in - let r1553 = [R 449] in - let r1554 = R 448 :: r1553 in - let r1555 = R 452 :: r1554 in - let r1556 = R 784 :: r1555 in - let r1557 = R 1223 :: r1556 in - let r1558 = R 639 :: r1557 in - let r1559 = S (T T_LIDENT) :: r1558 in - let r1560 = R 1228 :: r1559 in - let r1561 = [R 863] in - let r1562 = [R 451] in - let r1563 = R 450 :: r1562 in - let r1564 = R 452 :: r1563 in - let r1565 = R 784 :: r1564 in - let r1566 = Sub (r182) :: r1565 in - let r1567 = S (T T_COLONEQUAL) :: r1566 in - let r1568 = R 639 :: r1567 in - let r1569 = S (T T_LIDENT) :: r1568 in - let r1570 = R 1228 :: r1569 in - let r1571 = [R 589] in - let r1572 = S (T T_RBRACE) :: r1571 in - let r1573 = [R 286] in - let r1574 = R 446 :: r1573 in - let r1575 = R 280 :: r1574 in - let r1576 = Sub (r135) :: r1575 in - let r1577 = [R 587] in - let r1578 = [R 588] in - let r1579 = [R 592] in - let r1580 = S (T T_RBRACE) :: r1579 in - let r1581 = [R 591] in - let r1582 = S (T T_RBRACE) :: r1581 in - let r1583 = [R 52] in - let r1584 = Sub (r1446) :: r1583 in - let r1585 = [R 61] in - let r1586 = Sub (r1584) :: r1585 in - let r1587 = S (T T_EQUAL) :: r1586 in - let r1588 = [R 1192] in - let r1589 = R 436 :: r1588 in - let r1590 = R 452 :: r1589 in - let r1591 = Sub (r1587) :: r1590 in - let r1592 = S (T T_LIDENT) :: r1591 in - let r1593 = R 159 :: r1592 in - let r1594 = R 1262 :: r1593 in - let r1595 = R 446 :: r1594 in - let r1596 = [R 89] in - let r1597 = S (T T_END) :: r1596 in - let r1598 = R 463 :: r1597 in - let r1599 = R 69 :: r1598 in - let r1600 = [R 1253] in - let r1601 = Sub (r3) :: r1600 in - let r1602 = S (T T_EQUAL) :: r1601 in - let r1603 = S (T T_LIDENT) :: r1602 in - let r1604 = R 549 :: r1603 in - let r1605 = R 446 :: r1604 in - let r1606 = [R 55] in - let r1607 = R 452 :: r1606 in - let r1608 = [R 1254] in - let r1609 = Sub (r3) :: r1608 in - let r1610 = S (T T_EQUAL) :: r1609 in - let r1611 = S (T T_LIDENT) :: r1610 in - let r1612 = R 549 :: r1611 in - let r1613 = [R 1256] in - let r1614 = Sub (r3) :: r1613 in - let r1615 = [R 1252] in - let r1616 = Sub (r34) :: r1615 in - let r1617 = S (T T_COLON) :: r1616 in - let r1618 = [R 1255] in - let r1619 = Sub (r3) :: r1618 in - let r1620 = [R 487] in - let r1621 = Sub (r1017) :: r1620 in - let r1622 = S (T T_LIDENT) :: r1621 in - let r1623 = R 717 :: r1622 in - let r1624 = R 446 :: r1623 in - let r1625 = [R 56] in - let r1626 = R 452 :: r1625 in - let r1627 = [R 488] in - let r1628 = Sub (r1017) :: r1627 in - let r1629 = S (T T_LIDENT) :: r1628 in - let r1630 = R 717 :: r1629 in - let r1631 = [R 490] in - let r1632 = Sub (r3) :: r1631 in - let r1633 = S (T T_EQUAL) :: r1632 in - let r1634 = [R 492] in - let r1635 = Sub (r3) :: r1634 in - let r1636 = S (T T_EQUAL) :: r1635 in - let r1637 = Sub (r34) :: r1636 in - let r1638 = S (T T_DOT) :: r1637 in - let r1639 = [R 486] in - let r1640 = Sub (r36) :: r1639 in - let r1641 = S (T T_COLON) :: r1640 in - let r1642 = [R 489] in - let r1643 = Sub (r3) :: r1642 in - let r1644 = S (T T_EQUAL) :: r1643 in - let r1645 = [R 491] in - let r1646 = Sub (r3) :: r1645 in - let r1647 = S (T T_EQUAL) :: r1646 in - let r1648 = Sub (r34) :: r1647 in - let r1649 = S (T T_DOT) :: r1648 in - let r1650 = [R 58] in - let r1651 = R 452 :: r1650 in - let r1652 = Sub (r3) :: r1651 in - let r1653 = [R 53] in - let r1654 = R 452 :: r1653 in - let r1655 = R 641 :: r1654 in - let r1656 = Sub (r1584) :: r1655 in - let r1657 = [R 54] in - let r1658 = R 452 :: r1657 in - let r1659 = R 641 :: r1658 in - let r1660 = Sub (r1584) :: r1659 in - let r1661 = [R 85] in + let r1396 = Sub (r1392) :: r1395 in + let r1397 = S (T T_EQUAL) :: r1396 in + let r1398 = Sub (r127) :: r1397 in + let r1399 = R 446 :: r1398 in + let r1400 = [R 856] in + let r1401 = R 452 :: r1400 in + let r1402 = R 446 :: r1401 in + let r1403 = R 280 :: r1402 in + let r1404 = Sub (r127) :: r1403 in + let r1405 = R 446 :: r1404 in + let r1406 = R 151 :: r1405 in + let r1407 = S (T T_COLONCOLON) :: r590 in + let r1408 = [R 707] in + let r1409 = S (T T_QUOTED_STRING_EXPR) :: r58 in + let r1410 = [R 52] in + let r1411 = Sub (r1409) :: r1410 in + let r1412 = [R 61] in + let r1413 = Sub (r1411) :: r1412 in + let r1414 = S (T T_EQUAL) :: r1413 in + let r1415 = [R 1193] in + let r1416 = R 436 :: r1415 in + let r1417 = R 452 :: r1416 in + let r1418 = Sub (r1414) :: r1417 in + let r1419 = S (T T_LIDENT) :: r1418 in + let r1420 = R 159 :: r1419 in + let r1421 = R 1262 :: r1420 in + let r1422 = R 446 :: r1421 in + let r1423 = [R 80] in + let r1424 = Sub (r1409) :: r1423 in + let r1425 = [R 94] in + let r1426 = R 440 :: r1425 in + let r1427 = R 452 :: r1426 in + let r1428 = Sub (r1424) :: r1427 in + let r1429 = S (T T_EQUAL) :: r1428 in + let r1430 = S (T T_LIDENT) :: r1429 in + let r1431 = R 159 :: r1430 in + let r1432 = R 1262 :: r1431 in + let r1433 = R 446 :: r1432 in + let r1434 = [R 815] in + let r1435 = Sub (r151) :: r1434 in + let r1436 = [R 160] in + let r1437 = S (T T_RBRACKET) :: r1436 in + let r1438 = [R 816] in + let r1439 = [R 81] in + let r1440 = S (T T_END) :: r1439 in + let r1441 = R 461 :: r1440 in + let r1442 = R 71 :: r1441 in + let r1443 = [R 70] in + let r1444 = S (T T_RPAREN) :: r1443 in + let r1445 = [R 73] in + let r1446 = R 452 :: r1445 in + let r1447 = Sub (r34) :: r1446 in + let r1448 = S (T T_COLON) :: r1447 in + let r1449 = S (T T_LIDENT) :: r1448 in + let r1450 = R 554 :: r1449 in + let r1451 = [R 74] in + let r1452 = R 452 :: r1451 in + let r1453 = Sub (r36) :: r1452 in + let r1454 = S (T T_COLON) :: r1453 in + let r1455 = S (T T_LIDENT) :: r1454 in + let r1456 = R 719 :: r1455 in + let r1457 = [R 72] in + let r1458 = R 452 :: r1457 in + let r1459 = Sub (r1424) :: r1458 in + let r1460 = S (T T_UIDENT) :: r188 in + let r1461 = Sub (r1460) :: r477 in + let r1462 = [R 83] in + let r1463 = Sub (r1424) :: r1462 in + let r1464 = S (T T_IN) :: r1463 in + let r1465 = Sub (r1461) :: r1464 in + let r1466 = R 446 :: r1465 in + let r1467 = [R 84] in + let r1468 = Sub (r1424) :: r1467 in + let r1469 = S (T T_IN) :: r1468 in + let r1470 = Sub (r1461) :: r1469 in + let r1471 = [R 811] in + let r1472 = Sub (r34) :: r1471 in + let r1473 = [R 79] in + let r1474 = Sub (r243) :: r1473 in + let r1475 = S (T T_RBRACKET) :: r1474 in + let r1476 = Sub (r1472) :: r1475 in + let r1477 = [R 812] in + let r1478 = [R 125] in + let r1479 = Sub (r34) :: r1478 in + let r1480 = S (T T_EQUAL) :: r1479 in + let r1481 = Sub (r34) :: r1480 in + let r1482 = [R 75] in + let r1483 = R 452 :: r1482 in + let r1484 = Sub (r1481) :: r1483 in + let r1485 = [R 76] in + let r1486 = [R 462] in + let r1487 = [R 441] in + let r1488 = R 440 :: r1487 in + let r1489 = R 452 :: r1488 in + let r1490 = Sub (r1424) :: r1489 in + let r1491 = S (T T_EQUAL) :: r1490 in + let r1492 = S (T T_LIDENT) :: r1491 in + let r1493 = R 159 :: r1492 in + let r1494 = R 1262 :: r1493 in + let r1495 = [R 89] in + let r1496 = S (T T_END) :: r1495 in + let r1497 = R 463 :: r1496 in + let r1498 = R 69 :: r1497 in + let r1499 = [R 1253] in + let r1500 = Sub (r3) :: r1499 in + let r1501 = S (T T_EQUAL) :: r1500 in + let r1502 = S (T T_LIDENT) :: r1501 in + let r1503 = R 549 :: r1502 in + let r1504 = R 446 :: r1503 in + let r1505 = [R 55] in + let r1506 = R 452 :: r1505 in + let r1507 = [R 1254] in + let r1508 = Sub (r3) :: r1507 in + let r1509 = S (T T_EQUAL) :: r1508 in + let r1510 = S (T T_LIDENT) :: r1509 in + let r1511 = R 549 :: r1510 in + let r1512 = [R 1256] in + let r1513 = Sub (r3) :: r1512 in + let r1514 = [R 1252] in + let r1515 = Sub (r34) :: r1514 in + let r1516 = S (T T_COLON) :: r1515 in + let r1517 = [R 1255] in + let r1518 = Sub (r3) :: r1517 in + let r1519 = [R 487] in + let r1520 = Sub (r1019) :: r1519 in + let r1521 = S (T T_LIDENT) :: r1520 in + let r1522 = R 717 :: r1521 in + let r1523 = R 446 :: r1522 in + let r1524 = [R 56] in + let r1525 = R 452 :: r1524 in + let r1526 = [R 488] in + let r1527 = Sub (r1019) :: r1526 in + let r1528 = S (T T_LIDENT) :: r1527 in + let r1529 = R 717 :: r1528 in + let r1530 = [R 490] in + let r1531 = Sub (r3) :: r1530 in + let r1532 = S (T T_EQUAL) :: r1531 in + let r1533 = [R 492] in + let r1534 = Sub (r3) :: r1533 in + let r1535 = S (T T_EQUAL) :: r1534 in + let r1536 = Sub (r34) :: r1535 in + let r1537 = S (T T_DOT) :: r1536 in + let r1538 = [R 486] in + let r1539 = Sub (r36) :: r1538 in + let r1540 = S (T T_COLON) :: r1539 in + let r1541 = [R 489] in + let r1542 = Sub (r3) :: r1541 in + let r1543 = S (T T_EQUAL) :: r1542 in + let r1544 = [R 491] in + let r1545 = Sub (r3) :: r1544 in + let r1546 = S (T T_EQUAL) :: r1545 in + let r1547 = Sub (r34) :: r1546 in + let r1548 = S (T T_DOT) :: r1547 in + let r1549 = [R 58] in + let r1550 = R 452 :: r1549 in + let r1551 = Sub (r3) :: r1550 in + let r1552 = [R 53] in + let r1553 = R 452 :: r1552 in + let r1554 = R 641 :: r1553 in + let r1555 = Sub (r1411) :: r1554 in + let r1556 = [R 54] in + let r1557 = R 452 :: r1556 in + let r1558 = R 641 :: r1557 in + let r1559 = Sub (r1411) :: r1558 in + let r1560 = [R 85] in + let r1561 = S (T T_RPAREN) :: r1560 in + let r1562 = [R 48] in + let r1563 = Sub (r1411) :: r1562 in + let r1564 = S (T T_IN) :: r1563 in + let r1565 = Sub (r1461) :: r1564 in + let r1566 = R 446 :: r1565 in + let r1567 = [R 414] in + let r1568 = R 452 :: r1567 in + let r1569 = Sub (r646) :: r1568 in + let r1570 = R 724 :: r1569 in + let r1571 = R 446 :: r1570 in + let r1572 = [R 49] in + let r1573 = Sub (r1411) :: r1572 in + let r1574 = S (T T_IN) :: r1573 in + let r1575 = Sub (r1461) :: r1574 in + let r1576 = [R 87] in + let r1577 = Sub (r470) :: r1576 in + let r1578 = S (T T_RBRACKET) :: r1577 in + let r1579 = [R 64] in + let r1580 = Sub (r1411) :: r1579 in + let r1581 = S (T T_MINUSGREATER) :: r1580 in + let r1582 = Sub (r754) :: r1581 in + let r1583 = [R 46] in + let r1584 = Sub (r1582) :: r1583 in + let r1585 = [R 47] in + let r1586 = Sub (r1411) :: r1585 in + let r1587 = [R 413] in + let r1588 = R 452 :: r1587 in + let r1589 = Sub (r646) :: r1588 in + let r1590 = [R 90] in + let r1591 = Sub (r1424) :: r1590 in + let r1592 = [R 88] in + let r1593 = S (T T_RPAREN) :: r1592 in + let r1594 = [R 92] in + let r1595 = Sub (r1591) :: r1594 in + let r1596 = S (T T_MINUSGREATER) :: r1595 in + let r1597 = Sub (r28) :: r1596 in + let r1598 = [R 93] in + let r1599 = Sub (r1591) :: r1598 in + let r1600 = [R 91] in + let r1601 = Sub (r1591) :: r1600 in + let r1602 = S (T T_MINUSGREATER) :: r1601 in + let r1603 = [R 642] in + let r1604 = [R 57] in + let r1605 = R 452 :: r1604 in + let r1606 = Sub (r1481) :: r1605 in + let r1607 = [R 59] in + let r1608 = [R 464] in + let r1609 = [R 62] in + let r1610 = Sub (r1411) :: r1609 in + let r1611 = S (T T_EQUAL) :: r1610 in + let r1612 = [R 63] in + let r1613 = [R 437] in + let r1614 = R 436 :: r1613 in + let r1615 = R 452 :: r1614 in + let r1616 = Sub (r1414) :: r1615 in + let r1617 = S (T T_LIDENT) :: r1616 in + let r1618 = R 159 :: r1617 in + let r1619 = R 1262 :: r1618 in + let r1620 = [R 460] in + let r1621 = [R 1180] in + let r1622 = [R 1195] in + let r1623 = R 452 :: r1622 in + let r1624 = S (N N_module_expr) :: r1623 in + let r1625 = R 446 :: r1624 in + let r1626 = [R 1185] in + let r1627 = [R 449] in + let r1628 = R 448 :: r1627 in + let r1629 = R 452 :: r1628 in + let r1630 = R 784 :: r1629 in + let r1631 = R 1223 :: r1630 in + let r1632 = R 639 :: r1631 in + let r1633 = S (T T_LIDENT) :: r1632 in + let r1634 = R 1228 :: r1633 in + let r1635 = [R 1178] in + let r1636 = R 457 :: r1635 in + let r1637 = [R 459] in + let r1638 = R 457 :: r1637 in + let r1639 = [R 286] in + let r1640 = R 446 :: r1639 in + let r1641 = R 280 :: r1640 in + let r1642 = Sub (r127) :: r1641 in + let r1643 = [R 155] in + let r1644 = R 446 :: r1643 in + let r1645 = [R 156] in + let r1646 = R 446 :: r1645 in + let r1647 = [R 367] in + let r1648 = [R 364] in + let r1649 = [R 365] in + let r1650 = S (T T_RPAREN) :: r1649 in + let r1651 = Sub (r34) :: r1650 in + let r1652 = S (T T_COLON) :: r1651 in + let r1653 = [R 363] in + let r1654 = [R 68] in + let r1655 = S (T T_RPAREN) :: r1654 in + let r1656 = [R 769] in + let r1657 = [R 768] in + let r1658 = Sub (r194) :: r1657 in + let r1659 = R 446 :: r1658 in + let r1660 = [R 765] in + let r1661 = [R 766] in let r1662 = S (T T_RPAREN) :: r1661 in - let r1663 = [R 48] in - let r1664 = Sub (r1584) :: r1663 in - let r1665 = S (T T_IN) :: r1664 in - let r1666 = Sub (r1442) :: r1665 in + let r1663 = Sub (r205) :: r1662 in + let r1664 = [R 764] in + let r1665 = [R 763] in + let r1666 = Sub (r194) :: r1665 in let r1667 = R 446 :: r1666 in - let r1668 = [R 414] in - let r1669 = R 452 :: r1668 in - let r1670 = Sub (r644) :: r1669 in - let r1671 = R 724 :: r1670 in - let r1672 = R 446 :: r1671 in - let r1673 = [R 49] in - let r1674 = Sub (r1584) :: r1673 in - let r1675 = S (T T_IN) :: r1674 in - let r1676 = Sub (r1442) :: r1675 in - let r1677 = [R 87] in - let r1678 = Sub (r466) :: r1677 in - let r1679 = S (T T_RBRACKET) :: r1678 in - let r1680 = [R 64] in - let r1681 = Sub (r1584) :: r1680 in - let r1682 = S (T T_MINUSGREATER) :: r1681 in - let r1683 = Sub (r752) :: r1682 in - let r1684 = [R 46] in - let r1685 = Sub (r1683) :: r1684 in - let r1686 = [R 47] in - let r1687 = Sub (r1584) :: r1686 in - let r1688 = [R 413] in - let r1689 = R 452 :: r1688 in - let r1690 = Sub (r644) :: r1689 in - let r1691 = [R 88] in - let r1692 = S (T T_RPAREN) :: r1691 in - let r1693 = [R 642] in - let r1694 = [R 57] in + let r1668 = [R 483] in + let r1669 = R 446 :: r1668 in + let r1670 = Sub (r1277) :: r1669 in + let r1671 = [R 481] in + let r1672 = [R 593] in + let r1673 = [R 1126] in + let r1674 = [R 1128] in + let r1675 = Sub (r28) :: r1674 in + let r1676 = [R 1130] in + let r1677 = [R 590] in + let r1678 = S (T T_RBRACE) :: r1677 in + let r1679 = [R 589] in + let r1680 = S (T T_RBRACE) :: r1679 in + let r1681 = [R 587] in + let r1682 = [R 588] in + let r1683 = [R 592] in + let r1684 = S (T T_RBRACE) :: r1683 in + let r1685 = [R 591] in + let r1686 = S (T T_RBRACE) :: r1685 in + let r1687 = [R 289] in + let r1688 = R 452 :: r1687 in + let r1689 = R 784 :: r1688 in + let r1690 = [R 288] in + let r1691 = R 452 :: r1690 in + let r1692 = R 784 :: r1691 in + let r1693 = [R 455] in + let r1694 = [R 597] in let r1695 = R 452 :: r1694 in - let r1696 = Sub (r1514) :: r1695 in - let r1697 = [R 59] in - let r1698 = [R 464] in - let r1699 = [R 62] in - let r1700 = Sub (r1584) :: r1699 in - let r1701 = S (T T_EQUAL) :: r1700 in - let r1702 = [R 63] in - let r1703 = [R 437] in - let r1704 = R 436 :: r1703 in - let r1705 = R 452 :: r1704 in - let r1706 = Sub (r1587) :: r1705 in - let r1707 = S (T T_LIDENT) :: r1706 in - let r1708 = R 159 :: r1707 in - let r1709 = R 1262 :: r1708 in - let r1710 = [R 460] in - let r1711 = [R 1180] in - let r1712 = [R 1194] in - let r1713 = R 452 :: r1712 in - let r1714 = S (N N_module_expr) :: r1713 in + let r1696 = Sub (r250) :: r1695 in + let r1697 = R 446 :: r1696 in + let r1698 = [R 598] in + let r1699 = R 452 :: r1698 in + let r1700 = Sub (r250) :: r1699 in + let r1701 = R 446 :: r1700 in + let r1702 = [R 521] in + let r1703 = S (N N_module_type) :: r1702 in + let r1704 = S (T T_COLON) :: r1703 in + let r1705 = [R 868] in + let r1706 = R 452 :: r1705 in + let r1707 = Sub (r1704) :: r1706 in + let r1708 = Sub (r409) :: r1707 in + let r1709 = R 446 :: r1708 in + let r1710 = [R 547] in + let r1711 = R 452 :: r1710 in + let r1712 = S (N N_module_type) :: r1711 in + let r1713 = S (T T_COLONEQUAL) :: r1712 in + let r1714 = Sub (r60) :: r1713 in let r1715 = R 446 :: r1714 in - let r1716 = [R 1184] in - let r1717 = [R 1178] in - let r1718 = R 457 :: r1717 in - let r1719 = [R 459] in - let r1720 = R 457 :: r1719 in - let r1721 = [R 155] in - let r1722 = R 446 :: r1721 in - let r1723 = [R 156] in - let r1724 = R 446 :: r1723 in - let r1725 = [R 367] in - let r1726 = [R 364] in - let r1727 = [R 365] in - let r1728 = S (T T_RPAREN) :: r1727 in - let r1729 = Sub (r34) :: r1728 in - let r1730 = S (T T_COLON) :: r1729 in - let r1731 = [R 363] in - let r1732 = [R 68] in - let r1733 = S (T T_RPAREN) :: r1732 in - let r1734 = [R 769] in - let r1735 = [R 768] in - let r1736 = Sub (r200) :: r1735 in - let r1737 = R 446 :: r1736 in - let r1738 = [R 765] in - let r1739 = [R 766] in - let r1740 = S (T T_RPAREN) :: r1739 in - let r1741 = Sub (r211) :: r1740 in - let r1742 = [R 764] in - let r1743 = [R 763] in - let r1744 = Sub (r200) :: r1743 in - let r1745 = R 446 :: r1744 in - let r1746 = [R 483] in - let r1747 = R 446 :: r1746 in - let r1748 = Sub (r1275) :: r1747 in - let r1749 = [R 481] in - let r1750 = [R 593] in - let r1751 = [R 1126] in - let r1752 = [R 1128] in - let r1753 = Sub (r28) :: r1752 in - let r1754 = [R 1130] in - let r1755 = [R 590] in - let r1756 = S (T T_RBRACE) :: r1755 in - let r1757 = [R 289] in - let r1758 = R 452 :: r1757 in - let r1759 = R 784 :: r1758 in - let r1760 = [R 288] in - let r1761 = R 452 :: r1760 in - let r1762 = R 784 :: r1761 in - let r1763 = [R 1092] in - let r1764 = Sub (r28) :: r1763 in - let r1765 = S (T T_MINUSGREATER) :: r1764 in - let r1766 = S (T T_RPAREN) :: r1765 in - let r1767 = Sub (r34) :: r1766 in - let r1768 = [R 1094] in - let r1769 = [R 1096] in - let r1770 = Sub (r28) :: r1769 in - let r1771 = [R 1098] in - let r1772 = [R 1100] in - let r1773 = Sub (r28) :: r1772 in - let r1774 = [R 1102] in - let r1775 = [R 1104] in - let r1776 = Sub (r28) :: r1775 in - let r1777 = [R 1106] in - let r1778 = [R 1116] in - let r1779 = Sub (r28) :: r1778 in - let r1780 = S (T T_MINUSGREATER) :: r1779 in - let r1781 = [R 1108] in - let r1782 = Sub (r28) :: r1781 in - let r1783 = S (T T_MINUSGREATER) :: r1782 in - let r1784 = S (T T_RPAREN) :: r1783 in - let r1785 = Sub (r34) :: r1784 in - let r1786 = [R 1110] in - let r1787 = [R 1112] in - let r1788 = Sub (r28) :: r1787 in - let r1789 = [R 1114] in - let r1790 = [R 1118] in - let r1791 = [R 1120] in + let r1716 = [R 534] in + let r1717 = R 452 :: r1716 in + let r1718 = [R 871] in + let r1719 = R 444 :: r1718 in + let r1720 = R 452 :: r1719 in + let r1721 = S (N N_module_type) :: r1720 in + let r1722 = S (T T_COLON) :: r1721 in + let r1723 = [R 445] in + let r1724 = R 444 :: r1723 in + let r1725 = R 452 :: r1724 in + let r1726 = S (N N_module_type) :: r1725 in + let r1727 = S (T T_COLON) :: r1726 in + let r1728 = Sub (r409) :: r1727 in + let r1729 = [R 869] in + let r1730 = R 452 :: r1729 in + let r1731 = [R 522] in + let r1732 = [R 875] in + let r1733 = R 438 :: r1732 in + let r1734 = R 452 :: r1733 in + let r1735 = Sub (r1591) :: r1734 in + let r1736 = S (T T_COLON) :: r1735 in + let r1737 = S (T T_LIDENT) :: r1736 in + let r1738 = R 159 :: r1737 in + let r1739 = R 1262 :: r1738 in + let r1740 = R 446 :: r1739 in + let r1741 = [R 439] in + let r1742 = R 438 :: r1741 in + let r1743 = R 452 :: r1742 in + let r1744 = Sub (r1591) :: r1743 in + let r1745 = S (T T_COLON) :: r1744 in + let r1746 = S (T T_LIDENT) :: r1745 in + let r1747 = R 159 :: r1746 in + let r1748 = R 1262 :: r1747 in + let r1749 = [R 456] in + let r1750 = [R 858] in + let r1751 = [R 877] in + let r1752 = R 658 :: r1751 in + let r1753 = R 452 :: r1752 in + let r1754 = S (N N_module_type) :: r1753 in + let r1755 = R 446 :: r1754 in + let r1756 = [R 863] in + let r1757 = [R 864] in + let r1758 = [R 451] in + let r1759 = R 450 :: r1758 in + let r1760 = R 452 :: r1759 in + let r1761 = R 784 :: r1760 in + let r1762 = Sub (r176) :: r1761 in + let r1763 = S (T T_COLONEQUAL) :: r1762 in + let r1764 = R 639 :: r1763 in + let r1765 = S (T T_LIDENT) :: r1764 in + let r1766 = R 1228 :: r1765 in + let r1767 = [R 1092] in + let r1768 = Sub (r28) :: r1767 in + let r1769 = S (T T_MINUSGREATER) :: r1768 in + let r1770 = S (T T_RPAREN) :: r1769 in + let r1771 = Sub (r34) :: r1770 in + let r1772 = [R 1094] in + let r1773 = [R 1096] in + let r1774 = Sub (r28) :: r1773 in + let r1775 = [R 1098] in + let r1776 = [R 1100] in + let r1777 = Sub (r28) :: r1776 in + let r1778 = [R 1102] in + let r1779 = [R 1104] in + let r1780 = Sub (r28) :: r1779 in + let r1781 = [R 1106] in + let r1782 = [R 1116] in + let r1783 = Sub (r28) :: r1782 in + let r1784 = S (T T_MINUSGREATER) :: r1783 in + let r1785 = [R 1108] in + let r1786 = Sub (r28) :: r1785 in + let r1787 = S (T T_MINUSGREATER) :: r1786 in + let r1788 = S (T T_RPAREN) :: r1787 in + let r1789 = Sub (r34) :: r1788 in + let r1790 = [R 1110] in + let r1791 = [R 1112] in let r1792 = Sub (r28) :: r1791 in - let r1793 = [R 1122] in - let r1794 = [R 1168] in - let r1795 = Sub (r28) :: r1794 in - let r1796 = S (T T_MINUSGREATER) :: r1795 in - let r1797 = [R 1170] in - let r1798 = [R 1172] in + let r1793 = [R 1114] in + let r1794 = [R 1118] in + let r1795 = [R 1120] in + let r1796 = Sub (r28) :: r1795 in + let r1797 = [R 1122] in + let r1798 = [R 1168] in let r1799 = Sub (r28) :: r1798 in - let r1800 = [R 1174] in - let r1801 = [R 1160] in - let r1802 = [R 1162] in - let r1803 = [R 1164] in - let r1804 = Sub (r28) :: r1803 in - let r1805 = [R 1166] in - let r1806 = [R 302] in - let r1807 = [R 728] in - let r1808 = [R 832] in - let r1809 = Sub (r78) :: r1808 in - let r1810 = S (T T_COLON) :: r1809 in - let r1811 = [R 836] in - let r1812 = Sub (r78) :: r1811 in - let r1813 = S (T T_COLON) :: r1812 in - let r1814 = [R 835] in - let r1815 = Sub (r78) :: r1814 in - let r1816 = S (T T_COLON) :: r1815 in - let r1817 = [R 294] in - let r1818 = [R 299] in - let r1819 = [R 498] in - let r1820 = [R 501] in - let r1821 = S (T T_RPAREN) :: r1820 in - let r1822 = S (T T_COLONCOLON) :: r1821 in - let r1823 = S (T T_LPAREN) :: r1822 in - let r1824 = [R 675] in - let r1825 = [R 676] in - let r1826 = [R 677] in - let r1827 = [R 678] in - let r1828 = [R 679] in - let r1829 = [R 680] in - let r1830 = [R 681] in - let r1831 = [R 682] in - let r1832 = [R 683] in - let r1833 = [R 684] in - let r1834 = [R 685] in - let r1835 = [R 1207] in - let r1836 = [R 1200] in - let r1837 = [R 1216] in - let r1838 = [R 466] in - let r1839 = [R 1214] in - let r1840 = S (T T_SEMISEMI) :: r1839 in - let r1841 = [R 1215] in - let r1842 = [R 468] in - let r1843 = [R 471] in - let r1844 = [R 470] in - let r1845 = [R 469] in - let r1846 = R 467 :: r1845 in - let r1847 = [R 1247] in - let r1848 = S (T T_EOF) :: r1847 in - let r1849 = R 467 :: r1848 in - let r1850 = [R 1246] in + let r1800 = S (T T_MINUSGREATER) :: r1799 in + let r1801 = [R 1170] in + let r1802 = [R 1172] in + let r1803 = Sub (r28) :: r1802 in + let r1804 = [R 1174] in + let r1805 = [R 1160] in + let r1806 = [R 1162] in + let r1807 = [R 1164] in + let r1808 = Sub (r28) :: r1807 in + let r1809 = [R 1166] in + let r1810 = [R 836] in + let r1811 = Sub (r78) :: r1810 in + let r1812 = S (T T_COLON) :: r1811 in + let r1813 = [R 835] in + let r1814 = Sub (r78) :: r1813 in + let r1815 = S (T T_COLON) :: r1814 in + let r1816 = [R 294] in + let r1817 = [R 299] in + let r1818 = [R 498] in + let r1819 = [R 501] in + let r1820 = S (T T_RPAREN) :: r1819 in + let r1821 = S (T T_COLONCOLON) :: r1820 in + let r1822 = S (T T_LPAREN) :: r1821 in + let r1823 = [R 675] in + let r1824 = [R 676] in + let r1825 = [R 677] in + let r1826 = [R 678] in + let r1827 = [R 679] in + let r1828 = [R 680] in + let r1829 = [R 681] in + let r1830 = [R 682] in + let r1831 = [R 683] in + let r1832 = [R 684] in + let r1833 = [R 685] in + let r1834 = [R 1207] in + let r1835 = [R 1200] in + let r1836 = [R 1216] in + let r1837 = [R 466] in + let r1838 = [R 1214] in + let r1839 = S (T T_SEMISEMI) :: r1838 in + let r1840 = [R 1215] in + let r1841 = [R 468] in + let r1842 = [R 471] in + let r1843 = [R 470] in + let r1844 = [R 469] in + let r1845 = R 467 :: r1844 in + let r1846 = [R 1247] in + let r1847 = S (T T_EOF) :: r1846 in + let r1848 = R 467 :: r1847 in + let r1849 = [R 1246] in function - | 0 | 2869 | 2873 | 2891 | 2895 | 2899 | 2903 | 2907 | 2911 | 2915 | 2919 | 2923 | 2927 | 2933 | 2961 -> Nothing - | 2868 -> One ([R 0]) - | 2872 -> One ([R 1]) - | 2878 -> One ([R 2]) - | 2892 -> One ([R 3]) - | 2896 -> One ([R 4]) - | 2902 -> One ([R 5]) - | 2904 -> One ([R 6]) - | 2908 -> One ([R 7]) - | 2912 -> One ([R 8]) - | 2916 -> One ([R 9]) - | 2920 -> One ([R 10]) - | 2926 -> One ([R 11]) - | 2930 -> One ([R 12]) - | 2951 -> One ([R 13]) - | 2971 -> One ([R 14]) - | 592 -> One ([R 15]) - | 591 -> One ([R 16]) - | 2886 -> One ([R 22]) - | 2888 -> One ([R 23]) - | 313 -> One ([R 26]) - | 257 -> One ([R 27]) - | 344 -> One ([R 28]) - | 254 -> One ([R 30]) - | 343 -> One ([R 31]) - | 281 -> One ([R 32]) - | 2463 -> One ([R 45]) - | 2467 -> One ([R 50]) - | 2464 -> One ([R 51]) - | 2503 -> One ([R 60]) - | 2470 -> One ([R 65]) - | 2220 -> One ([R 77]) - | 2200 -> One ([R 78]) - | 2202 -> One ([R 82]) - | 2465 -> One ([R 86]) - | 1097 -> One ([R 112]) - | 1100 -> One ([R 113]) - | 210 -> One ([R 117]) - | 209 | 1870 -> One ([R 118]) - | 2079 -> One ([R 121]) - | 2314 -> One ([R 131]) - | 2318 -> One ([R 132]) - | 361 -> One ([R 134]) - | 258 -> One ([R 135]) - | 310 -> One ([R 136]) - | 312 -> One ([R 137]) - | 1600 -> One ([R 149]) + | 0 | 2871 | 2875 | 2893 | 2897 | 2901 | 2905 | 2909 | 2913 | 2917 | 2921 | 2925 | 2929 | 2935 | 2963 -> Nothing + | 2870 -> One ([R 0]) + | 2874 -> One ([R 1]) + | 2880 -> One ([R 2]) + | 2894 -> One ([R 3]) + | 2898 -> One ([R 4]) + | 2904 -> One ([R 5]) + | 2906 -> One ([R 6]) + | 2910 -> One ([R 7]) + | 2914 -> One ([R 8]) + | 2918 -> One ([R 9]) + | 2922 -> One ([R 10]) + | 2928 -> One ([R 11]) + | 2932 -> One ([R 12]) + | 2953 -> One ([R 13]) + | 2973 -> One ([R 14]) + | 600 -> One ([R 15]) + | 599 -> One ([R 16]) + | 2888 -> One ([R 22]) + | 2890 -> One ([R 23]) + | 321 -> One ([R 26]) + | 265 -> One ([R 27]) + | 352 -> One ([R 28]) + | 262 -> One ([R 30]) + | 351 -> One ([R 31]) + | 289 -> One ([R 32]) + | 2307 -> One ([R 45]) + | 2311 -> One ([R 50]) + | 2308 -> One ([R 51]) + | 2366 -> One ([R 60]) + | 2314 -> One ([R 65]) + | 2181 -> One ([R 77]) + | 2161 -> One ([R 78]) + | 2163 -> One ([R 82]) + | 2309 -> One ([R 86]) + | 1103 -> One ([R 112]) + | 1106 -> One ([R 113]) + | 218 -> One ([R 117]) + | 217 | 1876 -> One ([R 118]) + | 2090 -> One ([R 121]) + | 2569 -> One ([R 131]) + | 2571 -> One ([R 132]) + | 369 -> One ([R 134]) + | 266 -> One ([R 135]) + | 318 -> One ([R 136]) + | 320 -> One ([R 137]) + | 1606 -> One ([R 149]) | 1 -> One (R 151 :: r9) | 62 -> One (R 151 :: r43) - | 223 -> One (R 151 :: r205) - | 532 -> One (R 151 :: r391) - | 563 -> One (R 151 :: r419) - | 593 -> One (R 151 :: r452) - | 594 -> One (R 151 :: r456) - | 601 -> One (R 151 :: r469) - | 614 -> One (R 151 :: r478) - | 651 -> One (R 151 :: r527) - | 697 -> One (R 151 :: r557) - | 865 -> One (R 151 :: r655) - | 960 -> One (R 151 :: r729) - | 966 -> One (R 151 :: r738) - | 969 -> One (R 151 :: r743) - | 972 -> One (R 151 :: r746) - | 978 -> One (R 151 :: r766) - | 1084 -> One (R 151 :: r827) - | 1109 -> One (R 151 :: r845) - | 1123 -> One (R 151 :: r860) - | 1129 -> One (R 151 :: r864) - | 1145 -> One (R 151 :: r878) - | 1181 -> One (R 151 :: r898) - | 1195 -> One (R 151 :: r905) - | 1201 -> One (R 151 :: r909) - | 1210 -> One (R 151 :: r913) - | 1221 -> One (R 151 :: r919) - | 1227 -> One (R 151 :: r923) - | 1233 -> One (R 151 :: r927) - | 1239 -> One (R 151 :: r931) - | 1245 -> One (R 151 :: r935) - | 1251 -> One (R 151 :: r939) - | 1257 -> One (R 151 :: r943) - | 1263 -> One (R 151 :: r947) - | 1269 -> One (R 151 :: r951) - | 1275 -> One (R 151 :: r955) - | 1281 -> One (R 151 :: r959) - | 1287 -> One (R 151 :: r963) - | 1293 -> One (R 151 :: r967) - | 1299 -> One (R 151 :: r971) - | 1305 -> One (R 151 :: r975) - | 1311 -> One (R 151 :: r979) - | 1317 -> One (R 151 :: r983) - | 1323 -> One (R 151 :: r987) - | 1329 -> One (R 151 :: r991) - | 1335 -> One (R 151 :: r995) - | 1341 -> One (R 151 :: r999) - | 1355 -> One (R 151 :: r1007) - | 1361 -> One (R 151 :: r1011) - | 1497 -> One (R 151 :: r1095) - | 1506 -> One (R 151 :: r1102) - | 1515 -> One (R 151 :: r1109) - | 1525 -> One (R 151 :: r1113) - | 1534 -> One (R 151 :: r1117) - | 1543 -> One (R 151 :: r1121) - | 1554 -> One (R 151 :: r1125) - | 1563 -> One (R 151 :: r1129) - | 1572 -> One (R 151 :: r1133) - | 1579 -> One (R 151 :: r1137) - | 1626 -> One (R 151 :: r1146) - | 1638 -> One (R 151 :: r1163) - | 1646 -> One (R 151 :: r1169) - | 1654 -> One (R 151 :: r1175) - | 1661 -> One (R 151 :: r1178) - | 1667 -> One (R 151 :: r1186) - | 1672 -> One (R 151 :: r1189) - | 1679 -> One (R 151 :: r1192) - | 1743 -> One (R 151 :: r1213) - | 1759 -> One (R 151 :: r1216) - | 1764 -> One (R 151 :: r1220) - | 1771 -> One (R 151 :: r1224) - | 1789 -> One (R 151 :: r1233) - | 1794 -> One (R 151 :: r1237) - | 1803 -> One (R 151 :: r1240) - | 1812 -> One (R 151 :: r1243) - | 1852 -> One (R 151 :: r1258) - | 1867 -> One (R 151 :: r1269) - | 1950 -> One (R 151 :: r1315) - | 1969 -> One (R 151 :: r1322) - | 1987 -> One (R 151 :: r1330) - | 2018 -> One (R 151 :: r1347) - | 2057 -> One (R 151 :: r1385) - | 2090 -> One (R 151 :: r1409) - | 2091 -> One (R 151 :: r1413) - | 2100 -> One (R 151 :: r1421) - | 2141 -> One (R 151 :: r1459) - | 2142 -> One (R 151 :: r1468) - | 2284 -> One (R 151 :: r1551) - | 2351 -> One (R 151 :: r1595) - | 2537 -> One (R 151 :: r1715) - | 2628 -> One (R 151 :: r1737) - | 2643 -> One (R 151 :: r1745) - | 311 -> One ([R 157]) - | 1150 -> One ([R 163]) - | 1585 -> One ([R 185]) - | 1167 -> One ([R 187]) - | 1208 -> One ([R 188]) - | 1188 -> One ([R 189]) - | 1206 -> One ([R 262]) - | 1215 -> One ([R 272]) - | 1219 -> One ([R 273]) - | 276 -> One ([R 276]) - | 879 -> One ([R 279]) + | 167 -> One (R 151 :: r141) + | 231 -> One (R 151 :: r199) + | 540 -> One (R 151 :: r385) + | 571 -> One (R 151 :: r413) + | 601 -> One (R 151 :: r456) + | 602 -> One (R 151 :: r460) + | 609 -> One (R 151 :: r473) + | 622 -> One (R 151 :: r482) + | 659 -> One (R 151 :: r531) + | 705 -> One (R 151 :: r561) + | 871 -> One (R 151 :: r657) + | 966 -> One (R 151 :: r731) + | 972 -> One (R 151 :: r740) + | 975 -> One (R 151 :: r745) + | 978 -> One (R 151 :: r748) + | 984 -> One (R 151 :: r768) + | 1090 -> One (R 151 :: r829) + | 1115 -> One (R 151 :: r847) + | 1129 -> One (R 151 :: r862) + | 1135 -> One (R 151 :: r866) + | 1151 -> One (R 151 :: r880) + | 1187 -> One (R 151 :: r900) + | 1201 -> One (R 151 :: r907) + | 1207 -> One (R 151 :: r911) + | 1216 -> One (R 151 :: r915) + | 1227 -> One (R 151 :: r921) + | 1233 -> One (R 151 :: r925) + | 1239 -> One (R 151 :: r929) + | 1245 -> One (R 151 :: r933) + | 1251 -> One (R 151 :: r937) + | 1257 -> One (R 151 :: r941) + | 1263 -> One (R 151 :: r945) + | 1269 -> One (R 151 :: r949) + | 1275 -> One (R 151 :: r953) + | 1281 -> One (R 151 :: r957) + | 1287 -> One (R 151 :: r961) + | 1293 -> One (R 151 :: r965) + | 1299 -> One (R 151 :: r969) + | 1305 -> One (R 151 :: r973) + | 1311 -> One (R 151 :: r977) + | 1317 -> One (R 151 :: r981) + | 1323 -> One (R 151 :: r985) + | 1329 -> One (R 151 :: r989) + | 1335 -> One (R 151 :: r993) + | 1341 -> One (R 151 :: r997) + | 1347 -> One (R 151 :: r1001) + | 1361 -> One (R 151 :: r1009) + | 1367 -> One (R 151 :: r1013) + | 1503 -> One (R 151 :: r1097) + | 1512 -> One (R 151 :: r1104) + | 1521 -> One (R 151 :: r1111) + | 1531 -> One (R 151 :: r1115) + | 1540 -> One (R 151 :: r1119) + | 1549 -> One (R 151 :: r1123) + | 1560 -> One (R 151 :: r1127) + | 1569 -> One (R 151 :: r1131) + | 1578 -> One (R 151 :: r1135) + | 1585 -> One (R 151 :: r1139) + | 1632 -> One (R 151 :: r1148) + | 1644 -> One (R 151 :: r1165) + | 1652 -> One (R 151 :: r1171) + | 1660 -> One (R 151 :: r1177) + | 1667 -> One (R 151 :: r1180) + | 1673 -> One (R 151 :: r1188) + | 1678 -> One (R 151 :: r1191) + | 1685 -> One (R 151 :: r1194) + | 1749 -> One (R 151 :: r1215) + | 1765 -> One (R 151 :: r1218) + | 1770 -> One (R 151 :: r1222) + | 1777 -> One (R 151 :: r1226) + | 1795 -> One (R 151 :: r1235) + | 1800 -> One (R 151 :: r1239) + | 1809 -> One (R 151 :: r1242) + | 1818 -> One (R 151 :: r1245) + | 1858 -> One (R 151 :: r1260) + | 1873 -> One (R 151 :: r1271) + | 1961 -> One (R 151 :: r1320) + | 1980 -> One (R 151 :: r1327) + | 1998 -> One (R 151 :: r1335) + | 2029 -> One (R 151 :: r1352) + | 2030 -> One (R 151 :: r1357) + | 2068 -> One (R 151 :: r1389) + | 2102 -> One (R 151 :: r1422) + | 2103 -> One (R 151 :: r1433) + | 2400 -> One (R 151 :: r1625) + | 2505 -> One (R 151 :: r1659) + | 2520 -> One (R 151 :: r1667) + | 2623 -> One (R 151 :: r1697) + | 2624 -> One (R 151 :: r1701) + | 2633 -> One (R 151 :: r1709) + | 2634 -> One (R 151 :: r1715) + | 2674 -> One (R 151 :: r1740) + | 2705 -> One (R 151 :: r1755) + | 319 -> One ([R 157]) + | 1156 -> One ([R 163]) + | 1591 -> One ([R 185]) + | 1173 -> One ([R 187]) + | 1214 -> One ([R 188]) + | 1194 -> One ([R 189]) + | 1212 -> One ([R 262]) + | 1221 -> One ([R 272]) + | 1225 -> One ([R 273]) + | 284 -> One ([R 276]) + | 885 -> One ([R 279]) | 124 -> One ([R 292]) - | 2055 -> One ([R 295]) - | 2056 -> One ([R 296]) + | 2066 -> One ([R 295]) + | 2067 -> One ([R 296]) | 93 -> One (R 297 :: r54) | 97 -> One (R 297 :: r56) - | 590 -> One ([R 301]) - | 146 -> One ([R 304]) - | 143 -> One ([R 307]) - | 1898 -> One ([R 315]) - | 1899 -> One ([R 316]) - | 851 -> One ([R 318]) - | 850 -> One ([R 320]) - | 848 -> One ([R 322]) - | 1584 -> One ([R 324]) - | 722 -> One ([R 350]) - | 749 -> One ([R 354]) - | 771 -> One ([R 358]) - | 2616 -> One ([R 362]) - | 2603 -> One ([R 366]) - | 810 -> One ([R 370]) - | 1436 -> One ([R 374]) - | 837 -> One ([R 378]) - | 823 -> One ([R 382]) - | 793 -> One ([R 386]) - | 1462 -> One ([R 390]) - | 1407 -> One ([R 392]) - | 1467 -> One ([R 412]) - | 2468 -> One ([R 415]) - | 999 -> One ([R 416]) - | 1007 -> One ([R 417]) - | 1006 -> One ([R 419]) - | 1004 -> One ([R 421]) - | 994 -> One ([R 426]) - | 1949 -> One ([R 430]) - | 163 -> One (R 446 :: r117) - | 184 -> One (R 446 :: r174) - | 576 -> One (R 446 :: r428) - | 598 -> One (R 446 :: r461) - | 868 -> One (R 446 :: r659) - | 877 -> One (R 446 :: r671) - | 1366 -> One (R 446 :: r1014) - | 2033 -> One (R 446 :: r1363) - | 2119 -> One (R 446 :: r1440) - | 2156 -> One (R 446 :: r1477) - | 2162 -> One (R 446 :: r1485) - | 2173 -> One (R 446 :: r1491) - | 2184 -> One (R 446 :: r1494) - | 2188 -> One (R 446 :: r1503) - | 2209 -> One (R 446 :: r1517) - | 2225 -> One (R 446 :: r1527) - | 2262 -> One (R 446 :: r1544) - | 2291 -> One (R 446 :: r1560) - | 2303 -> One (R 446 :: r1570) - | 2359 -> One (R 446 :: r1599) - | 2363 -> One (R 446 :: r1612) - | 2392 -> One (R 446 :: r1630) - | 2432 -> One (R 446 :: r1652) - | 2436 -> One (R 446 :: r1656) - | 2437 -> One (R 446 :: r1660) - | 2448 -> One (R 446 :: r1676) - | 2456 -> One (R 446 :: r1685) - | 2495 -> One (R 446 :: r1696) - | 2515 -> One (R 446 :: r1709) - | 2658 -> One (R 446 :: r1749) - | 2290 -> One (R 448 :: r1552) - | 2542 -> One (R 448 :: r1716) - | 2302 -> One (R 450 :: r1561) - | 1464 -> One (R 452 :: r1074) - | 2218 -> One (R 452 :: r1518) - | 2282 -> One (R 452 :: r1546) - | 2501 -> One (R 452 :: r1697) - | 2535 -> One (R 452 :: r1711) - | 2547 -> One (R 452 :: r1718) - | 2557 -> One (R 452 :: r1720) - | 2956 -> One (R 452 :: r1840) - | 2967 -> One (R 452 :: r1846) - | 2972 -> One (R 452 :: r1849) - | 2089 -> One (R 454 :: r1405) - | 2273 -> One (R 454 :: r1545) - | 589 -> One (R 457 :: r448) - | 2525 -> One (R 457 :: r1710) - | 2221 -> One (R 461 :: r1519) - | 2504 -> One (R 463 :: r1698) - | 2954 -> One (R 465 :: r1838) - | 2962 -> One (R 467 :: r1842) - | 2963 -> One (R 467 :: r1843) - | 2964 -> One (R 467 :: r1844) - | 778 -> One ([R 473]) - | 782 -> One ([R 475]) - | 1753 -> One ([R 478]) - | 2661 -> One ([R 479]) - | 2664 -> One ([R 480]) - | 2663 -> One ([R 482]) - | 2662 -> One ([R 484]) - | 2660 -> One ([R 485]) - | 2887 -> One ([R 497]) - | 2877 -> One ([R 499]) - | 2885 -> One ([R 500]) - | 2884 -> One ([R 502]) - | 256 -> One ([R 505]) - | 286 -> One ([R 506]) - | 1099 -> One ([R 513]) - | 1741 -> One ([R 514]) - | 937 -> One ([R 525]) - | 947 -> One ([R 526]) - | 948 -> One ([R 527]) - | 946 -> One ([R 528]) - | 949 -> One ([R 530]) - | 575 -> One ([R 531]) - | 567 | 2110 -> One ([R 532]) - | 906 -> One ([R 539]) - | 883 -> One ([R 540]) - | 925 -> One ([R 543]) - | 913 -> One ([R 544]) - | 2365 | 2378 -> One ([R 550]) - | 1878 -> One ([R 552]) - | 1879 -> One ([R 553]) - | 2166 -> One ([R 555]) - | 2164 -> One ([R 556]) - | 2167 -> One ([R 557]) - | 2165 -> One ([R 558]) - | 729 -> One ([R 564]) - | 1889 -> One ([R 566]) - | 267 -> One ([R 568]) + | 598 -> One ([R 301]) + | 147 -> One ([R 306]) + | 143 -> One ([R 309]) + | 1900 -> One ([R 315]) + | 1901 -> One ([R 316]) + | 857 -> One ([R 318]) + | 856 -> One ([R 320]) + | 854 -> One ([R 322]) + | 1590 -> One ([R 324]) + | 730 -> One ([R 350]) + | 755 -> One ([R 354]) + | 777 -> One ([R 358]) + | 2493 -> One ([R 362]) + | 2480 -> One ([R 366]) + | 816 -> One ([R 370]) + | 1442 -> One ([R 374]) + | 843 -> One ([R 378]) + | 829 -> One ([R 382]) + | 799 -> One ([R 386]) + | 1468 -> One ([R 390]) + | 1413 -> One ([R 392]) + | 1473 -> One ([R 412]) + | 2312 -> One ([R 415]) + | 1005 -> One ([R 416]) + | 1013 -> One ([R 417]) + | 1012 -> One ([R 419]) + | 1010 -> One ([R 421]) + | 1000 -> One ([R 426]) + | 1960 -> One ([R 430]) + | 158 -> One (R 446 :: r115) + | 192 -> One (R 446 :: r164) + | 584 -> One (R 446 :: r422) + | 606 -> One (R 446 :: r465) + | 874 -> One (R 446 :: r661) + | 883 -> One (R 446 :: r673) + | 1372 -> One (R 446 :: r1016) + | 2044 -> One (R 446 :: r1367) + | 2117 -> One (R 446 :: r1442) + | 2123 -> One (R 446 :: r1450) + | 2134 -> One (R 446 :: r1456) + | 2145 -> One (R 446 :: r1459) + | 2149 -> One (R 446 :: r1470) + | 2170 -> One (R 446 :: r1484) + | 2186 -> One (R 446 :: r1494) + | 2203 -> One (R 446 :: r1498) + | 2207 -> One (R 446 :: r1511) + | 2236 -> One (R 446 :: r1529) + | 2276 -> One (R 446 :: r1551) + | 2280 -> One (R 446 :: r1555) + | 2281 -> One (R 446 :: r1559) + | 2292 -> One (R 446 :: r1575) + | 2300 -> One (R 446 :: r1584) + | 2358 -> One (R 446 :: r1606) + | 2378 -> One (R 446 :: r1619) + | 2406 -> One (R 446 :: r1634) + | 2535 -> One (R 446 :: r1671) + | 2652 -> One (R 446 :: r1728) + | 2683 -> One (R 446 :: r1748) + | 2714 -> One (R 446 :: r1766) + | 2405 -> One (R 448 :: r1626) + | 2711 -> One (R 448 :: r1756) + | 2713 -> One (R 450 :: r1757) + | 1470 -> One (R 452 :: r1076) + | 2179 -> One (R 452 :: r1485) + | 2364 -> One (R 452 :: r1607) + | 2398 -> One (R 452 :: r1621) + | 2420 -> One (R 452 :: r1636) + | 2430 -> One (R 452 :: r1638) + | 2703 -> One (R 452 :: r1750) + | 2958 -> One (R 452 :: r1839) + | 2969 -> One (R 452 :: r1845) + | 2974 -> One (R 452 :: r1848) + | 2622 -> One (R 454 :: r1693) + | 2694 -> One (R 454 :: r1749) + | 597 -> One (R 457 :: r452) + | 2388 -> One (R 457 :: r1620) + | 2182 -> One (R 461 :: r1486) + | 2367 -> One (R 463 :: r1608) + | 2956 -> One (R 465 :: r1837) + | 2964 -> One (R 467 :: r1841) + | 2965 -> One (R 467 :: r1842) + | 2966 -> One (R 467 :: r1843) + | 784 -> One ([R 473]) + | 788 -> One ([R 475]) + | 1759 -> One ([R 478]) + | 2538 -> One ([R 479]) + | 2541 -> One ([R 480]) + | 2540 -> One ([R 482]) + | 2539 -> One ([R 484]) + | 2537 -> One ([R 485]) + | 2889 -> One ([R 497]) + | 2879 -> One ([R 499]) + | 2887 -> One ([R 500]) + | 2886 -> One ([R 502]) + | 264 -> One ([R 505]) + | 294 -> One ([R 506]) + | 1105 -> One ([R 513]) + | 1747 -> One ([R 514]) + | 943 -> One ([R 525]) + | 953 -> One ([R 526]) + | 954 -> One ([R 527]) + | 952 -> One ([R 528]) + | 955 -> One ([R 530]) + | 583 -> One ([R 531]) + | 575 | 2643 -> One ([R 532]) + | 912 -> One ([R 539]) + | 889 -> One ([R 540]) + | 931 -> One ([R 543]) + | 919 -> One ([R 544]) + | 2209 | 2222 -> One ([R 550]) + | 1884 -> One ([R 552]) + | 1885 -> One ([R 553]) + | 2127 -> One ([R 555]) + | 2125 -> One ([R 556]) + | 2128 -> One ([R 557]) + | 2126 -> One ([R 558]) + | 188 -> One ([R 564]) + | 162 -> One ([R 566]) + | 275 -> One ([R 568]) | 116 -> One ([R 569]) | 114 -> One ([R 570]) | 115 -> One ([R 571]) | 117 -> One ([R 572]) | 119 -> One ([R 573]) | 118 -> One ([R 574]) - | 1033 -> One ([R 576]) - | 2069 -> One ([R 578]) - | 2327 -> One ([R 579]) - | 2691 -> One ([R 580]) - | 2343 -> One ([R 581]) - | 2692 -> One ([R 582]) - | 2342 -> One ([R 583]) - | 2334 -> One ([R 584]) - | 67 | 618 -> One ([R 599]) - | 76 | 1118 -> One ([R 600]) + | 1039 -> One ([R 576]) + | 2080 -> One ([R 578]) + | 2584 -> One ([R 579]) + | 2576 -> One ([R 580]) + | 2597 -> One ([R 581]) + | 2577 -> One ([R 582]) + | 2596 -> One ([R 583]) + | 2591 -> One ([R 584]) + | 67 | 626 -> One ([R 599]) + | 76 | 1124 -> One ([R 600]) | 106 -> One ([R 601]) | 92 -> One ([R 603]) | 96 -> One ([R 605]) | 100 -> One ([R 607]) | 83 -> One ([R 608]) - | 103 | 1617 -> One ([R 609]) + | 103 | 1623 -> One ([R 609]) | 82 -> One ([R 610]) | 105 -> One ([R 611]) | 104 -> One ([R 612]) @@ -2716,11 +2725,11 @@ let recover = | 79 -> One ([R 615]) | 73 -> One ([R 616]) | 78 -> One ([R 617]) - | 70 | 562 | 1108 -> One ([R 618]) - | 69 | 1107 -> One ([R 619]) + | 70 | 570 | 1114 -> One ([R 618]) + | 69 | 1113 -> One ([R 619]) | 68 -> One ([R 620]) - | 75 | 733 | 1117 -> One ([R 621]) - | 74 | 1116 -> One ([R 622]) + | 75 | 739 | 1123 -> One ([R 621]) + | 74 | 1122 -> One ([R 622]) | 66 -> One ([R 623]) | 71 -> One ([R 624]) | 85 -> One ([R 625]) @@ -2730,98 +2739,98 @@ let recover = | 102 -> One ([R 629]) | 107 -> One ([R 630]) | 101 -> One ([R 632]) - | 491 -> One ([R 633]) - | 490 -> One (R 634 :: r370) - | 230 -> One (R 635 :: r224) - | 231 -> One ([R 636]) - | 779 -> One (R 637 :: r590) - | 780 -> One ([R 638]) - | 2300 -> One ([R 640]) - | 1375 -> One (R 656 :: r1022) - | 1376 -> One ([R 657]) + | 499 -> One ([R 633]) + | 498 -> One (R 634 :: r364) + | 238 -> One (R 635 :: r218) + | 239 -> One ([R 636]) + | 785 -> One (R 637 :: r592) + | 786 -> One ([R 638]) + | 2415 -> One ([R 640]) + | 1381 -> One (R 656 :: r1024) + | 1382 -> One ([R 657]) | 130 -> One ([R 660]) - | 704 -> One ([R 687]) - | 702 -> One ([R 688]) - | 701 -> One ([R 691]) - | 700 | 1119 -> One ([R 693]) - | 796 -> One ([R 699]) - | 797 -> One ([R 700]) - | 792 -> One ([R 703]) - | 1015 -> One ([R 704]) - | 2350 -> One ([R 708]) - | 2394 | 2413 -> One ([R 718]) - | 2177 -> One ([R 720]) - | 2175 -> One ([R 721]) - | 2178 -> One ([R 722]) - | 2176 -> One ([R 723]) - | 2477 -> One (R 724 :: r1690) - | 1938 -> One ([R 725]) - | 2325 -> One ([R 730]) - | 2326 -> One ([R 731]) - | 2320 -> One ([R 732]) - | 2578 -> One ([R 734]) - | 2577 -> One ([R 735]) - | 2579 -> One ([R 736]) - | 2574 -> One ([R 737]) - | 2575 -> One ([R 738]) - | 2705 -> One ([R 740]) - | 2703 -> One ([R 741]) - | 707 -> One ([R 772]) - | 798 -> One ([R 778]) - | 1078 -> One ([R 787]) - | 1690 -> One ([R 788]) - | 1689 -> One ([R 789]) - | 929 -> One ([R 790]) - | 880 -> One ([R 791]) - | 1587 -> One ([R 792]) - | 1586 -> One ([R 793]) - | 513 -> One ([R 795]) - | 924 -> One ([R 807]) - | 389 -> One ([R 825]) - | 386 -> One ([R 828]) - | 2839 -> One ([R 831]) - | 2853 -> One ([R 834]) - | 483 -> One ([R 837]) - | 1481 -> One ([R 840]) - | 1143 -> One ([R 842]) - | 1482 -> One ([R 843]) - | 1589 -> One ([R 844]) - | 1818 -> One ([R 846]) - | 1819 -> One ([R 847]) - | 767 -> One ([R 849]) - | 768 -> One ([R 850]) - | 1733 -> One ([R 852]) - | 1734 -> One ([R 853]) - | 2345 -> One ([R 859]) - | 2272 -> One ([R 860]) - | 2275 -> One ([R 861]) - | 2274 -> One ([R 866]) - | 2279 -> One ([R 869]) - | 2278 -> One ([R 871]) - | 2277 -> One ([R 872]) - | 2276 -> One ([R 873]) - | 2346 -> One ([R 875]) - | 2281 -> One ([R 877]) - | 672 -> One ([R 879]) - | 558 -> One ([R 880]) - | 559 -> One ([R 881]) - | 553 -> One ([R 882]) - | 554 -> One ([R 883]) - | 560 -> One ([R 886]) - | 555 -> One ([R 888]) - | 1098 -> One ([R 917]) - | 1179 | 1207 -> One ([R 918]) - | 1102 | 1187 -> One ([R 919]) - | 1489 | 1577 -> One ([R 924]) - | 1178 -> One ([R 930]) - | 1180 -> One ([R 954]) - | 670 | 1369 -> One ([R 961]) - | 685 -> One ([R 964]) - | 719 -> One ([R 969]) - | 692 -> One ([R 970]) - | 769 -> One ([R 973]) - | 718 -> One ([R 977]) - | 691 -> One ([R 979]) + | 712 -> One ([R 687]) + | 710 -> One ([R 688]) + | 709 -> One ([R 691]) + | 708 | 1125 -> One ([R 693]) + | 802 -> One ([R 699]) + | 803 -> One ([R 700]) + | 798 -> One ([R 703]) + | 1021 -> One ([R 704]) + | 2101 -> One ([R 708]) + | 2238 | 2257 -> One ([R 718]) + | 2138 -> One ([R 720]) + | 2136 -> One ([R 721]) + | 2139 -> One ([R 722]) + | 2137 -> One ([R 723]) + | 2321 -> One (R 724 :: r1589) + | 1949 -> One ([R 725]) + | 2574 -> One ([R 730]) + | 2575 -> One ([R 731]) + | 2573 -> One ([R 732]) + | 2453 -> One ([R 734]) + | 2452 -> One ([R 735]) + | 2454 -> One ([R 736]) + | 2449 -> One ([R 737]) + | 2450 -> One ([R 738]) + | 2609 -> One ([R 740]) + | 2607 -> One ([R 741]) + | 715 -> One ([R 772]) + | 804 -> One ([R 778]) + | 1084 -> One ([R 787]) + | 1696 -> One ([R 788]) + | 1695 -> One ([R 789]) + | 935 -> One ([R 790]) + | 886 -> One ([R 791]) + | 1593 -> One ([R 792]) + | 1592 -> One ([R 793]) + | 521 -> One ([R 795]) + | 930 -> One ([R 807]) + | 397 -> One ([R 825]) + | 394 -> One ([R 828]) + | 1931 -> One ([R 831]) + | 2855 -> One ([R 834]) + | 491 -> One ([R 837]) + | 1487 -> One ([R 840]) + | 1149 -> One ([R 842]) + | 1488 -> One ([R 843]) + | 1595 -> One ([R 844]) + | 1824 -> One ([R 846]) + | 1825 -> One ([R 847]) + | 773 -> One ([R 849]) + | 774 -> One ([R 850]) + | 1739 -> One ([R 852]) + | 1740 -> One ([R 853]) + | 2725 -> One ([R 859]) + | 2702 -> One ([R 860]) + | 2693 -> One ([R 861]) + | 2696 -> One ([R 862]) + | 2695 -> One ([R 867]) + | 2700 -> One ([R 870]) + | 2699 -> One ([R 872]) + | 2698 -> One ([R 873]) + | 2697 -> One ([R 874]) + | 2726 -> One ([R 876]) + | 680 -> One ([R 879]) + | 566 -> One ([R 880]) + | 567 -> One ([R 881]) + | 561 -> One ([R 882]) + | 562 -> One ([R 883]) + | 568 -> One ([R 886]) + | 563 -> One ([R 888]) + | 1104 -> One ([R 917]) + | 1185 | 1213 -> One ([R 918]) + | 1108 | 1193 -> One ([R 919]) + | 1495 | 1583 -> One ([R 924]) + | 1184 -> One ([R 930]) + | 1186 -> One ([R 954]) + | 678 | 1375 -> One ([R 961]) + | 693 -> One ([R 964]) + | 727 -> One ([R 969]) + | 700 -> One ([R 970]) + | 775 -> One ([R 973]) + | 726 -> One ([R 977]) + | 699 -> One ([R 979]) | 29 -> One ([R 980]) | 8 -> One ([R 981]) | 53 -> One ([R 983]) @@ -2873,643 +2882,644 @@ let recover = | 5 -> One ([R 1029]) | 4 -> One ([R 1030]) | 3 -> One ([R 1031]) - | 2528 -> One ([R 1032]) - | 397 -> One ([R 1036]) - | 405 -> One ([R 1037]) - | 413 -> One ([R 1038]) - | 421 -> One ([R 1039]) - | 434 -> One ([R 1040]) - | 442 -> One ([R 1041]) - | 450 -> One ([R 1042]) - | 458 -> One ([R 1043]) - | 2729 -> One ([R 1044]) - | 2737 -> One ([R 1045]) - | 2745 -> One ([R 1046]) - | 2753 -> One ([R 1047]) - | 2766 -> One ([R 1048]) - | 2774 -> One ([R 1049]) - | 2782 -> One ([R 1050]) - | 2790 -> One ([R 1051]) - | 2675 -> One ([R 1052]) - | 2683 -> One ([R 1053]) - | 465 -> One ([R 1054]) - | 273 -> One ([R 1055]) - | 319 -> One ([R 1056]) - | 357 -> One ([R 1057]) - | 325 -> One ([R 1058]) - | 332 -> One ([R 1059]) - | 396 -> One ([R 1061]) - | 400 -> One ([R 1063]) - | 404 -> One ([R 1065]) - | 408 -> One ([R 1067]) - | 412 -> One ([R 1069]) - | 416 -> One ([R 1071]) - | 420 -> One ([R 1073]) - | 424 -> One ([R 1075]) - | 433 -> One ([R 1077]) - | 437 -> One ([R 1079]) - | 441 -> One ([R 1081]) - | 445 -> One ([R 1083]) - | 449 -> One ([R 1085]) - | 453 -> One ([R 1087]) - | 457 -> One ([R 1089]) - | 461 -> One ([R 1091]) - | 2728 -> One ([R 1093]) - | 2732 -> One ([R 1095]) - | 2736 -> One ([R 1097]) - | 2740 -> One ([R 1099]) - | 2744 -> One ([R 1101]) - | 2748 -> One ([R 1103]) - | 2752 -> One ([R 1105]) - | 2756 -> One ([R 1107]) - | 2765 -> One ([R 1109]) - | 2769 -> One ([R 1111]) - | 2773 -> One ([R 1113]) - | 2777 -> One ([R 1115]) - | 2781 -> One ([R 1117]) - | 2785 -> One ([R 1119]) - | 2789 -> One ([R 1121]) - | 2793 -> One ([R 1123]) - | 2674 -> One ([R 1125]) - | 2678 -> One ([R 1127]) - | 2682 -> One ([R 1129]) - | 2686 -> One ([R 1131]) - | 269 -> One ([R 1133]) - | 468 -> One ([R 1135]) - | 272 -> One ([R 1137]) - | 464 -> One ([R 1139]) - | 318 -> One ([R 1141]) - | 352 -> One ([R 1143]) - | 356 -> One ([R 1145]) - | 360 -> One ([R 1147]) - | 324 -> One ([R 1149]) - | 328 -> One ([R 1151]) - | 331 -> One ([R 1153]) - | 335 -> One ([R 1155]) - | 2818 -> One ([R 1156]) - | 2826 -> One ([R 1157]) - | 2800 -> One ([R 1158]) - | 2808 -> One ([R 1159]) - | 2817 -> One ([R 1161]) - | 2821 -> One ([R 1163]) - | 2825 -> One ([R 1165]) - | 2829 -> One ([R 1167]) - | 2799 -> One ([R 1169]) - | 2803 -> One ([R 1171]) - | 2807 -> One ([R 1173]) - | 2811 -> One ([R 1175]) - | 2551 -> One ([R 1177]) - | 2533 | 2552 -> One ([R 1179]) - | 2544 -> One ([R 1181]) - | 2529 -> One ([R 1182]) - | 2524 -> One ([R 1183]) - | 2527 -> One ([R 1187]) - | 2531 -> One ([R 1190]) - | 2530 -> One ([R 1191]) - | 2545 -> One ([R 1193]) - | 2534 -> One ([R 1195]) - | 613 -> One ([R 1196]) - | 612 -> One ([R 1197]) - | 2945 -> One ([R 1201]) - | 2946 -> One ([R 1202]) - | 2948 -> One ([R 1203]) - | 2949 -> One ([R 1204]) - | 2947 -> One ([R 1205]) - | 2944 -> One ([R 1206]) - | 2937 -> One ([R 1208]) - | 2938 -> One ([R 1209]) - | 2940 -> One ([R 1210]) - | 2941 -> One ([R 1211]) - | 2939 -> One ([R 1212]) - | 2936 -> One ([R 1213]) - | 2950 -> One ([R 1217]) - | 886 -> One (R 1228 :: r676) - | 900 -> One ([R 1229]) - | 156 -> One ([R 1231]) - | 288 -> One ([R 1233]) - | 169 -> One ([R 1235]) - | 172 -> One ([R 1236]) - | 176 -> One ([R 1237]) - | 170 -> One ([R 1238]) - | 177 -> One ([R 1239]) - | 173 -> One ([R 1240]) - | 178 -> One ([R 1241]) - | 175 -> One ([R 1242]) - | 168 -> One ([R 1243]) - | 660 -> One ([R 1244]) - | 661 -> One ([R 1245]) - | 671 -> One ([R 1250]) - | 1177 -> One ([R 1251]) - | 668 -> One ([R 1258]) - | 529 -> One ([R 1259]) - | 666 -> One ([R 1260]) - | 2145 -> One ([R 1263]) - | 2376 -> One ([R 1264]) - | 2379 -> One ([R 1265]) - | 2377 -> One ([R 1266]) - | 2411 -> One ([R 1267]) - | 2414 -> One ([R 1268]) - | 2412 -> One ([R 1269]) - | 889 -> One ([R 1276]) - | 890 -> One ([R 1277]) - | 1727 -> One (S (T T_WITH) :: r1210) - | 158 | 215 | 275 | 298 | 426 | 1915 | 2758 -> One (S (T T_UNDERSCORE) :: r87) - | 149 -> One (S (T T_UNDERSCORE) :: r104) - | 289 -> One (S (T T_UNDERSCORE) :: r282) - | 366 -> One (S (T T_UNDERSCORE) :: r320) - | 378 -> One (S (T T_UNDERSCORE) :: r328) - | 2845 -> One (S (T T_UNDERSCORE) :: r1813) - | 571 -> One (S (T T_TYPE) :: r425) - | 1904 -> One (S (T T_STAR) :: r1303) - | 2952 -> One (S (T T_SEMISEMI) :: r1837) - | 2959 -> One (S (T T_SEMISEMI) :: r1841) - | 2874 -> One (S (T T_RPAREN) :: r187) - | 277 -> One (S (T T_RPAREN) :: r275) - | 376 | 470 -> One (S (T T_RPAREN) :: r325) - | 695 -> One (S (T T_RPAREN) :: r554) - | 760 -> One (S (T T_RPAREN) :: r589) - | 870 -> One (S (T T_RPAREN) :: r660) - | 939 -> One (S (T T_RPAREN) :: r701) - | 995 -> One (S (T T_RPAREN) :: r778) - | 997 -> One (S (T T_RPAREN) :: r779) - | 1047 -> One (S (T T_RPAREN) :: r810) - | 1051 -> One (S (T T_RPAREN) :: r811) - | 1070 -> One (S (T T_RPAREN) :: r822) - | 1072 -> One (S (T T_RPAREN) :: r823) - | 1370 -> One (S (T T_RPAREN) :: r1019) - | 1618 -> One (S (T T_RPAREN) :: r1141) - | 1979 -> One (S (T T_RPAREN) :: r1325) - | 1981 -> One (S (T T_RPAREN) :: r1326) - | 2875 -> One (S (T T_RPAREN) :: r1819) - | 1874 | 2309 -> One (S (T T_RBRACKET) :: r507) - | 1710 -> One (S (T T_RBRACKET) :: r1200) - | 1716 -> One (S (T T_RBRACKET) :: r1201) - | 1718 -> One (S (T T_RBRACKET) :: r1202) - | 1721 -> One (S (T T_RBRACKET) :: r1203) - | 1827 -> One (S (T T_RBRACKET) :: r1245) - | 1832 -> One (S (T T_RBRACKET) :: r1246) - | 302 -> One (S (T T_QUOTE) :: r299) - | 363 -> One (S (T T_QUOTE) :: r316) - | 2186 -> One (S (T T_OPEN) :: r1499) - | 2440 -> One (S (T T_OPEN) :: r1667) - | 261 -> One (S (T T_MODULE) :: r95) - | 469 -> One (S (T T_MINUSGREATER) :: r270) - | 388 -> One (S (T T_MINUSGREATER) :: r303) - | 353 -> One (S (T T_MINUSGREATER) :: r313) - | 401 -> One (S (T T_MINUSGREATER) :: r339) - | 417 -> One (S (T T_MINUSGREATER) :: r343) - | 438 -> One (S (T T_MINUSGREATER) :: r355) - | 454 -> One (S (T T_MINUSGREATER) :: r359) - | 875 -> One (S (T T_MINUSGREATER) :: r667) - | 1923 -> One (S (T T_MINUSGREATER) :: r1310) - | 1927 -> One (S (T T_MINUSGREATER) :: r1312) - | 2247 -> One (S (T T_MINUSGREATER) :: r1533) - | 2679 -> One (S (T T_MINUSGREATER) :: r1753) - | 2733 -> One (S (T T_MINUSGREATER) :: r1770) - | 2741 -> One (S (T T_MINUSGREATER) :: r1773) - | 2749 -> One (S (T T_MINUSGREATER) :: r1776) - | 2770 -> One (S (T T_MINUSGREATER) :: r1788) - | 2786 -> One (S (T T_MINUSGREATER) :: r1792) - | 2804 -> One (S (T T_MINUSGREATER) :: r1799) - | 2822 -> One (S (T T_MINUSGREATER) :: r1804) + | 2391 -> One ([R 1032]) + | 405 -> One ([R 1036]) + | 413 -> One ([R 1037]) + | 421 -> One ([R 1038]) + | 429 -> One ([R 1039]) + | 442 -> One ([R 1040]) + | 450 -> One ([R 1041]) + | 458 -> One ([R 1042]) + | 466 -> One ([R 1043]) + | 2738 -> One ([R 1044]) + | 2746 -> One ([R 1045]) + | 2754 -> One ([R 1046]) + | 2762 -> One ([R 1047]) + | 2775 -> One ([R 1048]) + | 2783 -> One ([R 1049]) + | 2791 -> One ([R 1050]) + | 2799 -> One ([R 1051]) + | 2552 -> One ([R 1052]) + | 2560 -> One ([R 1053]) + | 473 -> One ([R 1054]) + | 281 -> One ([R 1055]) + | 327 -> One ([R 1056]) + | 365 -> One ([R 1057]) + | 333 -> One ([R 1058]) + | 340 -> One ([R 1059]) + | 404 -> One ([R 1061]) + | 408 -> One ([R 1063]) + | 412 -> One ([R 1065]) + | 416 -> One ([R 1067]) + | 420 -> One ([R 1069]) + | 424 -> One ([R 1071]) + | 428 -> One ([R 1073]) + | 432 -> One ([R 1075]) + | 441 -> One ([R 1077]) + | 445 -> One ([R 1079]) + | 449 -> One ([R 1081]) + | 453 -> One ([R 1083]) + | 457 -> One ([R 1085]) + | 461 -> One ([R 1087]) + | 465 -> One ([R 1089]) + | 469 -> One ([R 1091]) + | 2737 -> One ([R 1093]) + | 2741 -> One ([R 1095]) + | 2745 -> One ([R 1097]) + | 2749 -> One ([R 1099]) + | 2753 -> One ([R 1101]) + | 2757 -> One ([R 1103]) + | 2761 -> One ([R 1105]) + | 2765 -> One ([R 1107]) + | 2774 -> One ([R 1109]) + | 2778 -> One ([R 1111]) + | 2782 -> One ([R 1113]) + | 2786 -> One ([R 1115]) + | 2790 -> One ([R 1117]) + | 2794 -> One ([R 1119]) + | 2798 -> One ([R 1121]) + | 2802 -> One ([R 1123]) + | 2551 -> One ([R 1125]) + | 2555 -> One ([R 1127]) + | 2559 -> One ([R 1129]) + | 2563 -> One ([R 1131]) + | 277 -> One ([R 1133]) + | 476 -> One ([R 1135]) + | 280 -> One ([R 1137]) + | 472 -> One ([R 1139]) + | 326 -> One ([R 1141]) + | 360 -> One ([R 1143]) + | 364 -> One ([R 1145]) + | 368 -> One ([R 1147]) + | 332 -> One ([R 1149]) + | 336 -> One ([R 1151]) + | 339 -> One ([R 1153]) + | 343 -> One ([R 1155]) + | 2827 -> One ([R 1156]) + | 2835 -> One ([R 1157]) + | 2809 -> One ([R 1158]) + | 2817 -> One ([R 1159]) + | 2826 -> One ([R 1161]) + | 2830 -> One ([R 1163]) + | 2834 -> One ([R 1165]) + | 2838 -> One ([R 1167]) + | 2808 -> One ([R 1169]) + | 2812 -> One ([R 1171]) + | 2816 -> One ([R 1173]) + | 2820 -> One ([R 1175]) + | 2424 -> One ([R 1177]) + | 2396 | 2425 -> One ([R 1179]) + | 2417 -> One ([R 1181]) + | 2397 -> One ([R 1182]) + | 2392 -> One ([R 1183]) + | 2387 -> One ([R 1184]) + | 2390 -> One ([R 1188]) + | 2394 -> One ([R 1191]) + | 2393 -> One ([R 1192]) + | 2418 -> One ([R 1194]) + | 621 -> One ([R 1196]) + | 620 -> One ([R 1197]) + | 2947 -> One ([R 1201]) + | 2948 -> One ([R 1202]) + | 2950 -> One ([R 1203]) + | 2951 -> One ([R 1204]) + | 2949 -> One ([R 1205]) + | 2946 -> One ([R 1206]) + | 2939 -> One ([R 1208]) + | 2940 -> One ([R 1209]) + | 2942 -> One ([R 1210]) + | 2943 -> One ([R 1211]) + | 2941 -> One ([R 1212]) + | 2938 -> One ([R 1213]) + | 2952 -> One ([R 1217]) + | 173 -> One (R 1228 :: r147) + | 892 -> One (R 1228 :: r678) + | 906 -> One ([R 1229]) + | 151 -> One ([R 1231]) + | 296 -> One ([R 1233]) + | 171 -> One ([R 1235]) + | 174 -> One ([R 1236]) + | 178 -> One ([R 1237]) + | 172 -> One ([R 1238]) + | 179 -> One ([R 1239]) + | 175 -> One ([R 1240]) + | 180 -> One ([R 1241]) + | 177 -> One ([R 1242]) + | 170 -> One ([R 1243]) + | 668 -> One ([R 1244]) + | 669 -> One ([R 1245]) + | 679 -> One ([R 1250]) + | 1183 -> One ([R 1251]) + | 676 -> One ([R 1258]) + | 537 -> One ([R 1259]) + | 674 -> One ([R 1260]) + | 2106 -> One ([R 1263]) + | 2220 -> One ([R 1264]) + | 2223 -> One ([R 1265]) + | 2221 -> One ([R 1266]) + | 2255 -> One ([R 1267]) + | 2258 -> One ([R 1268]) + | 2256 -> One ([R 1269]) + | 895 -> One ([R 1276]) + | 896 -> One ([R 1277]) + | 1733 -> One (S (T T_WITH) :: r1212) + | 153 | 223 | 283 | 306 | 434 | 1917 | 2767 -> One (S (T T_UNDERSCORE) :: r87) + | 297 -> One (S (T T_UNDERSCORE) :: r276) + | 374 -> One (S (T T_UNDERSCORE) :: r314) + | 386 -> One (S (T T_UNDERSCORE) :: r322) + | 1923 -> One (S (T T_UNDERSCORE) :: r1308) + | 2847 -> One (S (T T_UNDERSCORE) :: r1812) + | 579 -> One (S (T T_TYPE) :: r419) + | 1906 -> One (S (T T_STAR) :: r1302) + | 2954 -> One (S (T T_SEMISEMI) :: r1836) + | 2961 -> One (S (T T_SEMISEMI) :: r1840) + | 2876 -> One (S (T T_RPAREN) :: r181) + | 285 -> One (S (T T_RPAREN) :: r269) + | 384 | 478 -> One (S (T T_RPAREN) :: r319) + | 703 -> One (S (T T_RPAREN) :: r558) + | 766 -> One (S (T T_RPAREN) :: r591) + | 876 -> One (S (T T_RPAREN) :: r662) + | 945 -> One (S (T T_RPAREN) :: r703) + | 1001 -> One (S (T T_RPAREN) :: r780) + | 1003 -> One (S (T T_RPAREN) :: r781) + | 1053 -> One (S (T T_RPAREN) :: r812) + | 1057 -> One (S (T T_RPAREN) :: r813) + | 1076 -> One (S (T T_RPAREN) :: r824) + | 1078 -> One (S (T T_RPAREN) :: r825) + | 1376 -> One (S (T T_RPAREN) :: r1021) + | 1624 -> One (S (T T_RPAREN) :: r1143) + | 1990 -> One (S (T T_RPAREN) :: r1330) + | 1992 -> One (S (T T_RPAREN) :: r1331) + | 2877 -> One (S (T T_RPAREN) :: r1818) + | 1880 | 2564 -> One (S (T T_RBRACKET) :: r511) + | 1716 -> One (S (T T_RBRACKET) :: r1202) + | 1722 -> One (S (T T_RBRACKET) :: r1203) + | 1724 -> One (S (T T_RBRACKET) :: r1204) + | 1727 -> One (S (T T_RBRACKET) :: r1205) + | 1833 -> One (S (T T_RBRACKET) :: r1247) + | 1838 -> One (S (T T_RBRACKET) :: r1248) + | 310 -> One (S (T T_QUOTE) :: r293) + | 371 -> One (S (T T_QUOTE) :: r310) + | 2147 -> One (S (T T_OPEN) :: r1466) + | 2284 -> One (S (T T_OPEN) :: r1566) + | 269 -> One (S (T T_MODULE) :: r95) + | 477 -> One (S (T T_MINUSGREATER) :: r264) + | 396 -> One (S (T T_MINUSGREATER) :: r297) + | 361 -> One (S (T T_MINUSGREATER) :: r307) + | 409 -> One (S (T T_MINUSGREATER) :: r333) + | 425 -> One (S (T T_MINUSGREATER) :: r337) + | 446 -> One (S (T T_MINUSGREATER) :: r349) + | 462 -> One (S (T T_MINUSGREATER) :: r353) + | 881 -> One (S (T T_MINUSGREATER) :: r669) + | 1934 -> One (S (T T_MINUSGREATER) :: r1315) + | 1938 -> One (S (T T_MINUSGREATER) :: r1317) + | 2334 -> One (S (T T_MINUSGREATER) :: r1599) + | 2556 -> One (S (T T_MINUSGREATER) :: r1675) + | 2742 -> One (S (T T_MINUSGREATER) :: r1774) + | 2750 -> One (S (T T_MINUSGREATER) :: r1777) + | 2758 -> One (S (T T_MINUSGREATER) :: r1780) + | 2779 -> One (S (T T_MINUSGREATER) :: r1792) + | 2795 -> One (S (T T_MINUSGREATER) :: r1796) + | 2813 -> One (S (T T_MINUSGREATER) :: r1803) + | 2831 -> One (S (T T_MINUSGREATER) :: r1808) | 86 -> One (S (T T_LPAREN) :: r51) | 127 -> One (S (T T_LIDENT) :: r66) - | 226 -> One (S (T T_LIDENT) :: r208) - | 227 -> One (S (T T_LIDENT) :: r216) - | 523 -> One (S (T T_LIDENT) :: r380) - | 524 -> One (S (T T_LIDENT) :: r383) - | 537 -> One (S (T T_LIDENT) :: r397) - | 538 -> One (S (T T_LIDENT) :: r403) - | 544 -> One (S (T T_LIDENT) :: r404) - | 545 -> One (S (T T_LIDENT) :: r408) - | 624 -> One (S (T T_LIDENT) :: r493) - | 625 -> One (S (T T_LIDENT) :: r499) - | 631 -> One (S (T T_LIDENT) :: r500) - | 632 -> One (S (T T_LIDENT) :: r504) - | 676 -> One (S (T T_LIDENT) :: r541) - | 677 -> One (S (T T_LIDENT) :: r545) - | 709 -> One (S (T T_LIDENT) :: r560) - | 710 -> One (S (T T_LIDENT) :: r564) - | 739 -> One (S (T T_LIDENT) :: r576) - | 740 -> One (S (T T_LIDENT) :: r580) - | 800 -> One (S (T T_LIDENT) :: r596) - | 801 -> One (S (T T_LIDENT) :: r600) - | 813 -> One (S (T T_LIDENT) :: r602) - | 814 -> One (S (T T_LIDENT) :: r606) - | 827 -> One (S (T T_LIDENT) :: r611) - | 828 -> One (S (T T_LIDENT) :: r615) - | 839 -> One (S (T T_LIDENT) :: r617) - | 858 -> One (S (T T_LIDENT) :: r629) - | 1019 -> One (S (T T_LIDENT) :: r797) - | 1089 -> One (S (T T_LIDENT) :: r830) - | 1090 -> One (S (T T_LIDENT) :: r833) - | 1133 -> One (S (T T_LIDENT) :: r865) - | 1151 -> One (S (T T_LIDENT) :: r879) - | 1152 -> One (S (T T_LIDENT) :: r882) - | 1157 -> One (S (T T_LIDENT) :: r883) - | 1161 -> One (S (T T_LIDENT) :: r885) - | 1169 -> One (S (T T_LIDENT) :: r891) - | 1170 -> One (S (T T_LIDENT) :: r894) - | 1347 -> One (S (T T_LIDENT) :: r1000) - | 1348 -> One (S (T T_LIDENT) :: r1003) - | 1426 -> One (S (T T_LIDENT) :: r1052) - | 1427 -> One (S (T T_LIDENT) :: r1056) - | 1781 -> One (S (T T_LIDENT) :: r1226) - | 1782 -> One (S (T T_LIDENT) :: r1229) - | 1880 -> One (S (T T_LIDENT) :: r1293) - | 2051 -> One (S (T T_LIDENT) :: r1374) - | 2380 -> One (S (T T_LIDENT) :: r1617) - | 2415 -> One (S (T T_LIDENT) :: r1641) - | 2487 -> One (S (T T_LIDENT) :: r1693) - | 2606 -> One (S (T T_LIDENT) :: r1726) - | 2607 -> One (S (T T_LIDENT) :: r1730) - | 2635 -> One (S (T T_LIDENT) :: r1738) - | 2636 -> One (S (T T_LIDENT) :: r1741) - | 551 | 688 -> One (S (T T_INT) :: r409) - | 556 | 689 -> One (S (T T_INT) :: r410) - | 1189 -> One (S (T T_IN) :: r901) - | 2460 -> One (S (T T_IN) :: r1687) - | 954 -> One (S (T T_GREATERRBRACE) :: r709) - | 1821 -> One (S (T T_GREATERRBRACE) :: r1244) - | 214 -> One (S (T T_GREATER) :: r188) - | 2666 -> One (S (T T_GREATER) :: r1750) - | 918 -> One (S (T T_EQUAL) :: r696) - | 1390 -> One (S (T T_EQUAL) :: r1029) - | 1398 -> One (S (T T_EQUAL) :: r1035) - | 1401 -> One (S (T T_EQUAL) :: r1037) - | 1404 -> One (S (T T_EQUAL) :: r1039) - | 1408 -> One (S (T T_EQUAL) :: r1041) - | 1416 -> One (S (T T_EQUAL) :: r1046) - | 1419 -> One (S (T T_EQUAL) :: r1048) - | 1422 -> One (S (T T_EQUAL) :: r1050) - | 1449 -> One (S (T T_EQUAL) :: r1067) - | 1452 -> One (S (T T_EQUAL) :: r1069) - | 1455 -> One (S (T T_EQUAL) :: r1071) - | 1459 -> One (S (T T_EQUAL) :: r1073) - | 1608 -> One (S (T T_EQUAL) :: r1139) - | 2370 -> One (S (T T_EQUAL) :: r1614) - | 2388 -> One (S (T T_EQUAL) :: r1619) - | 2866 -> One (S (T T_EOF) :: r1817) - | 2870 -> One (S (T T_EOF) :: r1818) - | 2889 -> One (S (T T_EOF) :: r1824) - | 2893 -> One (S (T T_EOF) :: r1825) - | 2897 -> One (S (T T_EOF) :: r1826) - | 2900 -> One (S (T T_EOF) :: r1827) - | 2905 -> One (S (T T_EOF) :: r1828) - | 2909 -> One (S (T T_EOF) :: r1829) - | 2913 -> One (S (T T_EOF) :: r1830) - | 2917 -> One (S (T T_EOF) :: r1831) - | 2921 -> One (S (T T_EOF) :: r1832) - | 2924 -> One (S (T T_EOF) :: r1833) - | 2928 -> One (S (T T_EOF) :: r1834) - | 2976 -> One (S (T T_EOF) :: r1850) - | 1777 -> One (S (T T_END) :: r1225) + | 234 -> One (S (T T_LIDENT) :: r202) + | 235 -> One (S (T T_LIDENT) :: r210) + | 531 -> One (S (T T_LIDENT) :: r374) + | 532 -> One (S (T T_LIDENT) :: r377) + | 545 -> One (S (T T_LIDENT) :: r391) + | 546 -> One (S (T T_LIDENT) :: r397) + | 552 -> One (S (T T_LIDENT) :: r398) + | 553 -> One (S (T T_LIDENT) :: r402) + | 632 -> One (S (T T_LIDENT) :: r497) + | 633 -> One (S (T T_LIDENT) :: r503) + | 639 -> One (S (T T_LIDENT) :: r504) + | 640 -> One (S (T T_LIDENT) :: r508) + | 684 -> One (S (T T_LIDENT) :: r545) + | 685 -> One (S (T T_LIDENT) :: r549) + | 717 -> One (S (T T_LIDENT) :: r564) + | 718 -> One (S (T T_LIDENT) :: r568) + | 745 -> One (S (T T_LIDENT) :: r578) + | 746 -> One (S (T T_LIDENT) :: r582) + | 806 -> One (S (T T_LIDENT) :: r598) + | 807 -> One (S (T T_LIDENT) :: r602) + | 819 -> One (S (T T_LIDENT) :: r604) + | 820 -> One (S (T T_LIDENT) :: r608) + | 833 -> One (S (T T_LIDENT) :: r613) + | 834 -> One (S (T T_LIDENT) :: r617) + | 845 -> One (S (T T_LIDENT) :: r619) + | 864 -> One (S (T T_LIDENT) :: r631) + | 1025 -> One (S (T T_LIDENT) :: r799) + | 1095 -> One (S (T T_LIDENT) :: r832) + | 1096 -> One (S (T T_LIDENT) :: r835) + | 1139 -> One (S (T T_LIDENT) :: r867) + | 1157 -> One (S (T T_LIDENT) :: r881) + | 1158 -> One (S (T T_LIDENT) :: r884) + | 1163 -> One (S (T T_LIDENT) :: r885) + | 1167 -> One (S (T T_LIDENT) :: r887) + | 1175 -> One (S (T T_LIDENT) :: r893) + | 1176 -> One (S (T T_LIDENT) :: r896) + | 1353 -> One (S (T T_LIDENT) :: r1002) + | 1354 -> One (S (T T_LIDENT) :: r1005) + | 1432 -> One (S (T T_LIDENT) :: r1054) + | 1433 -> One (S (T T_LIDENT) :: r1058) + | 1787 -> One (S (T T_LIDENT) :: r1228) + | 1788 -> One (S (T T_LIDENT) :: r1231) + | 1886 -> One (S (T T_LIDENT) :: r1295) + | 2062 -> One (S (T T_LIDENT) :: r1378) + | 2224 -> One (S (T T_LIDENT) :: r1516) + | 2259 -> One (S (T T_LIDENT) :: r1540) + | 2350 -> One (S (T T_LIDENT) :: r1603) + | 2483 -> One (S (T T_LIDENT) :: r1648) + | 2484 -> One (S (T T_LIDENT) :: r1652) + | 2512 -> One (S (T T_LIDENT) :: r1660) + | 2513 -> One (S (T T_LIDENT) :: r1663) + | 559 | 696 -> One (S (T T_INT) :: r403) + | 564 | 697 -> One (S (T T_INT) :: r404) + | 1195 -> One (S (T T_IN) :: r903) + | 2304 -> One (S (T T_IN) :: r1586) + | 960 -> One (S (T T_GREATERRBRACE) :: r711) + | 1827 -> One (S (T T_GREATERRBRACE) :: r1246) + | 222 -> One (S (T T_GREATER) :: r182) + | 2543 -> One (S (T T_GREATER) :: r1672) + | 924 -> One (S (T T_EQUAL) :: r698) + | 1396 -> One (S (T T_EQUAL) :: r1031) + | 1404 -> One (S (T T_EQUAL) :: r1037) + | 1407 -> One (S (T T_EQUAL) :: r1039) + | 1410 -> One (S (T T_EQUAL) :: r1041) + | 1414 -> One (S (T T_EQUAL) :: r1043) + | 1422 -> One (S (T T_EQUAL) :: r1048) + | 1425 -> One (S (T T_EQUAL) :: r1050) + | 1428 -> One (S (T T_EQUAL) :: r1052) + | 1455 -> One (S (T T_EQUAL) :: r1069) + | 1458 -> One (S (T T_EQUAL) :: r1071) + | 1461 -> One (S (T T_EQUAL) :: r1073) + | 1465 -> One (S (T T_EQUAL) :: r1075) + | 1614 -> One (S (T T_EQUAL) :: r1141) + | 2214 -> One (S (T T_EQUAL) :: r1513) + | 2232 -> One (S (T T_EQUAL) :: r1518) + | 2868 -> One (S (T T_EOF) :: r1816) + | 2872 -> One (S (T T_EOF) :: r1817) + | 2891 -> One (S (T T_EOF) :: r1823) + | 2895 -> One (S (T T_EOF) :: r1824) + | 2899 -> One (S (T T_EOF) :: r1825) + | 2902 -> One (S (T T_EOF) :: r1826) + | 2907 -> One (S (T T_EOF) :: r1827) + | 2911 -> One (S (T T_EOF) :: r1828) + | 2915 -> One (S (T T_EOF) :: r1829) + | 2919 -> One (S (T T_EOF) :: r1830) + | 2923 -> One (S (T T_EOF) :: r1831) + | 2926 -> One (S (T T_EOF) :: r1832) + | 2930 -> One (S (T T_EOF) :: r1833) + | 2978 -> One (S (T T_EOF) :: r1849) + | 1783 -> One (S (T T_END) :: r1227) | 88 -> One (S (T T_DOTDOT) :: r52) - | 211 -> One (S (T T_DOTDOT) :: r184) - | 708 -> One (S (T T_DOTDOT) :: r559) - | 799 -> One (S (T T_DOTDOT) :: r595) - | 1425 -> One (S (T T_DOTDOT) :: r1051) - | 2328 -> One (S (T T_DOTDOT) :: r1577) - | 2329 -> One (S (T T_DOTDOT) :: r1578) - | 299 -> One (S (T T_DOT) :: r293) - | 390 -> One (S (T T_DOT) :: r336) - | 427 -> One (S (T T_DOT) :: r352) - | 605 | 1475 | 1548 -> One (S (T T_DOT) :: r471) - | 843 -> One (S (T T_DOT) :: r624) - | 2931 -> One (S (T T_DOT) :: r697) - | 988 -> One (S (T T_DOT) :: r776) - | 1001 -> One (S (T T_DOT) :: r782) - | 1036 -> One (S (T T_DOT) :: r802) - | 1043 -> One (S (T T_DOT) :: r809) - | 1057 -> One (S (T T_DOT) :: r815) - | 1065 -> One (S (T T_DOT) :: r821) - | 1393 -> One (S (T T_DOT) :: r1033) - | 1444 -> One (S (T T_DOT) :: r1065) - | 1883 -> One (S (T T_DOT) :: r1295) - | 1921 -> One (S (T T_DOT) :: r1308) - | 2062 -> One (S (T T_DOT) :: r1387) - | 2722 -> One (S (T T_DOT) :: r1767) - | 2759 -> One (S (T T_DOT) :: r1785) - | 2879 -> One (S (T T_DOT) :: r1823) - | 619 -> One (S (T T_COLONRBRACKET) :: r481) - | 638 -> One (S (T T_COLONRBRACKET) :: r505) - | 787 -> One (S (T T_COLONRBRACKET) :: r592) - | 1620 -> One (S (T T_COLONRBRACKET) :: r1142) - | 1687 -> One (S (T T_COLONRBRACKET) :: r1193) - | 1692 -> One (S (T T_COLONRBRACKET) :: r1194) - | 1695 -> One (S (T T_COLONRBRACKET) :: r1195) - | 1960 -> One (S (T T_COLONRBRACKET) :: r1316) - | 1963 -> One (S (T T_COLONRBRACKET) :: r1317) - | 1966 -> One (S (T T_COLONRBRACKET) :: r1318) - | 212 | 1871 -> One (S (T T_COLONCOLON) :: r186) - | 238 -> One (S (T T_COLON) :: r245) - | 338 -> One (S (T T_COLON) :: r307) - | 347 -> One (S (T T_COLON) :: r311) - | 872 -> One (S (T T_COLON) :: r663) - | 2241 -> One (S (T T_COLON) :: r1531) - | 2654 -> One (S (T T_COLON) :: r1748) - | 639 -> One (S (T T_BARRBRACKET) :: r506) - | 784 -> One (S (T T_BARRBRACKET) :: r591) - | 952 -> One (S (T T_BARRBRACKET) :: r704) - | 1697 -> One (S (T T_BARRBRACKET) :: r1196) - | 1702 -> One (S (T T_BARRBRACKET) :: r1197) - | 1705 -> One (S (T T_BARRBRACKET) :: r1198) + | 219 -> One (S (T T_DOTDOT) :: r178) + | 716 -> One (S (T T_DOTDOT) :: r563) + | 805 -> One (S (T T_DOTDOT) :: r597) + | 1431 -> One (S (T T_DOTDOT) :: r1053) + | 2585 -> One (S (T T_DOTDOT) :: r1681) + | 2586 -> One (S (T T_DOTDOT) :: r1682) + | 307 -> One (S (T T_DOT) :: r287) + | 398 -> One (S (T T_DOT) :: r330) + | 435 -> One (S (T T_DOT) :: r346) + | 613 | 1481 | 1554 -> One (S (T T_DOT) :: r475) + | 849 -> One (S (T T_DOT) :: r626) + | 2933 -> One (S (T T_DOT) :: r699) + | 994 -> One (S (T T_DOT) :: r778) + | 1007 -> One (S (T T_DOT) :: r784) + | 1042 -> One (S (T T_DOT) :: r804) + | 1049 -> One (S (T T_DOT) :: r811) + | 1063 -> One (S (T T_DOT) :: r817) + | 1071 -> One (S (T T_DOT) :: r823) + | 1399 -> One (S (T T_DOT) :: r1035) + | 1450 -> One (S (T T_DOT) :: r1067) + | 1889 -> One (S (T T_DOT) :: r1297) + | 1932 -> One (S (T T_DOT) :: r1313) + | 2073 -> One (S (T T_DOT) :: r1391) + | 2731 -> One (S (T T_DOT) :: r1771) + | 2768 -> One (S (T T_DOT) :: r1789) + | 2881 -> One (S (T T_DOT) :: r1822) + | 627 -> One (S (T T_COLONRBRACKET) :: r485) + | 646 -> One (S (T T_COLONRBRACKET) :: r509) + | 793 -> One (S (T T_COLONRBRACKET) :: r594) + | 1626 -> One (S (T T_COLONRBRACKET) :: r1144) + | 1693 -> One (S (T T_COLONRBRACKET) :: r1195) + | 1698 -> One (S (T T_COLONRBRACKET) :: r1196) + | 1701 -> One (S (T T_COLONRBRACKET) :: r1197) + | 1971 -> One (S (T T_COLONRBRACKET) :: r1321) + | 1974 -> One (S (T T_COLONRBRACKET) :: r1322) + | 1977 -> One (S (T T_COLONRBRACKET) :: r1323) + | 220 | 1877 -> One (S (T T_COLONCOLON) :: r180) + | 246 -> One (S (T T_COLON) :: r239) + | 346 -> One (S (T T_COLON) :: r301) + | 355 -> One (S (T T_COLON) :: r305) + | 878 -> One (S (T T_COLON) :: r665) + | 2328 -> One (S (T T_COLON) :: r1597) + | 2531 -> One (S (T T_COLON) :: r1670) + | 647 -> One (S (T T_BARRBRACKET) :: r510) + | 790 -> One (S (T T_BARRBRACKET) :: r593) + | 958 -> One (S (T T_BARRBRACKET) :: r706) + | 1703 -> One (S (T T_BARRBRACKET) :: r1198) | 1708 -> One (S (T T_BARRBRACKET) :: r1199) - | 1838 -> One (S (T T_BARRBRACKET) :: r1247) - | 1841 -> One (S (T T_BARRBRACKET) :: r1248) + | 1711 -> One (S (T T_BARRBRACKET) :: r1200) + | 1714 -> One (S (T T_BARRBRACKET) :: r1201) | 1844 -> One (S (T T_BARRBRACKET) :: r1249) - | 502 -> One (S (T T_BAR) :: r374) - | 535 -> One (S (N N_pattern) :: r393) - | 650 -> One (S (N N_pattern) :: r521) - | 723 -> One (S (N N_pattern) :: r567) - | 753 -> One (S (N N_pattern) :: r585) - | 794 -> One (S (N N_pattern) :: r594) - | 1061 -> One (S (N N_pattern) :: r817) - | 1437 -> One (S (N N_pattern) :: r1058) - | 1635 -> One (S (N N_pattern) :: r1160) - | 1643 -> One (S (N N_pattern) :: r1166) - | 1651 -> One (S (N N_pattern) :: r1172) - | 2045 -> One (S (N N_pattern) :: r1367) - | 570 -> One (S (N N_module_type) :: r421) - | 874 -> One (S (N N_module_type) :: r665) - | 914 -> One (S (N N_module_type) :: r693) - | 916 -> One (S (N N_module_type) :: r694) - | 943 -> One (S (N N_module_type) :: r703) - | 1858 -> One (S (N N_module_type) :: r1261) - | 1974 -> One (S (N N_module_type) :: r1324) - | 1992 -> One (S (N N_module_type) :: r1332) - | 1995 -> One (S (N N_module_type) :: r1334) - | 1998 -> One (S (N N_module_type) :: r1336) - | 2003 -> One (S (N N_module_type) :: r1338) - | 2006 -> One (S (N N_module_type) :: r1340) - | 2009 -> One (S (N N_module_type) :: r1342) - | 2023 -> One (S (N N_module_type) :: r1354) - | 597 -> One (S (N N_module_expr) :: r458) - | 983 -> One (S (N N_let_pattern) :: r772) - | 1008 -> One (S (N N_let_pattern) :: r785) - | 622 -> One (S (N N_fun_expr) :: r483) - | 956 -> One (S (N N_fun_expr) :: r712) - | 964 -> One (S (N N_fun_expr) :: r732) - | 1144 -> One (S (N N_fun_expr) :: r875) - | 1168 -> One (S (N N_fun_expr) :: r890) - | 1194 -> One (S (N N_fun_expr) :: r902) - | 1200 -> One (S (N N_fun_expr) :: r906) - | 1209 -> One (S (N N_fun_expr) :: r910) - | 1220 -> One (S (N N_fun_expr) :: r916) - | 1226 -> One (S (N N_fun_expr) :: r920) - | 1232 -> One (S (N N_fun_expr) :: r924) - | 1238 -> One (S (N N_fun_expr) :: r928) - | 1244 -> One (S (N N_fun_expr) :: r932) - | 1250 -> One (S (N N_fun_expr) :: r936) - | 1256 -> One (S (N N_fun_expr) :: r940) - | 1262 -> One (S (N N_fun_expr) :: r944) - | 1268 -> One (S (N N_fun_expr) :: r948) - | 1274 -> One (S (N N_fun_expr) :: r952) - | 1280 -> One (S (N N_fun_expr) :: r956) - | 1286 -> One (S (N N_fun_expr) :: r960) - | 1292 -> One (S (N N_fun_expr) :: r964) - | 1298 -> One (S (N N_fun_expr) :: r968) - | 1304 -> One (S (N N_fun_expr) :: r972) - | 1310 -> One (S (N N_fun_expr) :: r976) - | 1316 -> One (S (N N_fun_expr) :: r980) - | 1322 -> One (S (N N_fun_expr) :: r984) - | 1328 -> One (S (N N_fun_expr) :: r988) - | 1334 -> One (S (N N_fun_expr) :: r992) - | 1340 -> One (S (N N_fun_expr) :: r996) - | 1360 -> One (S (N N_fun_expr) :: r1008) - | 1496 -> One (S (N N_fun_expr) :: r1092) - | 1505 -> One (S (N N_fun_expr) :: r1099) - | 1514 -> One (S (N N_fun_expr) :: r1106) - | 1524 -> One (S (N N_fun_expr) :: r1110) - | 1533 -> One (S (N N_fun_expr) :: r1114) - | 1542 -> One (S (N N_fun_expr) :: r1118) - | 1553 -> One (S (N N_fun_expr) :: r1122) - | 1562 -> One (S (N N_fun_expr) :: r1126) - | 1571 -> One (S (N N_fun_expr) :: r1130) - | 1578 -> One (S (N N_fun_expr) :: r1134) - | 1625 -> One (S (N N_fun_expr) :: r1143) - | 1666 -> One (S (N N_fun_expr) :: r1181) - | 1763 -> One (S (N N_fun_expr) :: r1217) - | 1770 -> One (S (N N_fun_expr) :: r1221) - | 220 -> One (Sub (r3) :: r192) - | 600 -> One (Sub (r3) :: r462) - | 620 -> One (Sub (r3) :: r482) - | 862 -> One (Sub (r3) :: r636) - | 977 -> One (Sub (r3) :: r750) - | 1128 -> One (Sub (r3) :: r861) - | 2047 -> One (Sub (r3) :: r1368) + | 1847 -> One (S (T T_BARRBRACKET) :: r1250) + | 1850 -> One (S (T T_BARRBRACKET) :: r1251) + | 510 -> One (S (T T_BAR) :: r368) + | 2844 -> One (S (T T_AMPERSAND) :: r163) + | 543 -> One (S (N N_pattern) :: r387) + | 658 -> One (S (N N_pattern) :: r525) + | 731 -> One (S (N N_pattern) :: r571) + | 759 -> One (S (N N_pattern) :: r587) + | 800 -> One (S (N N_pattern) :: r596) + | 1067 -> One (S (N N_pattern) :: r819) + | 1443 -> One (S (N N_pattern) :: r1060) + | 1641 -> One (S (N N_pattern) :: r1162) + | 1649 -> One (S (N N_pattern) :: r1168) + | 1657 -> One (S (N N_pattern) :: r1174) + | 2056 -> One (S (N N_pattern) :: r1371) + | 578 -> One (S (N N_module_type) :: r415) + | 880 -> One (S (N N_module_type) :: r667) + | 920 -> One (S (N N_module_type) :: r695) + | 922 -> One (S (N N_module_type) :: r696) + | 949 -> One (S (N N_module_type) :: r705) + | 1864 -> One (S (N N_module_type) :: r1263) + | 1985 -> One (S (N N_module_type) :: r1329) + | 2003 -> One (S (N N_module_type) :: r1337) + | 2006 -> One (S (N N_module_type) :: r1339) + | 2009 -> One (S (N N_module_type) :: r1341) + | 2014 -> One (S (N N_module_type) :: r1343) + | 2017 -> One (S (N N_module_type) :: r1345) + | 2020 -> One (S (N N_module_type) :: r1347) + | 2034 -> One (S (N N_module_type) :: r1358) + | 605 -> One (S (N N_module_expr) :: r462) + | 989 -> One (S (N N_let_pattern) :: r774) + | 1014 -> One (S (N N_let_pattern) :: r787) + | 630 -> One (S (N N_fun_expr) :: r487) + | 962 -> One (S (N N_fun_expr) :: r714) + | 970 -> One (S (N N_fun_expr) :: r734) + | 1150 -> One (S (N N_fun_expr) :: r877) + | 1174 -> One (S (N N_fun_expr) :: r892) + | 1200 -> One (S (N N_fun_expr) :: r904) + | 1206 -> One (S (N N_fun_expr) :: r908) + | 1215 -> One (S (N N_fun_expr) :: r912) + | 1226 -> One (S (N N_fun_expr) :: r918) + | 1232 -> One (S (N N_fun_expr) :: r922) + | 1238 -> One (S (N N_fun_expr) :: r926) + | 1244 -> One (S (N N_fun_expr) :: r930) + | 1250 -> One (S (N N_fun_expr) :: r934) + | 1256 -> One (S (N N_fun_expr) :: r938) + | 1262 -> One (S (N N_fun_expr) :: r942) + | 1268 -> One (S (N N_fun_expr) :: r946) + | 1274 -> One (S (N N_fun_expr) :: r950) + | 1280 -> One (S (N N_fun_expr) :: r954) + | 1286 -> One (S (N N_fun_expr) :: r958) + | 1292 -> One (S (N N_fun_expr) :: r962) + | 1298 -> One (S (N N_fun_expr) :: r966) + | 1304 -> One (S (N N_fun_expr) :: r970) + | 1310 -> One (S (N N_fun_expr) :: r974) + | 1316 -> One (S (N N_fun_expr) :: r978) + | 1322 -> One (S (N N_fun_expr) :: r982) + | 1328 -> One (S (N N_fun_expr) :: r986) + | 1334 -> One (S (N N_fun_expr) :: r990) + | 1340 -> One (S (N N_fun_expr) :: r994) + | 1346 -> One (S (N N_fun_expr) :: r998) + | 1366 -> One (S (N N_fun_expr) :: r1010) + | 1502 -> One (S (N N_fun_expr) :: r1094) + | 1511 -> One (S (N N_fun_expr) :: r1101) + | 1520 -> One (S (N N_fun_expr) :: r1108) + | 1530 -> One (S (N N_fun_expr) :: r1112) + | 1539 -> One (S (N N_fun_expr) :: r1116) + | 1548 -> One (S (N N_fun_expr) :: r1120) + | 1559 -> One (S (N N_fun_expr) :: r1124) + | 1568 -> One (S (N N_fun_expr) :: r1128) + | 1577 -> One (S (N N_fun_expr) :: r1132) + | 1584 -> One (S (N N_fun_expr) :: r1136) + | 1631 -> One (S (N N_fun_expr) :: r1145) + | 1672 -> One (S (N N_fun_expr) :: r1183) + | 1769 -> One (S (N N_fun_expr) :: r1219) + | 1776 -> One (S (N N_fun_expr) :: r1223) + | 228 -> One (Sub (r3) :: r186) + | 608 -> One (Sub (r3) :: r466) + | 628 -> One (Sub (r3) :: r486) + | 868 -> One (Sub (r3) :: r638) + | 983 -> One (Sub (r3) :: r752) + | 1134 -> One (Sub (r3) :: r863) + | 2058 -> One (Sub (r3) :: r1372) | 2 -> One (Sub (r13) :: r14) | 56 -> One (Sub (r13) :: r15) | 60 -> One (Sub (r13) :: r22) - | 218 -> One (Sub (r13) :: r191) - | 587 -> One (Sub (r13) :: r447) - | 1216 -> One (Sub (r13) :: r915) - | 2043 -> One (Sub (r13) :: r1366) - | 2049 -> One (Sub (r13) :: r1371) - | 2441 -> One (Sub (r13) :: r1672) - | 755 -> One (Sub (r24) :: r586) - | 1439 -> One (Sub (r24) :: r1059) - | 1441 -> One (Sub (r24) :: r1061) - | 237 -> One (Sub (r26) :: r240) - | 346 -> One (Sub (r26) :: r309) - | 1080 -> One (Sub (r26) :: r824) - | 1901 -> One (Sub (r26) :: r1300) - | 1906 -> One (Sub (r26) :: r1305) - | 1914 -> One (Sub (r26) :: r1306) - | 263 -> One (Sub (r28) :: r265) - | 274 -> One (Sub (r28) :: r273) - | 297 -> One (Sub (r28) :: r288) - | 320 -> One (Sub (r28) :: r300) - | 326 -> One (Sub (r28) :: r301) - | 333 -> One (Sub (r28) :: r304) - | 358 -> One (Sub (r28) :: r314) - | 398 -> One (Sub (r28) :: r337) - | 406 -> One (Sub (r28) :: r340) - | 414 -> One (Sub (r28) :: r341) - | 422 -> One (Sub (r28) :: r344) - | 425 -> One (Sub (r28) :: r347) - | 435 -> One (Sub (r28) :: r353) - | 443 -> One (Sub (r28) :: r356) - | 451 -> One (Sub (r28) :: r357) - | 459 -> One (Sub (r28) :: r360) - | 462 -> One (Sub (r28) :: r361) - | 466 -> One (Sub (r28) :: r362) - | 2249 -> One (Sub (r28) :: r1536) - | 2676 -> One (Sub (r28) :: r1751) - | 2684 -> One (Sub (r28) :: r1754) - | 2730 -> One (Sub (r28) :: r1768) - | 2738 -> One (Sub (r28) :: r1771) - | 2746 -> One (Sub (r28) :: r1774) - | 2754 -> One (Sub (r28) :: r1777) - | 2757 -> One (Sub (r28) :: r1780) - | 2767 -> One (Sub (r28) :: r1786) - | 2775 -> One (Sub (r28) :: r1789) - | 2783 -> One (Sub (r28) :: r1790) - | 2791 -> One (Sub (r28) :: r1793) - | 2801 -> One (Sub (r28) :: r1797) - | 2809 -> One (Sub (r28) :: r1800) - | 2815 -> One (Sub (r28) :: r1801) - | 2819 -> One (Sub (r28) :: r1802) - | 2827 -> One (Sub (r28) :: r1805) - | 494 -> One (Sub (r32) :: r371) - | 893 -> One (Sub (r32) :: r678) + | 226 -> One (Sub (r13) :: r185) + | 595 -> One (Sub (r13) :: r451) + | 1222 -> One (Sub (r13) :: r917) + | 2054 -> One (Sub (r13) :: r1370) + | 2060 -> One (Sub (r13) :: r1375) + | 2285 -> One (Sub (r13) :: r1571) + | 761 -> One (Sub (r24) :: r588) + | 1445 -> One (Sub (r24) :: r1061) + | 1447 -> One (Sub (r24) :: r1063) + | 245 -> One (Sub (r26) :: r234) + | 354 -> One (Sub (r26) :: r303) + | 1086 -> One (Sub (r26) :: r826) + | 1903 -> One (Sub (r26) :: r1299) + | 1908 -> One (Sub (r26) :: r1304) + | 1916 -> One (Sub (r26) :: r1305) + | 271 -> One (Sub (r28) :: r259) + | 282 -> One (Sub (r28) :: r267) + | 305 -> One (Sub (r28) :: r282) + | 328 -> One (Sub (r28) :: r294) + | 334 -> One (Sub (r28) :: r295) + | 341 -> One (Sub (r28) :: r298) + | 366 -> One (Sub (r28) :: r308) + | 406 -> One (Sub (r28) :: r331) + | 414 -> One (Sub (r28) :: r334) + | 422 -> One (Sub (r28) :: r335) + | 430 -> One (Sub (r28) :: r338) + | 433 -> One (Sub (r28) :: r341) + | 443 -> One (Sub (r28) :: r347) + | 451 -> One (Sub (r28) :: r350) + | 459 -> One (Sub (r28) :: r351) + | 467 -> One (Sub (r28) :: r354) + | 470 -> One (Sub (r28) :: r355) + | 474 -> One (Sub (r28) :: r356) + | 2336 -> One (Sub (r28) :: r1602) + | 2553 -> One (Sub (r28) :: r1673) + | 2561 -> One (Sub (r28) :: r1676) + | 2739 -> One (Sub (r28) :: r1772) + | 2747 -> One (Sub (r28) :: r1775) + | 2755 -> One (Sub (r28) :: r1778) + | 2763 -> One (Sub (r28) :: r1781) + | 2766 -> One (Sub (r28) :: r1784) + | 2776 -> One (Sub (r28) :: r1790) + | 2784 -> One (Sub (r28) :: r1793) + | 2792 -> One (Sub (r28) :: r1794) + | 2800 -> One (Sub (r28) :: r1797) + | 2810 -> One (Sub (r28) :: r1801) + | 2818 -> One (Sub (r28) :: r1804) + | 2824 -> One (Sub (r28) :: r1805) + | 2828 -> One (Sub (r28) :: r1806) + | 2836 -> One (Sub (r28) :: r1809) + | 502 -> One (Sub (r32) :: r365) + | 899 -> One (Sub (r32) :: r680) | 136 -> One (Sub (r34) :: r90) - | 154 -> One (Sub (r34) :: r105) - | 229 -> One (Sub (r34) :: r217) - | 518 -> One (Sub (r34) :: r379) - | 647 -> One (Sub (r34) :: r520) - | 842 -> One (Sub (r34) :: r622) - | 896 -> One (Sub (r34) :: r681) - | 1000 -> One (Sub (r34) :: r780) - | 1042 -> One (Sub (r34) :: r807) - | 1064 -> One (Sub (r34) :: r818) - | 1120 -> One (Sub (r34) :: r848) - | 1412 -> One (Sub (r34) :: r1044) - | 2158 -> One (Sub (r34) :: r1479) - | 2196 -> One (Sub (r34) :: r1510) - | 2619 -> One (Sub (r34) :: r1733) - | 2397 -> One (Sub (r36) :: r1633) - | 2421 -> One (Sub (r36) :: r1644) - | 293 -> One (Sub (r60) :: r285) - | 300 -> One (Sub (r60) :: r294) - | 371 -> One (Sub (r60) :: r324) - | 382 -> One (Sub (r60) :: r331) - | 2835 -> One (Sub (r60) :: r1810) - | 2849 -> One (Sub (r60) :: r1816) - | 2934 -> One (Sub (r60) :: r1835) - | 2942 -> One (Sub (r60) :: r1836) + | 149 -> One (Sub (r34) :: r102) + | 237 -> One (Sub (r34) :: r211) + | 526 -> One (Sub (r34) :: r373) + | 655 -> One (Sub (r34) :: r524) + | 848 -> One (Sub (r34) :: r624) + | 902 -> One (Sub (r34) :: r683) + | 1006 -> One (Sub (r34) :: r782) + | 1048 -> One (Sub (r34) :: r809) + | 1070 -> One (Sub (r34) :: r820) + | 1126 -> One (Sub (r34) :: r850) + | 1418 -> One (Sub (r34) :: r1046) + | 2119 -> One (Sub (r34) :: r1444) + | 2157 -> One (Sub (r34) :: r1477) + | 2496 -> One (Sub (r34) :: r1655) + | 2241 -> One (Sub (r36) :: r1532) + | 2265 -> One (Sub (r36) :: r1543) + | 301 -> One (Sub (r60) :: r279) + | 308 -> One (Sub (r60) :: r288) + | 379 -> One (Sub (r60) :: r318) + | 390 -> One (Sub (r60) :: r325) + | 1927 -> One (Sub (r60) :: r1311) + | 2851 -> One (Sub (r60) :: r1815) + | 2936 -> One (Sub (r60) :: r1834) + | 2944 -> One (Sub (r60) :: r1835) | 135 -> One (Sub (r76) :: r89) - | 144 -> One (Sub (r76) :: r101) - | 2833 -> One (Sub (r76) :: r1807) - | 182 -> One (Sub (r78) :: r173) - | 189 -> One (Sub (r78) :: r178) - | 205 -> One (Sub (r78) :: r180) - | 1025 -> One (Sub (r78) :: r799) - | 337 -> One (Sub (r108) :: r305) - | 2795 -> One (Sub (r108) :: r1796) - | 2088 -> One (Sub (r114) :: r1404) - | 655 -> One (Sub (r131) :: r529) - | 664 -> One (Sub (r131) :: r539) - | 2151 -> One (Sub (r166) :: r1473) - | 194 -> One (Sub (r168) :: r179) - | 174 -> One (Sub (r170) :: r172) - | 208 -> One (Sub (r182) :: r183) - | 2694 -> One (Sub (r182) :: r1759) - | 2709 -> One (Sub (r182) :: r1762) - | 975 -> One (Sub (r198) :: r747) - | 1185 -> One (Sub (r198) :: r899) - | 487 -> One (Sub (r219) :: r365) - | 235 -> One (Sub (r221) :: r228) - | 480 -> One (Sub (r221) :: r364) - | 236 -> One (Sub (r234) :: r236) - | 241 -> One (Sub (r249) :: r250) - | 279 -> One (Sub (r249) :: r276) - | 341 -> One (Sub (r249) :: r308) - | 244 -> One (Sub (r256) :: r258) - | 885 -> One (Sub (r256) :: r672) - | 922 -> One (Sub (r256) :: r698) - | 2111 -> One (Sub (r256) :: r1429) - | 265 -> One (Sub (r267) :: r268) - | 510 -> One (Sub (r376) :: r378) - | 530 -> One (Sub (r384) :: r385) - | 531 -> One (Sub (r384) :: r386) - | 963 -> One (Sub (r384) :: r730) - | 965 -> One (Sub (r384) :: r735) - | 1095 -> One (Sub (r384) :: r834) - | 1096 -> One (Sub (r384) :: r835) - | 1135 -> One (Sub (r384) :: r866) - | 1159 -> One (Sub (r384) :: r884) - | 1175 -> One (Sub (r384) :: r895) - | 1353 -> One (Sub (r384) :: r1004) - | 1490 -> One (Sub (r384) :: r1091) - | 1787 -> One (Sub (r384) :: r1230) - | 2626 -> One (Sub (r384) :: r1734) - | 2641 -> One (Sub (r384) :: r1742) - | 2029 -> One (Sub (r415) :: r1358) - | 2114 -> One (Sub (r415) :: r1434) - | 1614 -> One (Sub (r485) :: r1140) - | 623 -> One (Sub (r487) :: r490) - | 642 -> One (Sub (r517) :: r519) - | 663 -> One (Sub (r524) :: r538) - | 683 -> One (Sub (r524) :: r546) - | 716 -> One (Sub (r524) :: r565) - | 746 -> One (Sub (r524) :: r581) - | 789 -> One (Sub (r524) :: r593) - | 807 -> One (Sub (r524) :: r601) - | 820 -> One (Sub (r524) :: r607) - | 824 -> One (Sub (r524) :: r610) - | 834 -> One (Sub (r524) :: r616) - | 1053 -> One (Sub (r524) :: r812) - | 1433 -> One (Sub (r524) :: r1057) - | 2600 -> One (Sub (r524) :: r1725) - | 2613 -> One (Sub (r524) :: r1731) - | 662 -> One (Sub (r533) :: r535) - | 727 -> One (Sub (r570) :: r573) - | 2831 -> One (Sub (r570) :: r1806) - | 840 -> One (Sub (r619) :: r621) - | 852 -> One (Sub (r619) :: r628) - | 859 -> One (Sub (r619) :: r632) - | 860 -> One (Sub (r619) :: r635) - | 926 -> One (Sub (r699) :: r700) - | 957 -> One (Sub (r718) :: r720) - | 1726 -> One (Sub (r718) :: r1208) - | 959 -> One (Sub (r724) :: r726) - | 981 -> One (Sub (r768) :: r769) - | 1018 -> One (Sub (r791) :: r793) - | 1384 -> One (Sub (r791) :: r1027) - | 2398 -> One (Sub (r791) :: r1638) - | 2422 -> One (Sub (r791) :: r1649) - | 1040 -> One (Sub (r804) :: r806) - | 1633 -> One (Sub (r1153) :: r1157) - | 1631 -> One (Sub (r1155) :: r1156) - | 1723 -> One (Sub (r1204) :: r1206) - | 1865 -> One (Sub (r1252) :: r1262) - | 1876 -> One (Sub (r1272) :: r1273) - | 1877 -> One (Sub (r1284) :: r1286) - | 2310 -> One (Sub (r1284) :: r1572) - | 2330 -> One (Sub (r1284) :: r1580) - | 2338 -> One (Sub (r1284) :: r1582) - | 2687 -> One (Sub (r1284) :: r1756) - | 1887 -> One (Sub (r1297) :: r1298) - | 2569 -> One (Sub (r1388) :: r1722) - | 2581 -> One (Sub (r1388) :: r1724) - | 2135 -> One (Sub (r1416) :: r1445) - | 2128 -> One (Sub (r1442) :: r1444) - | 2483 -> One (Sub (r1450) :: r1692) - | 2507 -> One (Sub (r1450) :: r1701) - | 2147 -> One (Sub (r1470) :: r1472) - | 2452 -> One (Sub (r1505) :: r1679) - | 2439 -> One (Sub (r1584) :: r1662) - | 2511 -> One (Sub (r1587) :: r1702) - | 2362 -> One (Sub (r1605) :: r1607) - | 2391 -> One (Sub (r1624) :: r1626) - | 1193 -> One (r0) - | 1192 -> One (r2) - | 2865 -> One (r4) - | 2864 -> One (r5) - | 2863 -> One (r6) - | 2862 -> One (r7) - | 2861 -> One (r8) + | 144 -> One (Sub (r78) :: r101) + | 184 -> One (Sub (r78) :: r158) + | 197 -> One (Sub (r78) :: r168) + | 213 -> One (Sub (r78) :: r170) + | 1031 -> One (Sub (r78) :: r801) + | 345 -> One (Sub (r105) :: r299) + | 2804 -> One (Sub (r105) :: r1800) + | 2099 -> One (Sub (r112) :: r1408) + | 160 -> One (Sub (r117) :: r118) + | 663 -> One (Sub (r123) :: r533) + | 672 -> One (Sub (r123) :: r543) + | 2112 -> One (Sub (r151) :: r1438) + | 202 -> One (Sub (r153) :: r169) + | 176 -> One (Sub (r155) :: r157) + | 186 -> One (Sub (r160) :: r161) + | 735 -> One (Sub (r160) :: r575) + | 216 -> One (Sub (r176) :: r177) + | 2598 -> One (Sub (r176) :: r1689) + | 2613 -> One (Sub (r176) :: r1692) + | 981 -> One (Sub (r192) :: r749) + | 1191 -> One (Sub (r192) :: r901) + | 495 -> One (Sub (r213) :: r359) + | 243 -> One (Sub (r215) :: r222) + | 488 -> One (Sub (r215) :: r358) + | 244 -> One (Sub (r228) :: r230) + | 249 -> One (Sub (r243) :: r244) + | 287 -> One (Sub (r243) :: r270) + | 349 -> One (Sub (r243) :: r302) + | 252 -> One (Sub (r250) :: r252) + | 891 -> One (Sub (r250) :: r674) + | 928 -> One (Sub (r250) :: r700) + | 2644 -> One (Sub (r250) :: r1717) + | 273 -> One (Sub (r261) :: r262) + | 518 -> One (Sub (r370) :: r372) + | 538 -> One (Sub (r378) :: r379) + | 539 -> One (Sub (r378) :: r380) + | 969 -> One (Sub (r378) :: r732) + | 971 -> One (Sub (r378) :: r737) + | 1101 -> One (Sub (r378) :: r836) + | 1102 -> One (Sub (r378) :: r837) + | 1141 -> One (Sub (r378) :: r868) + | 1165 -> One (Sub (r378) :: r886) + | 1181 -> One (Sub (r378) :: r897) + | 1359 -> One (Sub (r378) :: r1006) + | 1496 -> One (Sub (r378) :: r1093) + | 1793 -> One (Sub (r378) :: r1232) + | 2503 -> One (Sub (r378) :: r1656) + | 2518 -> One (Sub (r378) :: r1664) + | 2040 -> One (Sub (r409) :: r1362) + | 2647 -> One (Sub (r409) :: r1722) + | 1620 -> One (Sub (r489) :: r1142) + | 631 -> One (Sub (r491) :: r494) + | 650 -> One (Sub (r521) :: r523) + | 671 -> One (Sub (r528) :: r542) + | 691 -> One (Sub (r528) :: r550) + | 724 -> One (Sub (r528) :: r569) + | 752 -> One (Sub (r528) :: r583) + | 795 -> One (Sub (r528) :: r595) + | 813 -> One (Sub (r528) :: r603) + | 826 -> One (Sub (r528) :: r609) + | 830 -> One (Sub (r528) :: r612) + | 840 -> One (Sub (r528) :: r618) + | 1059 -> One (Sub (r528) :: r814) + | 1439 -> One (Sub (r528) :: r1059) + | 2477 -> One (Sub (r528) :: r1647) + | 2490 -> One (Sub (r528) :: r1653) + | 670 -> One (Sub (r537) :: r539) + | 846 -> One (Sub (r621) :: r623) + | 858 -> One (Sub (r621) :: r630) + | 865 -> One (Sub (r621) :: r634) + | 866 -> One (Sub (r621) :: r637) + | 932 -> One (Sub (r701) :: r702) + | 963 -> One (Sub (r720) :: r722) + | 1732 -> One (Sub (r720) :: r1210) + | 965 -> One (Sub (r726) :: r728) + | 987 -> One (Sub (r770) :: r771) + | 1024 -> One (Sub (r793) :: r795) + | 1390 -> One (Sub (r793) :: r1029) + | 2242 -> One (Sub (r793) :: r1537) + | 2266 -> One (Sub (r793) :: r1548) + | 1046 -> One (Sub (r806) :: r808) + | 1639 -> One (Sub (r1155) :: r1159) + | 1637 -> One (Sub (r1157) :: r1158) + | 1729 -> One (Sub (r1206) :: r1208) + | 1871 -> One (Sub (r1254) :: r1264) + | 1882 -> One (Sub (r1274) :: r1275) + | 1883 -> One (Sub (r1286) :: r1288) + | 2565 -> One (Sub (r1286) :: r1678) + | 2579 -> One (Sub (r1286) :: r1680) + | 2587 -> One (Sub (r1286) :: r1684) + | 2592 -> One (Sub (r1286) :: r1686) + | 2442 -> One (Sub (r1392) :: r1644) + | 2456 -> One (Sub (r1392) :: r1646) + | 2283 -> One (Sub (r1411) :: r1561) + | 2374 -> One (Sub (r1414) :: r1612) + | 2108 -> One (Sub (r1435) :: r1437) + | 2661 -> One (Sub (r1461) :: r1730) + | 2296 -> One (Sub (r1472) :: r1578) + | 2206 -> One (Sub (r1504) :: r1506) + | 2235 -> One (Sub (r1523) :: r1525) + | 2327 -> One (Sub (r1591) :: r1593) + | 2370 -> One (Sub (r1591) :: r1611) + | 2668 -> One (Sub (r1704) :: r1731) + | 1199 -> One (r0) + | 1198 -> One (r2) + | 2867 -> One (r4) + | 2866 -> One (r5) + | 2865 -> One (r6) + | 2864 -> One (r7) + | 2863 -> One (r8) | 59 -> One (r9) | 54 -> One (r10) | 55 -> One (r12) | 58 -> One (r14) | 57 -> One (r15) - | 2546 -> One (r16) - | 2550 -> One (r18) - | 2860 -> One (r20) - | 2859 -> One (r21) + | 2419 -> One (r16) + | 2423 -> One (r18) + | 2862 -> One (r20) + | 2861 -> One (r21) | 61 -> One (r22) - | 111 | 621 | 958 | 1740 -> One (r23) + | 111 | 629 | 964 | 1746 -> One (r23) | 120 -> One (r25) - | 336 | 2794 -> One (r27) - | 262 -> One (r29) - | 309 -> One (r31) - | 362 -> One (r33) - | 2072 -> One (r35) - | 2858 -> One (r37) - | 2857 -> One (r38) - | 2856 -> One (r39) + | 344 | 2803 -> One (r27) + | 270 -> One (r29) + | 317 -> One (r31) + | 370 -> One (r33) + | 2083 -> One (r35) + | 2860 -> One (r37) + | 2859 -> One (r38) + | 2858 -> One (r39) | 113 -> One (r40) | 112 -> One (r41) | 64 -> One (r42) @@ -3517,7 +3527,7 @@ let recover = | 108 -> One (r44) | 110 -> One (r46) | 109 -> One (r47) - | 65 | 1368 -> One (r48) + | 65 | 1374 -> One (r48) | 91 -> One (r49) | 90 -> One (r50) | 87 -> One (r51) @@ -3526,1824 +3536,1796 @@ let recover = | 94 -> One (r54) | 99 -> One (r55) | 98 -> One (r56) - | 121 | 162 -> One (r57) + | 121 | 157 -> One (r57) | 122 -> One (r58) | 125 -> One (r59) | 138 -> One (r63) | 137 -> One (r64) | 129 -> One (r65) | 128 -> One (r66) - | 2673 -> One (r68) - | 2672 -> One (r69) - | 2671 -> One (r70) - | 2670 -> One (r71) - | 2669 -> One (r72) - | 2668 -> One (r73) + | 2550 -> One (r68) + | 2549 -> One (r69) + | 2548 -> One (r70) + | 2547 -> One (r71) + | 2546 -> One (r72) + | 2545 -> One (r73) | 134 -> One (r75) - | 153 -> One (r77) - | 2844 -> One (r84) - | 2843 -> One (r85) + | 145 -> One (r77) + | 2846 -> One (r84) + | 2845 -> One (r85) | 133 -> One (r86) | 132 -> One (r87) - | 2842 -> One (r88) - | 2841 -> One (r89) - | 2840 -> One (r90) - | 2721 -> One (r91) - | 2720 -> One (r92) - | 161 -> One (r93) - | 160 -> One (r94) - | 159 -> One (r95) - | 148 -> One (r96) - | 147 -> One (r97) + | 2843 -> One (r88) + | 2842 -> One (r89) + | 2841 -> One (r90) + | 2730 -> One (r91) + | 2729 -> One (r92) + | 156 -> One (r93) + | 155 -> One (r94) + | 154 -> One (r95) + | 2840 -> One (r96) + | 148 -> One (r97) | 142 -> One (r98) - | 217 | 1917 -> One (r99) - | 216 | 1916 -> One (r100) - | 145 -> One (r101) - | 152 -> One (r102) - | 151 -> One (r103) - | 150 -> One (r104) - | 2830 -> One (r105) - | 240 | 656 -> One (r106) - | 351 -> One (r107) - | 2814 -> One (r109) - | 2813 -> One (r110) - | 2812 -> One (r111) - | 157 -> One (r112) - | 2349 -> One (r113) - | 2719 -> One (r115) - | 2718 -> One (r116) - | 164 -> One (r117) - | 2589 -> One (r118) - | 2588 -> One (r119) - | 2587 -> One (r120) - | 2586 | 2708 -> One (r121) - | 255 -> One (r128) - | 287 -> One (r130) - | 667 -> One (r132) - | 1935 -> One (r134) - | 2337 -> One (r136) - | 2336 -> One (r137) - | 2335 | 2580 -> One (r138) - | 2704 -> One (r140) - | 2717 -> One (r142) - | 2716 -> One (r143) - | 2715 -> One (r144) - | 2714 -> One (r145) - | 2713 -> One (r146) - | 2563 -> One (r150) - | 586 -> One (r151) - | 585 -> One (r152) - | 207 | 584 -> One (r153) - | 2702 -> One (r157) - | 2701 -> One (r158) - | 2700 -> One (r159) - | 2699 -> One (r160) - | 2698 -> One (r161) - | 181 | 199 -> One (r163) - | 180 | 198 -> One (r164) - | 179 | 197 -> One (r165) - | 191 -> One (r167) - | 196 -> One (r169) - | 193 -> One (r171) - | 192 -> One (r172) - | 183 -> One (r173) - | 185 -> One (r174) - | 188 | 202 -> One (r175) - | 187 | 201 -> One (r176) - | 186 | 200 -> One (r177) - | 190 -> One (r178) - | 195 -> One (r179) - | 206 -> One (r180) - | 2313 -> One (r181) - | 2693 -> One (r183) - | 2690 -> One (r184) - | 1873 -> One (r185) - | 1872 -> One (r186) - | 213 -> One (r187) - | 2665 -> One (r188) - | 2653 -> One (r189) - | 2652 -> One (r190) - | 219 -> One (r191) - | 2651 -> One (r192) - | 221 -> One (r193) - | 222 -> One (r194) - | 1754 -> One (r195) - | 1752 -> One (r196) - | 976 -> One (r197) - | 1149 -> One (r199) - | 2650 -> One (r201) - | 2649 -> One (r202) - | 2648 -> One (r203) - | 225 -> One (r204) - | 224 -> One (r205) - | 2647 -> One (r206) - | 2634 -> One (r207) - | 2633 -> One (r208) - | 517 -> One (r209) - | 516 | 1383 | 1443 -> One (r210) - | 2632 -> One (r212) - | 522 -> One (r213) - | 521 -> One (r214) - | 520 -> One (r215) - | 228 -> One (r216) - | 515 -> One (r217) - | 499 -> One (r218) - | 484 -> One (r220) - | 509 -> One (r222) - | 508 -> One (r223) - | 232 -> One (r224) - | 234 -> One (r225) - | 233 -> One (r226) - | 507 -> One (r227) - | 506 -> One (r228) - | 482 -> One (r229) - | 481 -> One (r230) - | 498 -> One (r232) - | 489 -> One (r233) - | 501 -> One (r235) - | 500 -> One (r236) - | 479 -> One (r237) - | 478 -> One (r238) - | 477 -> One (r239) - | 476 -> One (r240) - | 475 -> One (r241) - | 474 -> One (r242) - | 473 -> One (r243) - | 472 -> One (r244) - | 239 -> One (r245) - | 242 -> One (r246) - | 252 -> One (r248) - | 253 -> One (r250) - | 251 | 2254 -> One (r251) - | 250 | 2253 -> One (r252) - | 243 | 2252 -> One (r253) - | 249 -> One (r255) - | 246 -> One (r257) - | 245 -> One (r258) - | 248 -> One (r259) - | 247 -> One (r260) - | 471 -> One (r263) - | 264 -> One (r265) - | 266 -> One (r266) - | 268 -> One (r268) - | 271 -> One (r269) - | 270 -> One (r270) - | 411 -> One (r271) - | 410 -> One (r272) - | 409 -> One (r273) - | 282 -> One (r274) - | 278 -> One (r275) - | 280 -> One (r276) - | 285 -> One (r277) - | 284 | 659 -> One (r278) - | 283 | 658 -> One (r279) - | 292 -> One (r280) - | 291 -> One (r281) - | 290 -> One (r282) - | 296 -> One (r283) - | 295 -> One (r284) - | 294 -> One (r285) - | 323 -> One (r286) - | 322 -> One (r287) - | 387 -> One (r288) - | 317 -> One (r289) - | 316 -> One (r290) - | 315 -> One (r291) - | 314 -> One (r292) - | 308 -> One (r293) - | 301 -> One (r294) - | 307 -> One (r295) - | 306 -> One (r296) - | 305 -> One (r297) - | 304 -> One (r298) - | 303 -> One (r299) - | 321 -> One (r300) - | 327 -> One (r301) - | 330 -> One (r302) - | 329 -> One (r303) - | 334 -> One (r304) - | 345 -> One (r305) - | 340 -> One (r306) - | 339 -> One (r307) - | 342 -> One (r308) - | 350 -> One (r309) - | 349 -> One (r310) - | 348 -> One (r311) - | 355 -> One (r312) - | 354 -> One (r313) - | 359 -> One (r314) - | 365 -> One (r315) - | 364 -> One (r316) - | 370 -> One (r317) - | 369 -> One (r318) - | 368 -> One (r319) - | 367 -> One (r320) - | 375 -> One (r321) - | 374 -> One (r322) - | 373 -> One (r323) - | 372 -> One (r324) - | 377 -> One (r325) - | 381 -> One (r326) - | 380 -> One (r327) - | 379 -> One (r328) - | 385 -> One (r329) - | 384 -> One (r330) - | 383 -> One (r331) - | 395 -> One (r332) - | 394 -> One (r333) - | 393 -> One (r334) - | 392 -> One (r335) - | 391 -> One (r336) - | 399 -> One (r337) - | 403 -> One (r338) - | 402 -> One (r339) - | 407 -> One (r340) - | 415 -> One (r341) - | 419 -> One (r342) - | 418 -> One (r343) - | 423 -> One (r344) - | 448 -> One (r345) - | 447 -> One (r346) - | 446 -> One (r347) - | 432 -> One (r348) - | 431 -> One (r349) - | 430 -> One (r350) - | 429 -> One (r351) - | 428 -> One (r352) - | 436 -> One (r353) - | 440 -> One (r354) - | 439 -> One (r355) - | 444 -> One (r356) - | 452 -> One (r357) - | 456 -> One (r358) - | 455 -> One (r359) - | 460 -> One (r360) - | 463 -> One (r361) - | 467 -> One (r362) - | 486 -> One (r363) - | 485 -> One (r364) - | 488 -> One (r365) - | 497 -> One (r366) - | 496 -> One (r368) - | 493 -> One (r369) - | 492 -> One (r370) - | 495 -> One (r371) - | 505 -> One (r372) - | 504 -> One (r373) - | 503 -> One (r374) - | 514 -> One (r375) - | 512 -> One (r377) - | 511 -> One (r378) - | 519 -> One (r379) - | 528 -> One (r380) - | 527 -> One (r381) - | 526 -> One (r382) - | 525 -> One (r383) - | 2625 -> One (r385) - | 1968 -> One (r386) - | 2624 -> One (r387) - | 2623 -> One (r388) - | 2622 -> One (r389) - | 534 -> One (r390) - | 533 -> One (r391) - | 2618 -> One (r392) - | 2617 -> One (r393) - | 536 -> One (r394) - | 2615 -> One (r395) - | 2605 -> One (r396) - | 2604 -> One (r397) - | 2602 -> One (r398) - | 543 -> One (r399) - | 542 -> One (r400) - | 541 -> One (r401) - | 540 -> One (r402) - | 539 -> One (r403) - | 550 -> One (r404) - | 549 -> One (r405) - | 548 -> One (r406) - | 547 -> One (r407) - | 546 -> One (r408) - | 552 -> One (r409) - | 557 -> One (r410) - | 737 -> One (r411) - | 736 | 986 | 1034 | 1055 -> One (r412) - | 726 | 984 | 985 | 1017 | 1054 | 2357 -> One (r413) - | 566 -> One (r414) - | 569 -> One (r416) - | 568 -> One (r417) - | 565 -> One (r418) - | 564 -> One (r419) - | 2599 -> One (r420) - | 2598 -> One (r421) - | 2597 -> One (r422) - | 574 -> One (r423) - | 573 -> One (r424) - | 572 -> One (r425) - | 2596 -> One (r426) - | 2595 -> One (r427) - | 577 -> One (r428) - | 2576 -> One (r429) - | 2594 -> One (r431) - | 2593 -> One (r432) - | 2592 -> One (r433) - | 2591 -> One (r434) - | 2590 -> One (r435) - | 2573 -> One (r439) - | 2572 -> One (r440) - | 2566 -> One (r441) - | 2565 -> One (r442) - | 2564 -> One (r443) - | 2562 -> One (r445) - | 2561 -> One (r446) - | 588 -> One (r447) - | 2560 -> One (r448) - | 2017 -> One (r449) - | 2016 -> One (r450) - | 2015 -> One (r451) - | 2014 -> One (r452) - | 2013 -> One (r453) - | 2012 -> One (r454) - | 596 -> One (r455) - | 595 -> One (r456) - | 942 -> One (r457) - | 941 -> One (r458) - | 2002 -> One (r459) - | 2001 -> One (r460) - | 599 -> One (r461) - | 1986 -> One (r462) - | 604 -> One (r463) - | 610 -> One (r465) - | 611 -> One (r467) - | 603 -> One (r468) - | 602 -> One (r469) - | 608 -> One (r470) - | 606 -> One (r471) - | 607 -> One (r472) - | 609 -> One (r473) - | 1985 -> One (r474) - | 1984 -> One (r475) - | 1983 -> One (r476) - | 616 -> One (r477) - | 615 -> One (r478) - | 1978 -> One (r479) - | 1977 -> One (r480) - | 1962 -> One (r481) - | 1955 -> One (r482) - | 1954 -> One (r483) - | 838 -> One (r484) - | 1616 -> One (r486) - | 1613 -> One (r488) - | 1612 -> One (r489) - | 1611 -> One (r490) - | 822 -> One (r491) - | 812 -> One (r492) - | 811 -> One (r493) - | 791 -> One (r494) - | 630 -> One (r495) - | 629 -> One (r496) - | 628 -> One (r497) - | 627 -> One (r498) - | 626 -> One (r499) + | 225 | 1919 -> One (r99) + | 224 | 1918 -> One (r100) + | 146 -> One (r101) + | 2839 -> One (r102) + | 212 | 248 | 664 | 2611 -> One (r103) + | 359 -> One (r104) + | 2823 -> One (r106) + | 2822 -> One (r107) + | 2821 -> One (r108) + | 152 -> One (r109) + | 2728 -> One (r110) + | 166 -> One (r111) + | 165 -> One (r113) + | 164 -> One (r114) + | 159 -> One (r115) + | 161 -> One (r116) + | 163 -> One (r118) + | 263 -> One (r120) + | 295 -> One (r122) + | 675 -> One (r124) + | 1946 -> One (r126) + | 2460 -> One (r128) + | 2459 -> One (r129) + | 2455 | 2578 -> One (r130) + | 2608 -> One (r132) + | 2621 -> One (r134) + | 2620 -> One (r135) + | 2619 -> One (r136) + | 2618 -> One (r137) + | 2617 -> One (r138) + | 2610 -> One (r139) + | 169 -> One (r140) + | 168 -> One (r141) + | 2606 -> One (r142) + | 2605 -> One (r143) + | 2604 -> One (r144) + | 2603 -> One (r145) + | 2602 -> One (r146) + | 211 -> One (r147) + | 183 | 207 -> One (r148) + | 182 | 206 -> One (r149) + | 181 | 205 -> One (r150) + | 199 -> One (r152) + | 204 -> One (r154) + | 201 -> One (r156) + | 200 -> One (r157) + | 185 -> One (r158) + | 187 -> One (r159) + | 189 -> One (r161) + | 191 -> One (r162) + | 190 -> One (r163) + | 193 -> One (r164) + | 196 | 210 -> One (r165) + | 195 | 209 -> One (r166) + | 194 | 208 -> One (r167) + | 198 -> One (r168) + | 203 -> One (r169) + | 214 -> One (r170) + | 2436 -> One (r171) + | 594 -> One (r172) + | 593 -> One (r173) + | 215 | 592 -> One (r174) + | 2582 -> One (r175) + | 2583 -> One (r177) + | 2568 -> One (r178) + | 1879 -> One (r179) + | 1878 -> One (r180) + | 221 -> One (r181) + | 2542 -> One (r182) + | 2530 -> One (r183) + | 2529 -> One (r184) + | 227 -> One (r185) + | 2528 -> One (r186) + | 229 -> One (r187) + | 230 -> One (r188) + | 1760 -> One (r189) + | 1758 -> One (r190) + | 982 -> One (r191) + | 1155 -> One (r193) + | 2527 -> One (r195) + | 2526 -> One (r196) + | 2525 -> One (r197) + | 233 -> One (r198) + | 232 -> One (r199) + | 2524 -> One (r200) + | 2511 -> One (r201) + | 2510 -> One (r202) + | 525 -> One (r203) + | 524 | 1389 | 1449 -> One (r204) + | 2509 -> One (r206) + | 530 -> One (r207) + | 529 -> One (r208) + | 528 -> One (r209) + | 236 -> One (r210) + | 523 -> One (r211) + | 507 -> One (r212) + | 492 -> One (r214) + | 517 -> One (r216) + | 516 -> One (r217) + | 240 -> One (r218) + | 242 -> One (r219) + | 241 -> One (r220) + | 515 -> One (r221) + | 514 -> One (r222) + | 490 -> One (r223) + | 489 -> One (r224) + | 506 -> One (r226) + | 497 -> One (r227) + | 509 -> One (r229) + | 508 -> One (r230) + | 487 -> One (r231) + | 486 -> One (r232) + | 485 -> One (r233) + | 484 -> One (r234) + | 483 -> One (r235) + | 482 -> One (r236) + | 481 -> One (r237) + | 480 -> One (r238) + | 247 -> One (r239) + | 250 -> One (r240) + | 260 -> One (r242) + | 261 -> One (r244) + | 259 | 2341 -> One (r245) + | 258 | 2340 -> One (r246) + | 251 | 2339 -> One (r247) + | 257 -> One (r249) + | 254 -> One (r251) + | 253 -> One (r252) + | 256 -> One (r253) + | 255 -> One (r254) + | 479 -> One (r257) + | 272 -> One (r259) + | 274 -> One (r260) + | 276 -> One (r262) + | 279 -> One (r263) + | 278 -> One (r264) + | 419 -> One (r265) + | 418 -> One (r266) + | 417 -> One (r267) + | 290 -> One (r268) + | 286 -> One (r269) + | 288 -> One (r270) + | 293 -> One (r271) + | 292 | 667 -> One (r272) + | 291 | 666 -> One (r273) + | 300 -> One (r274) + | 299 -> One (r275) + | 298 -> One (r276) + | 304 -> One (r277) + | 303 -> One (r278) + | 302 -> One (r279) + | 331 -> One (r280) + | 330 -> One (r281) + | 395 -> One (r282) + | 325 -> One (r283) + | 324 -> One (r284) + | 323 -> One (r285) + | 322 -> One (r286) + | 316 -> One (r287) + | 309 -> One (r288) + | 315 -> One (r289) + | 314 -> One (r290) + | 313 -> One (r291) + | 312 -> One (r292) + | 311 -> One (r293) + | 329 -> One (r294) + | 335 -> One (r295) + | 338 -> One (r296) + | 337 -> One (r297) + | 342 -> One (r298) + | 353 -> One (r299) + | 348 -> One (r300) + | 347 -> One (r301) + | 350 -> One (r302) + | 358 -> One (r303) + | 357 -> One (r304) + | 356 -> One (r305) + | 363 -> One (r306) + | 362 -> One (r307) + | 367 -> One (r308) + | 373 -> One (r309) + | 372 -> One (r310) + | 378 -> One (r311) + | 377 -> One (r312) + | 376 -> One (r313) + | 375 -> One (r314) + | 383 -> One (r315) + | 382 -> One (r316) + | 381 -> One (r317) + | 380 -> One (r318) + | 385 -> One (r319) + | 389 -> One (r320) + | 388 -> One (r321) + | 387 -> One (r322) + | 393 -> One (r323) + | 392 -> One (r324) + | 391 -> One (r325) + | 403 -> One (r326) + | 402 -> One (r327) + | 401 -> One (r328) + | 400 -> One (r329) + | 399 -> One (r330) + | 407 -> One (r331) + | 411 -> One (r332) + | 410 -> One (r333) + | 415 -> One (r334) + | 423 -> One (r335) + | 427 -> One (r336) + | 426 -> One (r337) + | 431 -> One (r338) + | 456 -> One (r339) + | 455 -> One (r340) + | 454 -> One (r341) + | 440 -> One (r342) + | 439 -> One (r343) + | 438 -> One (r344) + | 437 -> One (r345) + | 436 -> One (r346) + | 444 -> One (r347) + | 448 -> One (r348) + | 447 -> One (r349) + | 452 -> One (r350) + | 460 -> One (r351) + | 464 -> One (r352) + | 463 -> One (r353) + | 468 -> One (r354) + | 471 -> One (r355) + | 475 -> One (r356) + | 494 -> One (r357) + | 493 -> One (r358) + | 496 -> One (r359) + | 505 -> One (r360) + | 504 -> One (r362) + | 501 -> One (r363) + | 500 -> One (r364) + | 503 -> One (r365) + | 513 -> One (r366) + | 512 -> One (r367) + | 511 -> One (r368) + | 522 -> One (r369) + | 520 -> One (r371) + | 519 -> One (r372) + | 527 -> One (r373) + | 536 -> One (r374) + | 535 -> One (r375) + | 534 -> One (r376) + | 533 -> One (r377) + | 2502 -> One (r379) + | 1979 -> One (r380) + | 2501 -> One (r381) + | 2500 -> One (r382) + | 2499 -> One (r383) + | 542 -> One (r384) + | 541 -> One (r385) + | 2495 -> One (r386) + | 2494 -> One (r387) + | 544 -> One (r388) + | 2492 -> One (r389) + | 2482 -> One (r390) + | 2481 -> One (r391) + | 2479 -> One (r392) + | 551 -> One (r393) + | 550 -> One (r394) + | 549 -> One (r395) + | 548 -> One (r396) + | 547 -> One (r397) + | 558 -> One (r398) + | 557 -> One (r399) + | 556 -> One (r400) + | 555 -> One (r401) + | 554 -> One (r402) + | 560 -> One (r403) + | 565 -> One (r404) + | 743 -> One (r405) + | 742 | 992 | 1040 | 1061 -> One (r406) + | 734 | 990 | 991 | 1023 | 1060 | 2201 -> One (r407) + | 574 -> One (r408) + | 577 -> One (r410) + | 576 -> One (r411) + | 573 -> One (r412) + | 572 -> One (r413) + | 2476 -> One (r414) + | 2475 -> One (r415) + | 2474 -> One (r416) + | 582 -> One (r417) + | 581 -> One (r418) + | 580 -> One (r419) + | 2473 -> One (r420) + | 2472 -> One (r421) + | 585 -> One (r422) + | 2451 -> One (r423) + | 2471 -> One (r425) + | 2470 -> One (r426) + | 2469 -> One (r427) + | 2468 -> One (r428) + | 2467 -> One (r429) + | 2466 -> One (r433) + | 2465 -> One (r434) + | 2464 -> One (r435) + | 2463 | 2612 -> One (r436) + | 2448 -> One (r441) + | 2447 -> One (r442) + | 2439 -> One (r443) + | 2438 -> One (r444) + | 2437 -> One (r445) + | 2435 -> One (r449) + | 2434 -> One (r450) + | 596 -> One (r451) + | 2433 -> One (r452) + | 2028 -> One (r453) + | 2027 -> One (r454) + | 2026 -> One (r455) + | 2025 -> One (r456) + | 2024 -> One (r457) + | 2023 -> One (r458) + | 604 -> One (r459) + | 603 -> One (r460) + | 948 -> One (r461) + | 947 -> One (r462) + | 2013 -> One (r463) + | 2012 -> One (r464) + | 607 -> One (r465) + | 1997 -> One (r466) + | 612 -> One (r467) + | 618 -> One (r469) + | 619 -> One (r471) + | 611 -> One (r472) + | 610 -> One (r473) + | 616 -> One (r474) + | 614 -> One (r475) + | 615 -> One (r476) + | 617 -> One (r477) + | 1996 -> One (r478) + | 1995 -> One (r479) + | 1994 -> One (r480) + | 624 -> One (r481) + | 623 -> One (r482) + | 1989 -> One (r483) + | 1988 -> One (r484) + | 1973 -> One (r485) + | 1966 -> One (r486) + | 1965 -> One (r487) + | 844 -> One (r488) + | 1622 -> One (r490) + | 1619 -> One (r492) + | 1618 -> One (r493) + | 1617 -> One (r494) + | 828 -> One (r495) + | 818 -> One (r496) + | 817 -> One (r497) + | 797 -> One (r498) + | 638 -> One (r499) | 637 -> One (r500) | 636 -> One (r501) | 635 -> One (r502) | 634 -> One (r503) - | 633 -> One (r504) - | 786 -> One (r505) - | 783 -> One (r506) - | 641 -> One (r507) - | 766 -> One (r508) - | 765 -> One (r510) - | 764 -> One (r511) - | 643 -> One (r512) - | 777 -> One (r514) - | 649 -> One (r515) - | 646 -> One (r516) - | 645 -> One (r518) - | 644 -> One (r519) - | 648 -> One (r520) - | 776 -> One (r521) - | 673 | 1411 -> One (r523) - | 775 -> One (r525) - | 653 -> One (r526) - | 652 -> One (r527) - | 654 -> One (r528) - | 657 -> One (r529) - | 748 -> One (r530) - | 738 -> One (r531) - | 774 -> One (r532) - | 773 -> One (r534) - | 772 -> One (r535) - | 770 -> One (r536) - | 675 -> One (r537) - | 674 -> One (r538) - | 665 -> One (r539) - | 669 -> One (r540) - | 682 -> One (r541) - | 681 -> One (r542) - | 680 -> One (r543) - | 679 -> One (r544) - | 678 -> One (r545) - | 684 -> One (r546) - | 690 -> One (r549) - | 687 -> One (r550) - | 763 -> One (r551) - | 762 -> One (r552) - | 694 -> One (r553) - | 696 -> One (r554) - | 703 -> One (r555) - | 699 -> One (r556) - | 698 -> One (r557) - | 706 -> One (r558) - | 721 -> One (r559) - | 715 -> One (r560) - | 714 -> One (r561) - | 713 -> One (r562) - | 712 -> One (r563) - | 711 -> One (r564) - | 717 -> One (r565) - | 720 -> One (r566) - | 724 -> One (r567) - | 757 -> One (r568) - | 728 -> One (r569) + | 645 -> One (r504) + | 644 -> One (r505) + | 643 -> One (r506) + | 642 -> One (r507) + | 641 -> One (r508) + | 792 -> One (r509) + | 789 -> One (r510) + | 649 -> One (r511) + | 772 -> One (r512) + | 771 -> One (r514) + | 770 -> One (r515) + | 651 -> One (r516) + | 783 -> One (r518) + | 657 -> One (r519) + | 654 -> One (r520) + | 653 -> One (r522) + | 652 -> One (r523) + | 656 -> One (r524) + | 782 -> One (r525) + | 681 | 1417 -> One (r527) + | 781 -> One (r529) + | 661 -> One (r530) + | 660 -> One (r531) + | 662 -> One (r532) + | 665 -> One (r533) + | 754 -> One (r534) + | 744 -> One (r535) + | 780 -> One (r536) + | 779 -> One (r538) + | 778 -> One (r539) + | 776 -> One (r540) + | 683 -> One (r541) + | 682 -> One (r542) + | 673 -> One (r543) + | 677 -> One (r544) + | 690 -> One (r545) + | 689 -> One (r546) + | 688 -> One (r547) + | 687 -> One (r548) + | 686 -> One (r549) + | 692 -> One (r550) + | 698 -> One (r553) + | 695 -> One (r554) + | 769 -> One (r555) + | 768 -> One (r556) + | 702 -> One (r557) + | 704 -> One (r558) + | 711 -> One (r559) + | 707 -> One (r560) + | 706 -> One (r561) + | 714 -> One (r562) + | 729 -> One (r563) + | 723 -> One (r564) + | 722 -> One (r565) + | 721 -> One (r566) + | 720 -> One (r567) + | 719 -> One (r568) + | 725 -> One (r569) + | 728 -> One (r570) | 732 -> One (r571) - | 731 -> One (r572) - | 730 -> One (r573) - | 735 -> One (r574) - | 734 -> One (r575) - | 745 -> One (r576) - | 744 -> One (r577) - | 743 -> One (r578) - | 742 -> One (r579) - | 741 -> One (r580) - | 747 -> One (r581) - | 752 -> One (r582) - | 751 | 992 -> One (r583) - | 750 | 987 | 1035 | 1056 -> One (r584) - | 754 -> One (r585) - | 756 -> One (r586) - | 759 -> One (r587) - | 758 -> One (r588) - | 761 -> One (r589) - | 781 -> One (r590) - | 785 -> One (r591) - | 788 -> One (r592) - | 790 -> One (r593) - | 795 -> One (r594) - | 809 -> One (r595) - | 806 -> One (r596) - | 805 -> One (r597) - | 804 -> One (r598) - | 803 -> One (r599) - | 802 -> One (r600) - | 808 -> One (r601) - | 819 -> One (r602) - | 818 -> One (r603) - | 817 -> One (r604) - | 816 -> One (r605) - | 815 -> One (r606) - | 821 -> One (r607) - | 836 -> One (r608) - | 826 -> One (r609) - | 825 -> One (r610) - | 833 -> One (r611) - | 832 -> One (r612) - | 831 -> One (r613) - | 830 -> One (r614) - | 829 -> One (r615) - | 835 -> One (r616) - | 857 -> One (r617) + | 763 -> One (r572) + | 738 -> One (r573) + | 737 -> One (r574) + | 736 -> One (r575) + | 741 -> One (r576) + | 740 -> One (r577) + | 751 -> One (r578) + | 750 -> One (r579) + | 749 -> One (r580) + | 748 -> One (r581) + | 747 -> One (r582) + | 753 -> One (r583) + | 758 -> One (r584) + | 757 | 998 -> One (r585) + | 756 | 993 | 1041 | 1062 -> One (r586) + | 760 -> One (r587) + | 762 -> One (r588) + | 765 -> One (r589) + | 764 -> One (r590) + | 767 -> One (r591) + | 787 -> One (r592) + | 791 -> One (r593) + | 794 -> One (r594) + | 796 -> One (r595) + | 801 -> One (r596) + | 815 -> One (r597) + | 812 -> One (r598) + | 811 -> One (r599) + | 810 -> One (r600) + | 809 -> One (r601) + | 808 -> One (r602) + | 814 -> One (r603) + | 825 -> One (r604) + | 824 -> One (r605) + | 823 -> One (r606) + | 822 -> One (r607) + | 821 -> One (r608) + | 827 -> One (r609) + | 842 -> One (r610) + | 832 -> One (r611) + | 831 -> One (r612) + | 839 -> One (r613) + | 838 -> One (r614) + | 837 -> One (r615) + | 836 -> One (r616) + | 835 -> One (r617) | 841 -> One (r618) - | 856 -> One (r620) - | 855 -> One (r621) - | 849 -> One (r622) - | 845 -> One (r623) - | 844 -> One (r624) - | 847 -> One (r625) - | 846 -> One (r626) - | 854 -> One (r627) - | 853 -> One (r628) - | 1948 -> One (r629) - | 1947 -> One (r630) - | 1946 -> One (r631) - | 1945 -> One (r632) - | 1944 -> One (r633) - | 1943 -> One (r634) - | 861 -> One (r635) - | 1942 -> One (r636) - | 1851 -> One (r637) - | 1850 -> One (r638) - | 1849 -> One (r639) - | 1848 -> One (r640) - | 1847 -> One (r641) - | 864 -> One (r642) - | 1382 -> One (r643) - | 1941 -> One (r645) - | 1940 -> One (r646) - | 1939 -> One (r647) - | 1937 -> One (r648) - | 1936 -> One (r649) - | 2526 -> One (r650) - | 1846 -> One (r651) - | 951 -> One (r652) - | 950 -> One (r653) - | 867 -> One (r654) - | 866 -> One (r655) - | 938 -> One (r656) - | 936 -> One (r657) - | 935 -> One (r658) - | 869 -> One (r659) - | 871 -> One (r660) - | 934 -> One (r661) - | 933 -> One (r662) - | 873 -> One (r663) - | 932 -> One (r664) - | 931 -> One (r665) - | 930 -> One (r666) - | 876 -> One (r667) - | 884 -> One (r668) + | 863 -> One (r619) + | 847 -> One (r620) + | 862 -> One (r622) + | 861 -> One (r623) + | 855 -> One (r624) + | 851 -> One (r625) + | 850 -> One (r626) + | 853 -> One (r627) + | 852 -> One (r628) + | 860 -> One (r629) + | 859 -> One (r630) + | 1959 -> One (r631) + | 1958 -> One (r632) + | 1957 -> One (r633) + | 1956 -> One (r634) + | 1955 -> One (r635) + | 1954 -> One (r636) + | 867 -> One (r637) + | 1953 -> One (r638) + | 1857 -> One (r639) + | 1856 -> One (r640) + | 1855 -> One (r641) + | 1854 -> One (r642) + | 1853 -> One (r643) + | 870 -> One (r644) + | 1388 -> One (r645) + | 1952 -> One (r647) + | 1951 -> One (r648) + | 1950 -> One (r649) + | 1948 -> One (r650) + | 1947 -> One (r651) + | 2389 -> One (r652) + | 1852 -> One (r653) + | 957 -> One (r654) + | 956 -> One (r655) + | 873 -> One (r656) + | 872 -> One (r657) + | 944 -> One (r658) + | 942 -> One (r659) + | 941 -> One (r660) + | 875 -> One (r661) + | 877 -> One (r662) + | 940 -> One (r663) + | 939 -> One (r664) + | 879 -> One (r665) + | 938 -> One (r666) + | 937 -> One (r667) + | 936 -> One (r668) | 882 -> One (r669) - | 881 -> One (r670) - | 878 -> One (r671) - | 928 -> One (r672) - | 892 -> One (r673) - | 891 -> One (r674) - | 888 -> One (r675) - | 887 -> One (r676) - | 895 -> One (r677) - | 894 -> One (r678) - | 899 -> One (r679) - | 898 -> One (r680) - | 897 -> One (r681) - | 912 -> One (r682) - | 911 -> One (r684) - | 905 -> One (r686) - | 904 -> One (r687) - | 903 -> One (r688) - | 902 -> One (r689) - | 901 -> One (r690) - | 910 -> One (r691) - | 915 -> One (r693) - | 917 -> One (r694) - | 920 -> One (r695) - | 919 -> One (r696) - | 921 | 2932 -> One (r697) - | 923 -> One (r698) - | 927 -> One (r700) - | 940 -> One (r701) - | 945 -> One (r702) - | 944 -> One (r703) - | 1840 -> One (r704) - | 1480 | 1694 | 1707 | 1720 | 1831 | 1843 | 1965 -> One (r705) - | 1830 -> One (r707) - | 1829 -> One (r708) - | 1820 -> One (r709) - | 1817 -> One (r710) - | 955 -> One (r711) - | 1816 -> One (r712) - | 1732 -> One (r713) - | 1731 -> One (r714) - | 1730 -> One (r715) - | 1735 -> One (r717) - | 1811 -> One (r719) - | 1810 -> One (r720) - | 1359 -> One (r721) - | 1346 -> One (r722) - | 1809 -> One (r723) - | 1808 -> One (r725) - | 1807 -> One (r726) - | 1802 -> One (r727) - | 962 -> One (r728) - | 961 -> One (r729) - | 1801 -> One (r730) - | 1800 -> One (r731) - | 1799 -> One (r732) - | 1793 -> One (r733) - | 1780 -> One (r734) - | 1779 -> One (r735) - | 1776 -> One (r736) - | 968 -> One (r737) - | 967 -> One (r738) - | 1769 -> One (r739) - | 1758 -> One (r740) - | 1757 -> One (r741) - | 971 -> One (r742) - | 970 -> One (r743) - | 1756 -> One (r744) - | 974 -> One (r745) - | 973 -> One (r746) - | 1755 -> One (r747) - | 1751 -> One (r748) - | 1750 -> One (r749) - | 1749 -> One (r750) - | 1075 -> One (r751) - | 1077 -> One (r753) - | 1381 -> One (r755) - | 1076 -> One (r757) - | 1379 -> One (r759) - | 1748 -> One (r761) - | 1083 -> One (r762) - | 1082 -> One (r763) - | 1079 -> One (r764) - | 980 -> One (r765) - | 979 -> One (r766) - | 982 -> One (r767) - | 1016 -> One (r769) - | 1014 -> One (r770) - | 1013 -> One (r771) - | 1012 -> One (r772) - | 991 -> One (r774) - | 990 -> One (r775) - | 989 -> One (r776) - | 993 -> One (r777) - | 996 -> One (r778) - | 998 -> One (r779) - | 1005 -> One (r780) - | 1003 -> One (r781) - | 1002 -> One (r782) - | 1011 -> One (r783) - | 1010 -> One (r784) - | 1009 -> One (r785) - | 1024 | 1032 -> One (r786) - | 1031 -> One (r788) - | 1028 -> One (r790) - | 1030 -> One (r792) - | 1029 -> One (r793) - | 1023 -> One (r794) - | 1022 -> One (r795) - | 1021 -> One (r796) - | 1020 -> One (r797) + | 890 -> One (r670) + | 888 -> One (r671) + | 887 -> One (r672) + | 884 -> One (r673) + | 934 -> One (r674) + | 898 -> One (r675) + | 897 -> One (r676) + | 894 -> One (r677) + | 893 -> One (r678) + | 901 -> One (r679) + | 900 -> One (r680) + | 905 -> One (r681) + | 904 -> One (r682) + | 903 -> One (r683) + | 918 -> One (r684) + | 917 -> One (r686) + | 911 -> One (r688) + | 910 -> One (r689) + | 909 -> One (r690) + | 908 -> One (r691) + | 907 -> One (r692) + | 916 -> One (r693) + | 921 -> One (r695) + | 923 -> One (r696) + | 926 -> One (r697) + | 925 -> One (r698) + | 927 | 2934 -> One (r699) + | 929 -> One (r700) + | 933 -> One (r702) + | 946 -> One (r703) + | 951 -> One (r704) + | 950 -> One (r705) + | 1846 -> One (r706) + | 1486 | 1700 | 1713 | 1726 | 1837 | 1849 | 1976 -> One (r707) + | 1836 -> One (r709) + | 1835 -> One (r710) + | 1826 -> One (r711) + | 1823 -> One (r712) + | 961 -> One (r713) + | 1822 -> One (r714) + | 1738 -> One (r715) + | 1737 -> One (r716) + | 1736 -> One (r717) + | 1741 -> One (r719) + | 1817 -> One (r721) + | 1816 -> One (r722) + | 1365 -> One (r723) + | 1352 -> One (r724) + | 1815 -> One (r725) + | 1814 -> One (r727) + | 1813 -> One (r728) + | 1808 -> One (r729) + | 968 -> One (r730) + | 967 -> One (r731) + | 1807 -> One (r732) + | 1806 -> One (r733) + | 1805 -> One (r734) + | 1799 -> One (r735) + | 1786 -> One (r736) + | 1785 -> One (r737) + | 1782 -> One (r738) + | 974 -> One (r739) + | 973 -> One (r740) + | 1775 -> One (r741) + | 1764 -> One (r742) + | 1763 -> One (r743) + | 977 -> One (r744) + | 976 -> One (r745) + | 1762 -> One (r746) + | 980 -> One (r747) + | 979 -> One (r748) + | 1761 -> One (r749) + | 1757 -> One (r750) + | 1756 -> One (r751) + | 1755 -> One (r752) + | 1081 -> One (r753) + | 1083 -> One (r755) + | 1387 -> One (r757) + | 1082 -> One (r759) + | 1385 -> One (r761) + | 1754 -> One (r763) + | 1089 -> One (r764) + | 1088 -> One (r765) + | 1085 -> One (r766) + | 986 -> One (r767) + | 985 -> One (r768) + | 988 -> One (r769) + | 1022 -> One (r771) + | 1020 -> One (r772) + | 1019 -> One (r773) + | 1018 -> One (r774) + | 997 -> One (r776) + | 996 -> One (r777) + | 995 -> One (r778) + | 999 -> One (r779) + | 1002 -> One (r780) + | 1004 -> One (r781) + | 1011 -> One (r782) + | 1009 -> One (r783) + | 1008 -> One (r784) + | 1017 -> One (r785) + | 1016 -> One (r786) + | 1015 -> One (r787) + | 1030 | 1038 -> One (r788) + | 1037 -> One (r790) + | 1034 -> One (r792) + | 1036 -> One (r794) + | 1035 -> One (r795) + | 1029 -> One (r796) + | 1028 -> One (r797) | 1027 -> One (r798) | 1026 -> One (r799) - | 1039 -> One (r800) - | 1038 -> One (r801) - | 1037 -> One (r802) - | 1041 -> One (r803) - | 1050 -> One (r805) - | 1049 -> One (r806) - | 1046 -> One (r807) - | 1045 -> One (r808) - | 1044 -> One (r809) - | 1048 -> One (r810) - | 1052 -> One (r811) - | 1074 -> One (r812) - | 1060 -> One (r813) - | 1059 -> One (r814) - | 1058 -> One (r815) - | 1063 -> One (r816) - | 1062 -> One (r817) + | 1033 -> One (r800) + | 1032 -> One (r801) + | 1045 -> One (r802) + | 1044 -> One (r803) + | 1043 -> One (r804) + | 1047 -> One (r805) + | 1056 -> One (r807) + | 1055 -> One (r808) + | 1052 -> One (r809) + | 1051 -> One (r810) + | 1050 -> One (r811) + | 1054 -> One (r812) + | 1058 -> One (r813) + | 1080 -> One (r814) + | 1066 -> One (r815) + | 1065 -> One (r816) + | 1064 -> One (r817) | 1069 -> One (r818) | 1068 -> One (r819) - | 1067 -> One (r820) - | 1066 -> One (r821) - | 1071 -> One (r822) - | 1073 -> One (r823) - | 1081 -> One (r824) - | 1087 -> One (r825) - | 1086 -> One (r826) - | 1085 -> One (r827) - | 1747 -> One (r828) - | 1088 -> One (r829) - | 1094 -> One (r830) - | 1093 -> One (r831) - | 1092 -> One (r832) - | 1091 -> One (r833) - | 1742 -> One (r834) - | 1101 -> One (r835) - | 1106 -> One (r836) - | 1105 -> One (r837) - | 1104 | 1739 -> One (r838) - | 1738 -> One (r839) - | 1115 -> One (r840) - | 1114 -> One (r841) - | 1113 -> One (r842) - | 1112 -> One (r843) - | 1111 -> One (r844) - | 1110 -> One (r845) - | 1607 -> One (r846) - | 1122 -> One (r847) - | 1121 -> One (r848) - | 1601 -> One (r849) - | 1606 -> One (r851) - | 1605 -> One (r852) - | 1604 -> One (r853) - | 1603 -> One (r854) - | 1602 -> One (r855) - | 1599 -> One (r856) - | 1127 -> One (r857) - | 1126 -> One (r858) - | 1125 -> One (r859) - | 1124 -> One (r860) - | 1598 -> One (r861) - | 1132 -> One (r862) - | 1131 -> One (r863) - | 1130 -> One (r864) - | 1134 -> One (r865) + | 1075 -> One (r820) + | 1074 -> One (r821) + | 1073 -> One (r822) + | 1072 -> One (r823) + | 1077 -> One (r824) + | 1079 -> One (r825) + | 1087 -> One (r826) + | 1093 -> One (r827) + | 1092 -> One (r828) + | 1091 -> One (r829) + | 1753 -> One (r830) + | 1094 -> One (r831) + | 1100 -> One (r832) + | 1099 -> One (r833) + | 1098 -> One (r834) + | 1097 -> One (r835) + | 1748 -> One (r836) + | 1107 -> One (r837) + | 1112 -> One (r838) + | 1111 -> One (r839) + | 1110 | 1745 -> One (r840) + | 1744 -> One (r841) + | 1121 -> One (r842) + | 1120 -> One (r843) + | 1119 -> One (r844) + | 1118 -> One (r845) + | 1117 -> One (r846) + | 1116 -> One (r847) + | 1613 -> One (r848) + | 1128 -> One (r849) + | 1127 -> One (r850) + | 1607 -> One (r851) + | 1612 -> One (r853) + | 1611 -> One (r854) + | 1610 -> One (r855) + | 1609 -> One (r856) + | 1608 -> One (r857) + | 1605 -> One (r858) + | 1133 -> One (r859) + | 1132 -> One (r860) + | 1131 -> One (r861) + | 1130 -> One (r862) + | 1604 -> One (r863) + | 1138 -> One (r864) + | 1137 -> One (r865) | 1136 -> One (r866) - | 1495 | 1591 -> One (r867) - | 1494 | 1590 -> One (r868) - | 1138 | 1493 -> One (r869) - | 1137 | 1492 -> One (r870) - | 1142 | 1624 | 1701 | 1715 | 1826 | 1837 | 1959 -> One (r871) - | 1141 | 1623 | 1700 | 1714 | 1825 | 1836 | 1958 -> One (r872) - | 1140 | 1622 | 1699 | 1713 | 1824 | 1835 | 1957 -> One (r873) - | 1139 | 1621 | 1698 | 1712 | 1823 | 1834 | 1956 -> One (r874) - | 1588 -> One (r875) - | 1148 -> One (r876) - | 1147 -> One (r877) - | 1146 -> One (r878) - | 1156 -> One (r879) - | 1155 -> One (r880) - | 1154 -> One (r881) - | 1153 -> One (r882) - | 1158 -> One (r883) - | 1160 -> One (r884) - | 1162 -> One (r885) - | 1166 | 1523 -> One (r886) - | 1165 | 1522 -> One (r887) - | 1164 | 1521 -> One (r888) - | 1163 | 1520 -> One (r889) - | 1468 -> One (r890) - | 1174 -> One (r891) - | 1173 -> One (r892) - | 1172 -> One (r893) - | 1171 -> One (r894) - | 1176 -> One (r895) - | 1184 -> One (r896) - | 1183 -> One (r897) - | 1182 -> One (r898) - | 1186 -> One (r899) - | 1191 -> One (r900) - | 1190 -> One (r901) - | 1199 -> One (r902) - | 1198 -> One (r903) - | 1197 -> One (r904) - | 1196 -> One (r905) - | 1205 -> One (r906) - | 1204 -> One (r907) - | 1203 -> One (r908) - | 1202 -> One (r909) - | 1214 -> One (r910) - | 1213 -> One (r911) - | 1212 -> One (r912) - | 1211 -> One (r913) + | 1140 -> One (r867) + | 1142 -> One (r868) + | 1501 | 1597 -> One (r869) + | 1500 | 1596 -> One (r870) + | 1144 | 1499 -> One (r871) + | 1143 | 1498 -> One (r872) + | 1148 | 1630 | 1707 | 1721 | 1832 | 1843 | 1970 -> One (r873) + | 1147 | 1629 | 1706 | 1720 | 1831 | 1842 | 1969 -> One (r874) + | 1146 | 1628 | 1705 | 1719 | 1830 | 1841 | 1968 -> One (r875) + | 1145 | 1627 | 1704 | 1718 | 1829 | 1840 | 1967 -> One (r876) + | 1594 -> One (r877) + | 1154 -> One (r878) + | 1153 -> One (r879) + | 1152 -> One (r880) + | 1162 -> One (r881) + | 1161 -> One (r882) + | 1160 -> One (r883) + | 1159 -> One (r884) + | 1164 -> One (r885) + | 1166 -> One (r886) + | 1168 -> One (r887) + | 1172 | 1529 -> One (r888) + | 1171 | 1528 -> One (r889) + | 1170 | 1527 -> One (r890) + | 1169 | 1526 -> One (r891) + | 1474 -> One (r892) + | 1180 -> One (r893) + | 1179 -> One (r894) + | 1178 -> One (r895) + | 1177 -> One (r896) + | 1182 -> One (r897) + | 1190 -> One (r898) + | 1189 -> One (r899) + | 1188 -> One (r900) + | 1192 -> One (r901) + | 1197 -> One (r902) + | 1196 -> One (r903) + | 1205 -> One (r904) + | 1204 -> One (r905) + | 1203 -> One (r906) + | 1202 -> One (r907) + | 1211 -> One (r908) + | 1210 -> One (r909) + | 1209 -> One (r910) + | 1208 -> One (r911) + | 1220 -> One (r912) + | 1219 -> One (r913) | 1218 -> One (r914) | 1217 -> One (r915) - | 1225 -> One (r916) - | 1224 -> One (r917) - | 1223 -> One (r918) - | 1222 -> One (r919) - | 1231 -> One (r920) - | 1230 -> One (r921) - | 1229 -> One (r922) - | 1228 -> One (r923) - | 1237 -> One (r924) - | 1236 -> One (r925) - | 1235 -> One (r926) - | 1234 -> One (r927) - | 1243 -> One (r928) - | 1242 -> One (r929) - | 1241 -> One (r930) - | 1240 -> One (r931) - | 1249 -> One (r932) - | 1248 -> One (r933) - | 1247 -> One (r934) - | 1246 -> One (r935) - | 1255 -> One (r936) - | 1254 -> One (r937) - | 1253 -> One (r938) - | 1252 -> One (r939) - | 1261 -> One (r940) - | 1260 -> One (r941) - | 1259 -> One (r942) - | 1258 -> One (r943) - | 1267 -> One (r944) - | 1266 -> One (r945) - | 1265 -> One (r946) - | 1264 -> One (r947) - | 1273 -> One (r948) - | 1272 -> One (r949) - | 1271 -> One (r950) - | 1270 -> One (r951) - | 1279 -> One (r952) - | 1278 -> One (r953) - | 1277 -> One (r954) - | 1276 -> One (r955) - | 1285 -> One (r956) - | 1284 -> One (r957) - | 1283 -> One (r958) - | 1282 -> One (r959) - | 1291 -> One (r960) - | 1290 -> One (r961) - | 1289 -> One (r962) - | 1288 -> One (r963) - | 1297 -> One (r964) - | 1296 -> One (r965) - | 1295 -> One (r966) - | 1294 -> One (r967) - | 1303 -> One (r968) - | 1302 -> One (r969) - | 1301 -> One (r970) - | 1300 -> One (r971) - | 1309 -> One (r972) - | 1308 -> One (r973) - | 1307 -> One (r974) - | 1306 -> One (r975) - | 1315 -> One (r976) - | 1314 -> One (r977) - | 1313 -> One (r978) - | 1312 -> One (r979) - | 1321 -> One (r980) - | 1320 -> One (r981) - | 1319 -> One (r982) - | 1318 -> One (r983) - | 1327 -> One (r984) - | 1326 -> One (r985) - | 1325 -> One (r986) - | 1324 -> One (r987) - | 1333 -> One (r988) - | 1332 -> One (r989) - | 1331 -> One (r990) - | 1330 -> One (r991) - | 1339 -> One (r992) - | 1338 -> One (r993) - | 1337 -> One (r994) - | 1336 -> One (r995) - | 1345 -> One (r996) - | 1344 -> One (r997) - | 1343 -> One (r998) - | 1342 -> One (r999) - | 1352 -> One (r1000) - | 1351 -> One (r1001) - | 1350 -> One (r1002) - | 1349 -> One (r1003) - | 1354 -> One (r1004) - | 1358 -> One (r1005) - | 1357 -> One (r1006) - | 1356 -> One (r1007) - | 1365 -> One (r1008) - | 1364 -> One (r1009) - | 1363 -> One (r1010) - | 1362 -> One (r1011) - | 1466 -> One (r1012) - | 1463 -> One (r1013) - | 1367 -> One (r1014) - | 1373 -> One (r1015) - | 1372 -> One (r1016) - | 1374 -> One (r1018) - | 1371 -> One (r1019) + | 1224 -> One (r916) + | 1223 -> One (r917) + | 1231 -> One (r918) + | 1230 -> One (r919) + | 1229 -> One (r920) + | 1228 -> One (r921) + | 1237 -> One (r922) + | 1236 -> One (r923) + | 1235 -> One (r924) + | 1234 -> One (r925) + | 1243 -> One (r926) + | 1242 -> One (r927) + | 1241 -> One (r928) + | 1240 -> One (r929) + | 1249 -> One (r930) + | 1248 -> One (r931) + | 1247 -> One (r932) + | 1246 -> One (r933) + | 1255 -> One (r934) + | 1254 -> One (r935) + | 1253 -> One (r936) + | 1252 -> One (r937) + | 1261 -> One (r938) + | 1260 -> One (r939) + | 1259 -> One (r940) + | 1258 -> One (r941) + | 1267 -> One (r942) + | 1266 -> One (r943) + | 1265 -> One (r944) + | 1264 -> One (r945) + | 1273 -> One (r946) + | 1272 -> One (r947) + | 1271 -> One (r948) + | 1270 -> One (r949) + | 1279 -> One (r950) + | 1278 -> One (r951) + | 1277 -> One (r952) + | 1276 -> One (r953) + | 1285 -> One (r954) + | 1284 -> One (r955) + | 1283 -> One (r956) + | 1282 -> One (r957) + | 1291 -> One (r958) + | 1290 -> One (r959) + | 1289 -> One (r960) + | 1288 -> One (r961) + | 1297 -> One (r962) + | 1296 -> One (r963) + | 1295 -> One (r964) + | 1294 -> One (r965) + | 1303 -> One (r966) + | 1302 -> One (r967) + | 1301 -> One (r968) + | 1300 -> One (r969) + | 1309 -> One (r970) + | 1308 -> One (r971) + | 1307 -> One (r972) + | 1306 -> One (r973) + | 1315 -> One (r974) + | 1314 -> One (r975) + | 1313 -> One (r976) + | 1312 -> One (r977) + | 1321 -> One (r978) + | 1320 -> One (r979) + | 1319 -> One (r980) + | 1318 -> One (r981) + | 1327 -> One (r982) + | 1326 -> One (r983) + | 1325 -> One (r984) + | 1324 -> One (r985) + | 1333 -> One (r986) + | 1332 -> One (r987) + | 1331 -> One (r988) + | 1330 -> One (r989) + | 1339 -> One (r990) + | 1338 -> One (r991) + | 1337 -> One (r992) + | 1336 -> One (r993) + | 1345 -> One (r994) + | 1344 -> One (r995) + | 1343 -> One (r996) + | 1342 -> One (r997) + | 1351 -> One (r998) + | 1350 -> One (r999) + | 1349 -> One (r1000) + | 1348 -> One (r1001) + | 1358 -> One (r1002) + | 1357 -> One (r1003) + | 1356 -> One (r1004) + | 1355 -> One (r1005) + | 1360 -> One (r1006) + | 1364 -> One (r1007) + | 1363 -> One (r1008) + | 1362 -> One (r1009) + | 1371 -> One (r1010) + | 1370 -> One (r1011) + | 1369 -> One (r1012) + | 1368 -> One (r1013) + | 1472 -> One (r1014) + | 1469 -> One (r1015) + | 1373 -> One (r1016) + | 1379 -> One (r1017) + | 1378 -> One (r1018) | 1380 -> One (r1020) - | 1378 -> One (r1021) - | 1377 -> One (r1022) - | 1389 -> One (r1023) - | 1388 -> One (r1024) - | 1387 -> One (r1025) - | 1386 -> One (r1026) - | 1385 -> One (r1027) + | 1377 -> One (r1021) + | 1386 -> One (r1022) + | 1384 -> One (r1023) + | 1383 -> One (r1024) + | 1395 -> One (r1025) + | 1394 -> One (r1026) + | 1393 -> One (r1027) | 1392 -> One (r1028) | 1391 -> One (r1029) - | 1397 -> One (r1030) - | 1396 -> One (r1031) - | 1395 -> One (r1032) - | 1394 -> One (r1033) - | 1400 -> One (r1034) - | 1399 -> One (r1035) - | 1403 -> One (r1036) - | 1402 -> One (r1037) - | 1406 -> One (r1038) - | 1405 -> One (r1039) - | 1410 -> One (r1040) - | 1409 -> One (r1041) - | 1415 -> One (r1042) - | 1414 -> One (r1043) - | 1413 -> One (r1044) - | 1418 -> One (r1045) - | 1417 -> One (r1046) - | 1421 -> One (r1047) - | 1420 -> One (r1048) - | 1424 -> One (r1049) - | 1423 -> One (r1050) - | 1435 -> One (r1051) - | 1432 -> One (r1052) - | 1431 -> One (r1053) - | 1430 -> One (r1054) - | 1429 -> One (r1055) - | 1428 -> One (r1056) - | 1434 -> One (r1057) - | 1438 -> One (r1058) + | 1398 -> One (r1030) + | 1397 -> One (r1031) + | 1403 -> One (r1032) + | 1402 -> One (r1033) + | 1401 -> One (r1034) + | 1400 -> One (r1035) + | 1406 -> One (r1036) + | 1405 -> One (r1037) + | 1409 -> One (r1038) + | 1408 -> One (r1039) + | 1412 -> One (r1040) + | 1411 -> One (r1041) + | 1416 -> One (r1042) + | 1415 -> One (r1043) + | 1421 -> One (r1044) + | 1420 -> One (r1045) + | 1419 -> One (r1046) + | 1424 -> One (r1047) + | 1423 -> One (r1048) + | 1427 -> One (r1049) + | 1426 -> One (r1050) + | 1430 -> One (r1051) + | 1429 -> One (r1052) + | 1441 -> One (r1053) + | 1438 -> One (r1054) + | 1437 -> One (r1055) + | 1436 -> One (r1056) + | 1435 -> One (r1057) + | 1434 -> One (r1058) | 1440 -> One (r1059) - | 1458 -> One (r1060) - | 1442 -> One (r1061) - | 1448 -> One (r1062) - | 1447 -> One (r1063) - | 1446 -> One (r1064) - | 1445 -> One (r1065) - | 1451 -> One (r1066) - | 1450 -> One (r1067) - | 1454 -> One (r1068) - | 1453 -> One (r1069) - | 1457 -> One (r1070) - | 1456 -> One (r1071) - | 1461 -> One (r1072) - | 1460 -> One (r1073) - | 1465 -> One (r1074) - | 1471 | 1532 -> One (r1075) - | 1470 | 1531 -> One (r1076) - | 1469 | 1530 -> One (r1077) - | 1474 | 1541 -> One (r1078) - | 1473 | 1540 -> One (r1079) - | 1472 | 1539 -> One (r1080) - | 1479 | 1552 -> One (r1081) - | 1478 | 1551 -> One (r1082) - | 1477 | 1550 -> One (r1083) - | 1476 | 1549 -> One (r1084) - | 1485 | 1561 -> One (r1085) - | 1484 | 1560 -> One (r1086) - | 1483 | 1559 -> One (r1087) - | 1488 | 1570 -> One (r1088) - | 1487 | 1569 -> One (r1089) - | 1486 | 1568 -> One (r1090) - | 1491 -> One (r1091) - | 1501 -> One (r1092) - | 1500 -> One (r1093) - | 1499 -> One (r1094) - | 1498 -> One (r1095) - | 1504 | 1594 -> One (r1096) - | 1503 | 1593 -> One (r1097) - | 1502 | 1592 -> One (r1098) - | 1510 -> One (r1099) - | 1509 -> One (r1100) - | 1508 -> One (r1101) - | 1507 -> One (r1102) - | 1513 | 1597 -> One (r1103) - | 1512 | 1596 -> One (r1104) - | 1511 | 1595 -> One (r1105) - | 1519 -> One (r1106) - | 1518 -> One (r1107) - | 1517 -> One (r1108) - | 1516 -> One (r1109) - | 1529 -> One (r1110) - | 1528 -> One (r1111) - | 1527 -> One (r1112) - | 1526 -> One (r1113) - | 1538 -> One (r1114) - | 1537 -> One (r1115) - | 1536 -> One (r1116) - | 1535 -> One (r1117) - | 1547 -> One (r1118) - | 1546 -> One (r1119) - | 1545 -> One (r1120) - | 1544 -> One (r1121) - | 1558 -> One (r1122) - | 1557 -> One (r1123) - | 1556 -> One (r1124) - | 1555 -> One (r1125) - | 1567 -> One (r1126) - | 1566 -> One (r1127) - | 1565 -> One (r1128) - | 1564 -> One (r1129) - | 1576 -> One (r1130) - | 1575 -> One (r1131) - | 1574 -> One (r1132) - | 1573 -> One (r1133) - | 1583 -> One (r1134) - | 1582 -> One (r1135) - | 1581 -> One (r1136) - | 1580 -> One (r1137) - | 1610 -> One (r1138) - | 1609 -> One (r1139) - | 1615 -> One (r1140) - | 1619 -> One (r1141) - | 1691 -> One (r1142) - | 1630 -> One (r1143) - | 1629 -> One (r1144) - | 1628 -> One (r1145) - | 1627 -> One (r1146) - | 1665 -> One (r1147) - | 1660 -> One (r1148) - | 1684 -> One (r1150) - | 1659 -> One (r1151) - | 1634 -> One (r1152) - | 1686 -> One (r1154) - | 1632 -> One (r1156) - | 1685 -> One (r1157) - | 1642 -> One (r1158) - | 1637 -> One (r1159) - | 1636 -> One (r1160) - | 1641 -> One (r1161) - | 1640 -> One (r1162) - | 1639 -> One (r1163) - | 1650 -> One (r1164) + | 1444 -> One (r1060) + | 1446 -> One (r1061) + | 1464 -> One (r1062) + | 1448 -> One (r1063) + | 1454 -> One (r1064) + | 1453 -> One (r1065) + | 1452 -> One (r1066) + | 1451 -> One (r1067) + | 1457 -> One (r1068) + | 1456 -> One (r1069) + | 1460 -> One (r1070) + | 1459 -> One (r1071) + | 1463 -> One (r1072) + | 1462 -> One (r1073) + | 1467 -> One (r1074) + | 1466 -> One (r1075) + | 1471 -> One (r1076) + | 1477 | 1538 -> One (r1077) + | 1476 | 1537 -> One (r1078) + | 1475 | 1536 -> One (r1079) + | 1480 | 1547 -> One (r1080) + | 1479 | 1546 -> One (r1081) + | 1478 | 1545 -> One (r1082) + | 1485 | 1558 -> One (r1083) + | 1484 | 1557 -> One (r1084) + | 1483 | 1556 -> One (r1085) + | 1482 | 1555 -> One (r1086) + | 1491 | 1567 -> One (r1087) + | 1490 | 1566 -> One (r1088) + | 1489 | 1565 -> One (r1089) + | 1494 | 1576 -> One (r1090) + | 1493 | 1575 -> One (r1091) + | 1492 | 1574 -> One (r1092) + | 1497 -> One (r1093) + | 1507 -> One (r1094) + | 1506 -> One (r1095) + | 1505 -> One (r1096) + | 1504 -> One (r1097) + | 1510 | 1600 -> One (r1098) + | 1509 | 1599 -> One (r1099) + | 1508 | 1598 -> One (r1100) + | 1516 -> One (r1101) + | 1515 -> One (r1102) + | 1514 -> One (r1103) + | 1513 -> One (r1104) + | 1519 | 1603 -> One (r1105) + | 1518 | 1602 -> One (r1106) + | 1517 | 1601 -> One (r1107) + | 1525 -> One (r1108) + | 1524 -> One (r1109) + | 1523 -> One (r1110) + | 1522 -> One (r1111) + | 1535 -> One (r1112) + | 1534 -> One (r1113) + | 1533 -> One (r1114) + | 1532 -> One (r1115) + | 1544 -> One (r1116) + | 1543 -> One (r1117) + | 1542 -> One (r1118) + | 1541 -> One (r1119) + | 1553 -> One (r1120) + | 1552 -> One (r1121) + | 1551 -> One (r1122) + | 1550 -> One (r1123) + | 1564 -> One (r1124) + | 1563 -> One (r1125) + | 1562 -> One (r1126) + | 1561 -> One (r1127) + | 1573 -> One (r1128) + | 1572 -> One (r1129) + | 1571 -> One (r1130) + | 1570 -> One (r1131) + | 1582 -> One (r1132) + | 1581 -> One (r1133) + | 1580 -> One (r1134) + | 1579 -> One (r1135) + | 1589 -> One (r1136) + | 1588 -> One (r1137) + | 1587 -> One (r1138) + | 1586 -> One (r1139) + | 1616 -> One (r1140) + | 1615 -> One (r1141) + | 1621 -> One (r1142) + | 1625 -> One (r1143) + | 1697 -> One (r1144) + | 1636 -> One (r1145) + | 1635 -> One (r1146) + | 1634 -> One (r1147) + | 1633 -> One (r1148) + | 1671 -> One (r1149) + | 1666 -> One (r1150) + | 1690 -> One (r1152) + | 1665 -> One (r1153) + | 1640 -> One (r1154) + | 1692 -> One (r1156) + | 1638 -> One (r1158) + | 1691 -> One (r1159) + | 1648 -> One (r1160) + | 1643 -> One (r1161) + | 1642 -> One (r1162) + | 1647 -> One (r1163) + | 1646 -> One (r1164) | 1645 -> One (r1165) - | 1644 -> One (r1166) - | 1649 -> One (r1167) - | 1648 -> One (r1168) - | 1647 -> One (r1169) - | 1658 -> One (r1170) + | 1656 -> One (r1166) + | 1651 -> One (r1167) + | 1650 -> One (r1168) + | 1655 -> One (r1169) + | 1654 -> One (r1170) | 1653 -> One (r1171) - | 1652 -> One (r1172) - | 1657 -> One (r1173) - | 1656 -> One (r1174) - | 1655 -> One (r1175) - | 1664 -> One (r1176) - | 1663 -> One (r1177) - | 1662 -> One (r1178) - | 1683 -> One (r1179) - | 1678 -> One (r1180) - | 1677 -> One (r1181) - | 1676 -> One (r1182) - | 1671 -> One (r1183) - | 1670 -> One (r1184) - | 1669 -> One (r1185) - | 1668 -> One (r1186) + | 1664 -> One (r1172) + | 1659 -> One (r1173) + | 1658 -> One (r1174) + | 1663 -> One (r1175) + | 1662 -> One (r1176) + | 1661 -> One (r1177) + | 1670 -> One (r1178) + | 1669 -> One (r1179) + | 1668 -> One (r1180) + | 1689 -> One (r1181) + | 1684 -> One (r1182) + | 1683 -> One (r1183) + | 1682 -> One (r1184) + | 1677 -> One (r1185) + | 1676 -> One (r1186) | 1675 -> One (r1187) | 1674 -> One (r1188) - | 1673 -> One (r1189) - | 1682 -> One (r1190) - | 1681 -> One (r1191) - | 1680 -> One (r1192) - | 1688 -> One (r1193) - | 1693 -> One (r1194) - | 1696 -> One (r1195) - | 1704 -> One (r1196) - | 1703 -> One (r1197) - | 1706 -> One (r1198) + | 1681 -> One (r1189) + | 1680 -> One (r1190) + | 1679 -> One (r1191) + | 1688 -> One (r1192) + | 1687 -> One (r1193) + | 1686 -> One (r1194) + | 1694 -> One (r1195) + | 1699 -> One (r1196) + | 1702 -> One (r1197) + | 1710 -> One (r1198) | 1709 -> One (r1199) - | 1711 -> One (r1200) - | 1717 -> One (r1201) - | 1719 -> One (r1202) - | 1722 -> One (r1203) - | 1725 -> One (r1205) - | 1724 -> One (r1206) - | 1737 -> One (r1207) - | 1736 -> One (r1208) - | 1729 -> One (r1209) - | 1728 -> One (r1210) - | 1746 -> One (r1211) - | 1745 -> One (r1212) - | 1744 -> One (r1213) - | 1762 -> One (r1214) - | 1761 -> One (r1215) - | 1760 -> One (r1216) - | 1768 -> One (r1217) - | 1767 -> One (r1218) - | 1766 -> One (r1219) - | 1765 -> One (r1220) - | 1775 -> One (r1221) - | 1774 -> One (r1222) - | 1773 -> One (r1223) - | 1772 -> One (r1224) - | 1778 -> One (r1225) - | 1786 -> One (r1226) - | 1785 -> One (r1227) - | 1784 -> One (r1228) - | 1783 -> One (r1229) - | 1788 -> One (r1230) - | 1792 -> One (r1231) - | 1791 -> One (r1232) - | 1790 -> One (r1233) - | 1798 -> One (r1234) - | 1797 -> One (r1235) - | 1796 -> One (r1236) - | 1795 -> One (r1237) - | 1806 -> One (r1238) - | 1805 -> One (r1239) - | 1804 -> One (r1240) - | 1815 -> One (r1241) - | 1814 -> One (r1242) - | 1813 -> One (r1243) - | 1822 -> One (r1244) - | 1828 -> One (r1245) - | 1833 -> One (r1246) - | 1839 -> One (r1247) - | 1842 -> One (r1248) + | 1712 -> One (r1200) + | 1715 -> One (r1201) + | 1717 -> One (r1202) + | 1723 -> One (r1203) + | 1725 -> One (r1204) + | 1728 -> One (r1205) + | 1731 -> One (r1207) + | 1730 -> One (r1208) + | 1743 -> One (r1209) + | 1742 -> One (r1210) + | 1735 -> One (r1211) + | 1734 -> One (r1212) + | 1752 -> One (r1213) + | 1751 -> One (r1214) + | 1750 -> One (r1215) + | 1768 -> One (r1216) + | 1767 -> One (r1217) + | 1766 -> One (r1218) + | 1774 -> One (r1219) + | 1773 -> One (r1220) + | 1772 -> One (r1221) + | 1771 -> One (r1222) + | 1781 -> One (r1223) + | 1780 -> One (r1224) + | 1779 -> One (r1225) + | 1778 -> One (r1226) + | 1784 -> One (r1227) + | 1792 -> One (r1228) + | 1791 -> One (r1229) + | 1790 -> One (r1230) + | 1789 -> One (r1231) + | 1794 -> One (r1232) + | 1798 -> One (r1233) + | 1797 -> One (r1234) + | 1796 -> One (r1235) + | 1804 -> One (r1236) + | 1803 -> One (r1237) + | 1802 -> One (r1238) + | 1801 -> One (r1239) + | 1812 -> One (r1240) + | 1811 -> One (r1241) + | 1810 -> One (r1242) + | 1821 -> One (r1243) + | 1820 -> One (r1244) + | 1819 -> One (r1245) + | 1828 -> One (r1246) + | 1834 -> One (r1247) + | 1839 -> One (r1248) | 1845 -> One (r1249) - | 1857 -> One (r1250) - | 1856 -> One (r1251) - | 1864 -> One (r1253) - | 1863 -> One (r1254) - | 1862 -> One (r1255) - | 1855 -> One (r1256) - | 1854 -> One (r1257) - | 1853 -> One (r1258) - | 1861 -> One (r1259) - | 1860 -> One (r1260) - | 1859 -> One (r1261) + | 1848 -> One (r1250) + | 1851 -> One (r1251) + | 1863 -> One (r1252) + | 1862 -> One (r1253) + | 1870 -> One (r1255) + | 1869 -> One (r1256) + | 1868 -> One (r1257) + | 1861 -> One (r1258) + | 1860 -> One (r1259) + | 1859 -> One (r1260) + | 1867 -> One (r1261) | 1866 -> One (r1262) - | 1934 -> One (r1263) - | 1933 -> One (r1264) - | 1932 -> One (r1265) - | 1931 -> One (r1266) - | 1875 -> One (r1267) - | 1869 -> One (r1268) - | 1868 -> One (r1269) - | 1913 -> One (r1270) - | 1912 -> One (r1271) - | 1911 -> One (r1273) - | 1895 -> One (r1274) - | 1900 -> One (r1283) - | 1897 -> One (r1285) - | 1896 -> One (r1286) - | 1894 -> One (r1287) - | 1893 -> One (r1288) - | 1892 -> One (r1289) - | 1891 -> One (r1290) - | 1886 -> One (r1291) - | 1882 -> One (r1292) - | 1881 -> One (r1293) - | 1885 -> One (r1294) - | 1884 -> One (r1295) - | 1888 -> One (r1296) - | 1890 -> One (r1298) - | 1903 -> One (r1299) - | 1902 -> One (r1300) - | 1910 -> One (r1301) - | 1909 -> One (r1302) - | 1905 -> One (r1303) - | 1908 -> One (r1304) - | 1907 -> One (r1305) - | 1930 -> One (r1306) - | 1926 -> One (r1307) - | 1922 -> One (r1308) - | 1925 -> One (r1309) - | 1924 -> One (r1310) - | 1929 -> One (r1311) - | 1928 -> One (r1312) - | 1953 -> One (r1313) - | 1952 -> One (r1314) - | 1951 -> One (r1315) - | 1961 -> One (r1316) - | 1964 -> One (r1317) - | 1967 -> One (r1318) - | 1973 -> One (r1319) - | 1972 -> One (r1320) - | 1971 -> One (r1321) - | 1970 -> One (r1322) - | 1976 -> One (r1323) - | 1975 -> One (r1324) - | 1980 -> One (r1325) + | 1865 -> One (r1263) + | 1872 -> One (r1264) + | 1945 -> One (r1265) + | 1944 -> One (r1266) + | 1943 -> One (r1267) + | 1942 -> One (r1268) + | 1881 -> One (r1269) + | 1875 -> One (r1270) + | 1874 -> One (r1271) + | 1915 -> One (r1272) + | 1914 -> One (r1273) + | 1913 -> One (r1275) + | 1897 -> One (r1276) + | 1902 -> One (r1285) + | 1899 -> One (r1287) + | 1898 -> One (r1288) + | 1896 -> One (r1289) + | 1895 -> One (r1290) + | 1894 -> One (r1291) + | 1893 -> One (r1292) + | 1892 -> One (r1293) + | 1888 -> One (r1294) + | 1887 -> One (r1295) + | 1891 -> One (r1296) + | 1890 -> One (r1297) + | 1905 -> One (r1298) + | 1904 -> One (r1299) + | 1912 -> One (r1300) + | 1911 -> One (r1301) + | 1907 -> One (r1302) + | 1910 -> One (r1303) + | 1909 -> One (r1304) + | 1941 -> One (r1305) + | 1926 -> One (r1306) + | 1925 -> One (r1307) + | 1924 -> One (r1308) + | 1930 -> One (r1309) + | 1929 -> One (r1310) + | 1928 -> One (r1311) + | 1937 -> One (r1312) + | 1933 -> One (r1313) + | 1936 -> One (r1314) + | 1935 -> One (r1315) + | 1940 -> One (r1316) + | 1939 -> One (r1317) + | 1964 -> One (r1318) + | 1963 -> One (r1319) + | 1962 -> One (r1320) + | 1972 -> One (r1321) + | 1975 -> One (r1322) + | 1978 -> One (r1323) + | 1984 -> One (r1324) + | 1983 -> One (r1325) | 1982 -> One (r1326) - | 1991 -> One (r1327) - | 1990 -> One (r1328) - | 1989 -> One (r1329) - | 1988 -> One (r1330) - | 1994 -> One (r1331) - | 1993 -> One (r1332) - | 1997 -> One (r1333) - | 1996 -> One (r1334) - | 2000 -> One (r1335) - | 1999 -> One (r1336) - | 2005 -> One (r1337) - | 2004 -> One (r1338) - | 2008 -> One (r1339) - | 2007 -> One (r1340) - | 2011 -> One (r1341) - | 2010 -> One (r1342) - | 2042 -> One (r1343) - | 2041 -> One (r1344) - | 2040 -> One (r1345) - | 2028 -> One (r1346) - | 2027 -> One (r1347) - | 2026 -> One (r1348) - | 2025 -> One (r1349) - | 2022 -> One (r1350) - | 2021 -> One (r1351) - | 2020 -> One (r1352) - | 2019 -> One (r1353) - | 2024 -> One (r1354) - | 2039 -> One (r1355) + | 1981 -> One (r1327) + | 1987 -> One (r1328) + | 1986 -> One (r1329) + | 1991 -> One (r1330) + | 1993 -> One (r1331) + | 2002 -> One (r1332) + | 2001 -> One (r1333) + | 2000 -> One (r1334) + | 1999 -> One (r1335) + | 2005 -> One (r1336) + | 2004 -> One (r1337) + | 2008 -> One (r1338) + | 2007 -> One (r1339) + | 2011 -> One (r1340) + | 2010 -> One (r1341) + | 2016 -> One (r1342) + | 2015 -> One (r1343) + | 2019 -> One (r1344) + | 2018 -> One (r1345) + | 2022 -> One (r1346) + | 2021 -> One (r1347) + | 2053 -> One (r1348) + | 2052 -> One (r1349) + | 2051 -> One (r1350) + | 2039 -> One (r1351) + | 2038 -> One (r1352) + | 2037 -> One (r1353) + | 2036 -> One (r1354) + | 2033 -> One (r1355) | 2032 -> One (r1356) | 2031 -> One (r1357) - | 2030 -> One (r1358) - | 2038 -> One (r1359) - | 2037 -> One (r1360) - | 2036 -> One (r1361) - | 2035 -> One (r1362) - | 2034 -> One (r1363) - | 2556 -> One (r1364) - | 2555 -> One (r1365) - | 2044 -> One (r1366) - | 2046 -> One (r1367) - | 2048 -> One (r1368) - | 2554 -> One (r1369) - | 2553 -> One (r1370) - | 2050 -> One (r1371) - | 2054 -> One (r1372) - | 2053 -> One (r1373) - | 2052 -> One (r1374) - | 2068 -> One (r1375) - | 2071 -> One (r1377) - | 2070 -> One (r1378) - | 2067 -> One (r1379) - | 2066 -> One (r1380) - | 2065 -> One (r1381) - | 2061 -> One (r1382) - | 2060 -> One (r1383) - | 2059 -> One (r1384) - | 2058 -> One (r1385) - | 2064 -> One (r1386) - | 2063 -> One (r1387) - | 2084 -> One (r1389) - | 2083 -> One (r1390) - | 2082 -> One (r1391) - | 2077 -> One (r1392) - | 2087 -> One (r1396) - | 2086 -> One (r1397) - | 2085 -> One (r1398) - | 2140 -> One (r1399) - | 2139 -> One (r1400) - | 2138 -> One (r1401) - | 2137 -> One (r1402) - | 2081 -> One (r1403) - | 2348 -> One (r1404) - | 2347 -> One (r1405) - | 2099 -> One (r1406) - | 2098 -> One (r1407) - | 2097 -> One (r1408) - | 2096 -> One (r1409) - | 2095 -> One (r1410) - | 2094 -> One (r1411) - | 2093 -> One (r1412) - | 2092 -> One (r1413) - | 2132 -> One (r1414) - | 2131 -> One (r1415) - | 2134 -> One (r1417) - | 2133 -> One (r1418) - | 2127 -> One (r1419) - | 2109 -> One (r1420) - | 2108 -> One (r1421) - | 2107 -> One (r1422) - | 2106 -> One (r1423) - | 2105 -> One (r1424) - | 2113 -> One (r1428) - | 2112 -> One (r1429) - | 2126 -> One (r1430) - | 2118 -> One (r1431) - | 2117 -> One (r1432) - | 2116 -> One (r1433) - | 2115 -> One (r1434) - | 2125 -> One (r1435) - | 2124 -> One (r1436) - | 2123 -> One (r1437) - | 2122 -> One (r1438) - | 2121 -> One (r1439) - | 2120 -> One (r1440) - | 2130 -> One (r1443) - | 2129 -> One (r1444) - | 2136 -> One (r1445) - | 2199 | 2255 -> One (r1447) - | 2257 -> One (r1449) - | 2271 -> One (r1451) - | 2261 -> One (r1452) - | 2260 -> One (r1453) - | 2240 -> One (r1454) - | 2239 -> One (r1455) - | 2238 -> One (r1456) - | 2237 -> One (r1457) - | 2236 -> One (r1458) - | 2235 -> One (r1459) - | 2234 -> One (r1460) - | 2224 -> One (r1461) - | 2223 -> One (r1462) - | 2155 -> One (r1463) - | 2154 -> One (r1464) - | 2153 -> One (r1465) - | 2146 -> One (r1466) - | 2144 -> One (r1467) - | 2143 -> One (r1468) - | 2148 -> One (r1469) - | 2150 -> One (r1471) - | 2149 -> One (r1472) - | 2152 -> One (r1473) - | 2217 -> One (r1474) - | 2216 -> One (r1475) - | 2161 -> One (r1476) - | 2157 -> One (r1477) - | 2160 -> One (r1478) - | 2159 -> One (r1479) + | 2035 -> One (r1358) + | 2050 -> One (r1359) + | 2043 -> One (r1360) + | 2042 -> One (r1361) + | 2041 -> One (r1362) + | 2049 -> One (r1363) + | 2048 -> One (r1364) + | 2047 -> One (r1365) + | 2046 -> One (r1366) + | 2045 -> One (r1367) + | 2429 -> One (r1368) + | 2428 -> One (r1369) + | 2055 -> One (r1370) + | 2057 -> One (r1371) + | 2059 -> One (r1372) + | 2427 -> One (r1373) + | 2426 -> One (r1374) + | 2061 -> One (r1375) + | 2065 -> One (r1376) + | 2064 -> One (r1377) + | 2063 -> One (r1378) + | 2079 -> One (r1379) + | 2082 -> One (r1381) + | 2081 -> One (r1382) + | 2078 -> One (r1383) + | 2077 -> One (r1384) + | 2076 -> One (r1385) + | 2072 -> One (r1386) + | 2071 -> One (r1387) + | 2070 -> One (r1388) + | 2069 -> One (r1389) + | 2075 -> One (r1390) + | 2074 -> One (r1391) + | 2095 -> One (r1393) + | 2094 -> One (r1394) + | 2093 -> One (r1395) + | 2088 -> One (r1396) + | 2098 -> One (r1400) + | 2097 -> One (r1401) + | 2096 -> One (r1402) + | 2673 -> One (r1403) + | 2672 -> One (r1404) + | 2671 -> One (r1405) + | 2670 -> One (r1406) + | 2092 -> One (r1407) + | 2100 -> One (r1408) + | 2306 -> One (r1410) + | 2369 -> One (r1412) + | 2202 -> One (r1413) + | 2386 -> One (r1415) + | 2377 -> One (r1416) + | 2376 -> One (r1417) + | 2200 -> One (r1418) + | 2199 -> One (r1419) + | 2198 -> One (r1420) + | 2197 -> One (r1421) + | 2196 -> One (r1422) + | 2160 | 2342 -> One (r1423) + | 2195 -> One (r1425) + | 2185 -> One (r1426) + | 2184 -> One (r1427) + | 2116 -> One (r1428) + | 2115 -> One (r1429) + | 2114 -> One (r1430) + | 2107 -> One (r1431) + | 2105 -> One (r1432) + | 2104 -> One (r1433) + | 2109 -> One (r1434) + | 2111 -> One (r1436) + | 2110 -> One (r1437) + | 2113 -> One (r1438) + | 2178 -> One (r1439) + | 2177 -> One (r1440) + | 2122 -> One (r1441) + | 2118 -> One (r1442) + | 2121 -> One (r1443) + | 2120 -> One (r1444) + | 2133 -> One (r1445) + | 2132 -> One (r1446) + | 2131 -> One (r1447) + | 2130 -> One (r1448) + | 2129 -> One (r1449) + | 2124 -> One (r1450) + | 2144 -> One (r1451) + | 2143 -> One (r1452) + | 2142 -> One (r1453) + | 2141 -> One (r1454) + | 2140 -> One (r1455) + | 2135 -> One (r1456) + | 2169 -> One (r1457) + | 2168 -> One (r1458) + | 2146 -> One (r1459) + | 2167 -> One (r1462) + | 2166 -> One (r1463) + | 2165 -> One (r1464) + | 2164 -> One (r1465) + | 2148 -> One (r1466) + | 2162 -> One (r1467) + | 2152 -> One (r1468) + | 2151 -> One (r1469) + | 2150 -> One (r1470) + | 2159 | 2333 -> One (r1471) + | 2156 -> One (r1473) + | 2155 -> One (r1474) + | 2154 -> One (r1475) + | 2153 | 2332 -> One (r1476) + | 2158 -> One (r1477) + | 2174 -> One (r1478) + | 2173 -> One (r1479) | 2172 -> One (r1480) - | 2171 -> One (r1481) - | 2170 -> One (r1482) - | 2169 -> One (r1483) - | 2168 -> One (r1484) - | 2163 -> One (r1485) + | 2176 -> One (r1482) + | 2175 -> One (r1483) + | 2171 -> One (r1484) + | 2180 -> One (r1485) | 2183 -> One (r1486) - | 2182 -> One (r1487) - | 2181 -> One (r1488) - | 2180 -> One (r1489) - | 2179 -> One (r1490) - | 2174 -> One (r1491) - | 2208 -> One (r1492) - | 2207 -> One (r1493) - | 2185 -> One (r1494) - | 2206 -> One (r1495) - | 2205 -> One (r1496) - | 2204 -> One (r1497) - | 2203 -> One (r1498) - | 2187 -> One (r1499) - | 2201 -> One (r1500) - | 2191 -> One (r1501) - | 2190 -> One (r1502) - | 2189 -> One (r1503) - | 2198 | 2246 -> One (r1504) - | 2195 -> One (r1506) - | 2194 -> One (r1507) - | 2193 -> One (r1508) - | 2192 | 2245 -> One (r1509) - | 2197 -> One (r1510) - | 2213 -> One (r1511) - | 2212 -> One (r1512) - | 2211 -> One (r1513) - | 2215 -> One (r1515) - | 2214 -> One (r1516) - | 2210 -> One (r1517) - | 2219 -> One (r1518) - | 2222 -> One (r1519) - | 2233 -> One (r1520) - | 2232 -> One (r1521) - | 2231 -> One (r1522) - | 2230 -> One (r1523) - | 2229 -> One (r1524) - | 2228 -> One (r1525) - | 2227 -> One (r1526) - | 2226 -> One (r1527) - | 2259 -> One (r1528) - | 2244 -> One (r1529) - | 2243 -> One (r1530) - | 2242 -> One (r1531) - | 2258 -> One (r1532) - | 2248 -> One (r1533) - | 2256 -> One (r1534) - | 2251 -> One (r1535) - | 2250 -> One (r1536) - | 2270 -> One (r1537) - | 2269 -> One (r1538) - | 2268 -> One (r1539) - | 2267 -> One (r1540) - | 2266 -> One (r1541) - | 2265 -> One (r1542) - | 2264 -> One (r1543) - | 2263 -> One (r1544) - | 2280 -> One (r1545) - | 2283 -> One (r1546) - | 2289 -> One (r1547) - | 2288 -> One (r1548) - | 2287 -> One (r1549) - | 2286 -> One (r1550) - | 2285 -> One (r1551) - | 2301 -> One (r1552) - | 2299 -> One (r1553) - | 2298 -> One (r1554) - | 2297 -> One (r1555) - | 2296 -> One (r1556) - | 2295 -> One (r1557) - | 2294 -> One (r1558) - | 2293 -> One (r1559) - | 2292 -> One (r1560) - | 2344 -> One (r1561) - | 2324 -> One (r1562) - | 2323 -> One (r1563) - | 2322 -> One (r1564) - | 2321 -> One (r1565) - | 2308 -> One (r1566) - | 2307 -> One (r1567) - | 2306 -> One (r1568) - | 2305 -> One (r1569) - | 2304 -> One (r1570) - | 2312 -> One (r1571) - | 2311 -> One (r1572) - | 2317 -> One (r1573) - | 2316 -> One (r1574) - | 2315 | 2568 -> One (r1575) - | 2319 | 2567 -> One (r1576) - | 2341 -> One (r1577) - | 2333 -> One (r1578) - | 2332 -> One (r1579) - | 2331 -> One (r1580) - | 2340 -> One (r1581) - | 2339 -> One (r1582) - | 2462 -> One (r1583) - | 2506 -> One (r1585) - | 2358 -> One (r1586) - | 2523 -> One (r1588) - | 2514 -> One (r1589) - | 2513 -> One (r1590) - | 2356 -> One (r1591) - | 2355 -> One (r1592) - | 2354 -> One (r1593) - | 2353 -> One (r1594) - | 2352 -> One (r1595) - | 2500 -> One (r1596) - | 2499 -> One (r1597) - | 2361 -> One (r1598) - | 2360 -> One (r1599) - | 2387 -> One (r1600) - | 2386 -> One (r1601) - | 2385 -> One (r1602) - | 2384 -> One (r1603) - | 2375 -> One (r1604) - | 2374 -> One (r1606) - | 2373 -> One (r1607) - | 2369 -> One (r1608) - | 2368 -> One (r1609) - | 2367 -> One (r1610) - | 2366 -> One (r1611) - | 2364 -> One (r1612) - | 2372 -> One (r1613) - | 2371 -> One (r1614) + | 2194 -> One (r1487) + | 2193 -> One (r1488) + | 2192 -> One (r1489) + | 2191 -> One (r1490) + | 2190 -> One (r1491) + | 2189 -> One (r1492) + | 2188 -> One (r1493) + | 2187 -> One (r1494) + | 2363 -> One (r1495) + | 2362 -> One (r1496) + | 2205 -> One (r1497) + | 2204 -> One (r1498) + | 2231 -> One (r1499) + | 2230 -> One (r1500) + | 2229 -> One (r1501) + | 2228 -> One (r1502) + | 2219 -> One (r1503) + | 2218 -> One (r1505) + | 2217 -> One (r1506) + | 2213 -> One (r1507) + | 2212 -> One (r1508) + | 2211 -> One (r1509) + | 2210 -> One (r1510) + | 2208 -> One (r1511) + | 2216 -> One (r1512) + | 2215 -> One (r1513) + | 2227 -> One (r1514) + | 2226 -> One (r1515) + | 2225 -> One (r1516) + | 2234 -> One (r1517) + | 2233 -> One (r1518) + | 2275 -> One (r1519) + | 2264 -> One (r1520) + | 2263 -> One (r1521) + | 2254 -> One (r1522) + | 2253 -> One (r1524) + | 2252 -> One (r1525) + | 2251 -> One (r1526) + | 2240 -> One (r1527) + | 2239 -> One (r1528) + | 2237 -> One (r1529) + | 2250 -> One (r1530) + | 2249 -> One (r1531) + | 2248 -> One (r1532) + | 2247 -> One (r1533) + | 2246 -> One (r1534) + | 2245 -> One (r1535) + | 2244 -> One (r1536) + | 2243 -> One (r1537) + | 2262 -> One (r1538) + | 2261 -> One (r1539) + | 2260 -> One (r1540) + | 2274 -> One (r1541) + | 2273 -> One (r1542) + | 2272 -> One (r1543) + | 2271 -> One (r1544) + | 2270 -> One (r1545) + | 2269 -> One (r1546) + | 2268 -> One (r1547) + | 2267 -> One (r1548) + | 2279 -> One (r1549) + | 2278 -> One (r1550) + | 2277 -> One (r1551) + | 2357 -> One (r1552) + | 2356 -> One (r1553) + | 2355 -> One (r1554) + | 2354 -> One (r1555) + | 2353 -> One (r1556) + | 2352 -> One (r1557) + | 2349 -> One (r1558) + | 2282 -> One (r1559) + | 2326 -> One (r1560) + | 2325 -> One (r1561) + | 2320 -> One (r1562) + | 2319 -> One (r1563) + | 2318 -> One (r1564) + | 2317 -> One (r1565) + | 2291 -> One (r1566) + | 2290 -> One (r1567) + | 2289 -> One (r1568) + | 2288 -> One (r1569) + | 2287 -> One (r1570) + | 2286 -> One (r1571) + | 2316 -> One (r1572) + | 2295 -> One (r1573) + | 2294 -> One (r1574) + | 2293 -> One (r1575) + | 2299 -> One (r1576) + | 2298 -> One (r1577) + | 2297 -> One (r1578) + | 2313 -> One (r1579) + | 2303 -> One (r1580) + | 2302 -> One (r1581) + | 2315 -> One (r1583) + | 2301 -> One (r1584) + | 2310 -> One (r1585) + | 2305 -> One (r1586) + | 2324 -> One (r1587) + | 2323 -> One (r1588) + | 2322 -> One (r1589) + | 2344 -> One (r1590) + | 2348 -> One (r1592) + | 2347 -> One (r1593) + | 2346 -> One (r1594) + | 2331 -> One (r1595) + | 2330 -> One (r1596) + | 2329 -> One (r1597) + | 2345 -> One (r1598) + | 2335 -> One (r1599) + | 2343 -> One (r1600) + | 2338 -> One (r1601) + | 2337 -> One (r1602) + | 2351 -> One (r1603) + | 2361 -> One (r1604) + | 2360 -> One (r1605) + | 2359 -> One (r1606) + | 2365 -> One (r1607) + | 2368 -> One (r1608) + | 2373 -> One (r1609) + | 2372 -> One (r1610) + | 2371 -> One (r1611) + | 2375 -> One (r1612) + | 2385 -> One (r1613) + | 2384 -> One (r1614) | 2383 -> One (r1615) | 2382 -> One (r1616) | 2381 -> One (r1617) - | 2390 -> One (r1618) - | 2389 -> One (r1619) - | 2431 -> One (r1620) - | 2420 -> One (r1621) - | 2419 -> One (r1622) - | 2410 -> One (r1623) - | 2409 -> One (r1625) - | 2408 -> One (r1626) - | 2407 -> One (r1627) - | 2396 -> One (r1628) - | 2395 -> One (r1629) - | 2393 -> One (r1630) - | 2406 -> One (r1631) - | 2405 -> One (r1632) - | 2404 -> One (r1633) - | 2403 -> One (r1634) - | 2402 -> One (r1635) - | 2401 -> One (r1636) - | 2400 -> One (r1637) - | 2399 -> One (r1638) - | 2418 -> One (r1639) - | 2417 -> One (r1640) - | 2416 -> One (r1641) - | 2430 -> One (r1642) - | 2429 -> One (r1643) - | 2428 -> One (r1644) - | 2427 -> One (r1645) - | 2426 -> One (r1646) - | 2425 -> One (r1647) - | 2424 -> One (r1648) - | 2423 -> One (r1649) - | 2435 -> One (r1650) - | 2434 -> One (r1651) - | 2433 -> One (r1652) - | 2494 -> One (r1653) - | 2493 -> One (r1654) - | 2492 -> One (r1655) - | 2491 -> One (r1656) - | 2490 -> One (r1657) - | 2489 -> One (r1658) - | 2486 -> One (r1659) - | 2438 -> One (r1660) - | 2482 -> One (r1661) - | 2481 -> One (r1662) - | 2476 -> One (r1663) - | 2475 -> One (r1664) - | 2474 -> One (r1665) - | 2473 -> One (r1666) - | 2447 -> One (r1667) - | 2446 -> One (r1668) - | 2445 -> One (r1669) - | 2444 -> One (r1670) - | 2443 -> One (r1671) - | 2442 -> One (r1672) - | 2472 -> One (r1673) - | 2451 -> One (r1674) - | 2450 -> One (r1675) - | 2449 -> One (r1676) - | 2455 -> One (r1677) - | 2454 -> One (r1678) - | 2453 -> One (r1679) - | 2469 -> One (r1680) - | 2459 -> One (r1681) - | 2458 -> One (r1682) - | 2471 -> One (r1684) - | 2457 -> One (r1685) - | 2466 -> One (r1686) - | 2461 -> One (r1687) - | 2480 -> One (r1688) - | 2479 -> One (r1689) - | 2478 -> One (r1690) - | 2485 -> One (r1691) - | 2484 -> One (r1692) - | 2488 -> One (r1693) - | 2498 -> One (r1694) - | 2497 -> One (r1695) - | 2496 -> One (r1696) - | 2502 -> One (r1697) - | 2505 -> One (r1698) - | 2510 -> One (r1699) - | 2509 -> One (r1700) - | 2508 -> One (r1701) - | 2512 -> One (r1702) - | 2522 -> One (r1703) - | 2521 -> One (r1704) - | 2520 -> One (r1705) - | 2519 -> One (r1706) - | 2518 -> One (r1707) - | 2517 -> One (r1708) - | 2516 -> One (r1709) - | 2532 -> One (r1710) - | 2536 -> One (r1711) - | 2541 -> One (r1712) - | 2540 -> One (r1713) - | 2539 -> One (r1714) - | 2538 -> One (r1715) - | 2543 -> One (r1716) - | 2549 -> One (r1717) - | 2548 -> One (r1718) - | 2559 -> One (r1719) - | 2558 -> One (r1720) - | 2571 -> One (r1721) - | 2570 -> One (r1722) - | 2583 -> One (r1723) - | 2582 -> One (r1724) - | 2601 -> One (r1725) - | 2612 -> One (r1726) - | 2611 -> One (r1727) - | 2610 -> One (r1728) - | 2609 -> One (r1729) - | 2608 -> One (r1730) - | 2614 -> One (r1731) - | 2621 -> One (r1732) - | 2620 -> One (r1733) - | 2627 -> One (r1734) - | 2631 -> One (r1735) - | 2630 -> One (r1736) - | 2629 -> One (r1737) - | 2640 -> One (r1738) - | 2639 -> One (r1739) - | 2638 -> One (r1740) - | 2637 -> One (r1741) - | 2642 -> One (r1742) - | 2646 -> One (r1743) - | 2645 -> One (r1744) - | 2644 -> One (r1745) - | 2657 -> One (r1746) - | 2656 -> One (r1747) - | 2655 -> One (r1748) - | 2659 -> One (r1749) - | 2667 -> One (r1750) - | 2677 -> One (r1751) - | 2681 -> One (r1752) - | 2680 -> One (r1753) - | 2685 -> One (r1754) - | 2689 -> One (r1755) - | 2688 -> One (r1756) - | 2697 -> One (r1757) - | 2696 -> One (r1758) - | 2695 -> One (r1759) - | 2712 -> One (r1760) - | 2711 -> One (r1761) - | 2710 -> One (r1762) - | 2727 -> One (r1763) - | 2726 -> One (r1764) - | 2725 -> One (r1765) - | 2724 -> One (r1766) - | 2723 -> One (r1767) - | 2731 -> One (r1768) - | 2735 -> One (r1769) - | 2734 -> One (r1770) - | 2739 -> One (r1771) - | 2743 -> One (r1772) - | 2742 -> One (r1773) - | 2747 -> One (r1774) - | 2751 -> One (r1775) - | 2750 -> One (r1776) - | 2755 -> One (r1777) - | 2780 -> One (r1778) - | 2779 -> One (r1779) - | 2778 -> One (r1780) + | 2380 -> One (r1618) + | 2379 -> One (r1619) + | 2395 -> One (r1620) + | 2399 -> One (r1621) + | 2404 -> One (r1622) + | 2403 -> One (r1623) + | 2402 -> One (r1624) + | 2401 -> One (r1625) + | 2416 -> One (r1626) + | 2414 -> One (r1627) + | 2413 -> One (r1628) + | 2412 -> One (r1629) + | 2411 -> One (r1630) + | 2410 -> One (r1631) + | 2409 -> One (r1632) + | 2408 -> One (r1633) + | 2407 -> One (r1634) + | 2422 -> One (r1635) + | 2421 -> One (r1636) + | 2432 -> One (r1637) + | 2431 -> One (r1638) + | 2446 -> One (r1639) + | 2445 -> One (r1640) + | 2441 | 2570 -> One (r1641) + | 2440 | 2572 -> One (r1642) + | 2444 -> One (r1643) + | 2443 -> One (r1644) + | 2458 -> One (r1645) + | 2457 -> One (r1646) + | 2478 -> One (r1647) + | 2489 -> One (r1648) + | 2488 -> One (r1649) + | 2487 -> One (r1650) + | 2486 -> One (r1651) + | 2485 -> One (r1652) + | 2491 -> One (r1653) + | 2498 -> One (r1654) + | 2497 -> One (r1655) + | 2504 -> One (r1656) + | 2508 -> One (r1657) + | 2507 -> One (r1658) + | 2506 -> One (r1659) + | 2517 -> One (r1660) + | 2516 -> One (r1661) + | 2515 -> One (r1662) + | 2514 -> One (r1663) + | 2519 -> One (r1664) + | 2523 -> One (r1665) + | 2522 -> One (r1666) + | 2521 -> One (r1667) + | 2534 -> One (r1668) + | 2533 -> One (r1669) + | 2532 -> One (r1670) + | 2536 -> One (r1671) + | 2544 -> One (r1672) + | 2554 -> One (r1673) + | 2558 -> One (r1674) + | 2557 -> One (r1675) + | 2562 -> One (r1676) + | 2567 -> One (r1677) + | 2566 -> One (r1678) + | 2581 -> One (r1679) + | 2580 -> One (r1680) + | 2595 -> One (r1681) + | 2590 -> One (r1682) + | 2589 -> One (r1683) + | 2588 -> One (r1684) + | 2594 -> One (r1685) + | 2593 -> One (r1686) + | 2601 -> One (r1687) + | 2600 -> One (r1688) + | 2599 -> One (r1689) + | 2616 -> One (r1690) + | 2615 -> One (r1691) + | 2614 -> One (r1692) + | 2727 -> One (r1693) + | 2632 -> One (r1694) + | 2631 -> One (r1695) + | 2630 -> One (r1696) + | 2629 -> One (r1697) + | 2628 -> One (r1698) + | 2627 -> One (r1699) + | 2626 -> One (r1700) + | 2625 -> One (r1701) + | 2665 -> One (r1702) + | 2664 -> One (r1703) + | 2667 -> One (r1705) + | 2666 -> One (r1706) + | 2660 -> One (r1707) + | 2642 -> One (r1708) + | 2641 -> One (r1709) + | 2640 -> One (r1710) + | 2639 -> One (r1711) + | 2638 -> One (r1712) + | 2637 -> One (r1713) + | 2636 -> One (r1714) + | 2635 -> One (r1715) + | 2646 -> One (r1716) + | 2645 -> One (r1717) + | 2659 -> One (r1718) + | 2651 -> One (r1719) + | 2650 -> One (r1720) + | 2649 -> One (r1721) + | 2648 -> One (r1722) + | 2658 -> One (r1723) + | 2657 -> One (r1724) + | 2656 -> One (r1725) + | 2655 -> One (r1726) + | 2654 -> One (r1727) + | 2653 -> One (r1728) + | 2663 -> One (r1729) + | 2662 -> One (r1730) + | 2669 -> One (r1731) + | 2692 -> One (r1732) + | 2682 -> One (r1733) + | 2681 -> One (r1734) + | 2680 -> One (r1735) + | 2679 -> One (r1736) + | 2678 -> One (r1737) + | 2677 -> One (r1738) + | 2676 -> One (r1739) + | 2675 -> One (r1740) + | 2691 -> One (r1741) + | 2690 -> One (r1742) + | 2689 -> One (r1743) + | 2688 -> One (r1744) + | 2687 -> One (r1745) + | 2686 -> One (r1746) + | 2685 -> One (r1747) + | 2684 -> One (r1748) + | 2701 -> One (r1749) + | 2704 -> One (r1750) + | 2710 -> One (r1751) + | 2709 -> One (r1752) + | 2708 -> One (r1753) + | 2707 -> One (r1754) + | 2706 -> One (r1755) + | 2712 -> One (r1756) + | 2724 -> One (r1757) + | 2723 -> One (r1758) + | 2722 -> One (r1759) + | 2721 -> One (r1760) + | 2720 -> One (r1761) + | 2719 -> One (r1762) + | 2718 -> One (r1763) + | 2717 -> One (r1764) + | 2716 -> One (r1765) + | 2715 -> One (r1766) + | 2736 -> One (r1767) + | 2735 -> One (r1768) + | 2734 -> One (r1769) + | 2733 -> One (r1770) + | 2732 -> One (r1771) + | 2740 -> One (r1772) + | 2744 -> One (r1773) + | 2743 -> One (r1774) + | 2748 -> One (r1775) + | 2752 -> One (r1776) + | 2751 -> One (r1777) + | 2756 -> One (r1778) + | 2760 -> One (r1779) + | 2759 -> One (r1780) | 2764 -> One (r1781) - | 2763 -> One (r1782) - | 2762 -> One (r1783) - | 2761 -> One (r1784) - | 2760 -> One (r1785) - | 2768 -> One (r1786) - | 2772 -> One (r1787) - | 2771 -> One (r1788) - | 2776 -> One (r1789) - | 2784 -> One (r1790) - | 2788 -> One (r1791) - | 2787 -> One (r1792) - | 2792 -> One (r1793) - | 2798 -> One (r1794) + | 2789 -> One (r1782) + | 2788 -> One (r1783) + | 2787 -> One (r1784) + | 2773 -> One (r1785) + | 2772 -> One (r1786) + | 2771 -> One (r1787) + | 2770 -> One (r1788) + | 2769 -> One (r1789) + | 2777 -> One (r1790) + | 2781 -> One (r1791) + | 2780 -> One (r1792) + | 2785 -> One (r1793) + | 2793 -> One (r1794) | 2797 -> One (r1795) | 2796 -> One (r1796) - | 2802 -> One (r1797) - | 2806 -> One (r1798) - | 2805 -> One (r1799) - | 2810 -> One (r1800) - | 2816 -> One (r1801) - | 2820 -> One (r1802) - | 2824 -> One (r1803) - | 2823 -> One (r1804) - | 2828 -> One (r1805) - | 2832 -> One (r1806) - | 2834 -> One (r1807) - | 2838 -> One (r1808) + | 2801 -> One (r1797) + | 2807 -> One (r1798) + | 2806 -> One (r1799) + | 2805 -> One (r1800) + | 2811 -> One (r1801) + | 2815 -> One (r1802) + | 2814 -> One (r1803) + | 2819 -> One (r1804) + | 2825 -> One (r1805) + | 2829 -> One (r1806) + | 2833 -> One (r1807) + | 2832 -> One (r1808) | 2837 -> One (r1809) - | 2836 -> One (r1810) - | 2848 -> One (r1811) - | 2847 -> One (r1812) - | 2846 -> One (r1813) - | 2852 -> One (r1814) - | 2851 -> One (r1815) - | 2850 -> One (r1816) - | 2867 -> One (r1817) - | 2871 -> One (r1818) - | 2876 -> One (r1819) - | 2883 -> One (r1820) - | 2882 -> One (r1821) - | 2881 -> One (r1822) - | 2880 -> One (r1823) - | 2890 -> One (r1824) - | 2894 -> One (r1825) - | 2898 -> One (r1826) - | 2901 -> One (r1827) - | 2906 -> One (r1828) - | 2910 -> One (r1829) - | 2914 -> One (r1830) - | 2918 -> One (r1831) - | 2922 -> One (r1832) - | 2925 -> One (r1833) - | 2929 -> One (r1834) - | 2935 -> One (r1835) - | 2943 -> One (r1836) - | 2953 -> One (r1837) - | 2955 -> One (r1838) - | 2958 -> One (r1839) - | 2957 -> One (r1840) - | 2960 -> One (r1841) - | 2970 -> One (r1842) - | 2966 -> One (r1843) - | 2965 -> One (r1844) - | 2969 -> One (r1845) - | 2968 -> One (r1846) - | 2975 -> One (r1847) - | 2974 -> One (r1848) - | 2973 -> One (r1849) - | 2977 -> One (r1850) - | 693 -> Select (function + | 2850 -> One (r1810) + | 2849 -> One (r1811) + | 2848 -> One (r1812) + | 2854 -> One (r1813) + | 2853 -> One (r1814) + | 2852 -> One (r1815) + | 2869 -> One (r1816) + | 2873 -> One (r1817) + | 2878 -> One (r1818) + | 2885 -> One (r1819) + | 2884 -> One (r1820) + | 2883 -> One (r1821) + | 2882 -> One (r1822) + | 2892 -> One (r1823) + | 2896 -> One (r1824) + | 2900 -> One (r1825) + | 2903 -> One (r1826) + | 2908 -> One (r1827) + | 2912 -> One (r1828) + | 2916 -> One (r1829) + | 2920 -> One (r1830) + | 2924 -> One (r1831) + | 2927 -> One (r1832) + | 2931 -> One (r1833) + | 2937 -> One (r1834) + | 2945 -> One (r1835) + | 2955 -> One (r1836) + | 2957 -> One (r1837) + | 2960 -> One (r1838) + | 2959 -> One (r1839) + | 2962 -> One (r1840) + | 2972 -> One (r1841) + | 2968 -> One (r1842) + | 2967 -> One (r1843) + | 2971 -> One (r1844) + | 2970 -> One (r1845) + | 2977 -> One (r1846) + | 2976 -> One (r1847) + | 2975 -> One (r1848) + | 2979 -> One (r1849) + | 701 -> Select (function | -1 -> [R 121] - | _ -> S (T T_DOT) :: r553) - | 1103 -> Select (function + | _ -> S (T T_DOT) :: r557) + | 1109 -> Select (function | -1 -> [R 121] - | _ -> r839) - | 165 -> Select (function - | -1 -> r126 - | _ -> R 151 :: r149) - | 578 -> Select (function - | -1 -> r126 - | _ -> R 151 :: r438) - | 2073 -> Select (function - | -1 -> r1402 - | _ -> R 151 :: r1395) - | 2101 -> Select (function - | -1 -> r1353 - | _ -> R 151 :: r1427) - | 909 -> Select (function - | -1 -> r259 + | _ -> r841) + | 586 -> Select (function + | -1 -> R 151 :: r440 + | _ -> R 151 :: r432) + | 2084 -> Select (function + | -1 -> r1406 + | _ -> R 151 :: r1399) + | 915 -> Select (function + | -1 -> r253 | _ -> [R 292]) - | 686 -> Select (function + | 694 -> Select (function | -1 -> [R 878] - | _ -> S (T T_DOTDOT) :: r550) - | 725 -> Select (function + | _ -> S (T T_DOTDOT) :: r554) + | 733 -> Select (function | -1 -> [R 969] - | _ -> S (N N_pattern) :: r568) - | 705 -> Select (function + | _ -> S (N N_pattern) :: r572) + | 713 -> Select (function | -1 -> [R 970] - | _ -> S (N N_pattern) :: r558) - | 171 -> Select (function - | -1 -> r156 - | _ -> R 1228 :: r162) - | 581 -> Select (function - | -1 -> r156 - | _ -> R 1228 :: r444) + | _ -> S (N N_pattern) :: r562) + | 589 -> Select (function + | -1 -> R 1228 :: r448 + | _ -> R 1228 :: r446) | 139 -> Select (function - | 263 | 270 | 316 | 322 | 329 | 354 | 394 | 402 | 410 | 418 | 431 | 439 | 447 | 455 | 2672 | 2680 | 2726 | 2734 | 2742 | 2750 | 2763 | 2771 | 2779 | 2787 | 2797 | 2805 | 2815 | 2823 -> S (T T_UNDERSCORE) :: r87 + | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2549 | 2557 | 2735 | 2743 | 2751 | 2759 | 2772 | 2780 | 2788 | 2796 | 2806 | 2814 | 2824 | 2832 -> S (T T_UNDERSCORE) :: r87 | -1 -> S (T T_MODULE) :: r95 | _ -> r74) - | 2078 -> Select (function - | -1 -> S (T T_RPAREN) :: r187 - | _ -> S (T T_COLONCOLON) :: r575) - | 617 -> Select (function - | -1 -> S (T T_RPAREN) :: r187 - | _ -> Sub (r3) :: r480) - | 561 -> Select (function - | 623 | 1118 | 1614 -> r48 - | -1 -> S (T T_RPAREN) :: r187 - | _ -> r413) - | 640 -> Select (function - | -1 -> S (T T_RBRACKET) :: r507 - | _ -> Sub (r509) :: r511) - | 953 -> Select (function - | -1 -> S (T T_RBRACKET) :: r507 - | _ -> Sub (r706) :: r708) + | 2089 -> Select (function + | -1 -> S (T T_RPAREN) :: r181 + | _ -> S (T T_COLONCOLON) :: r577) + | 625 -> Select (function + | -1 -> S (T T_RPAREN) :: r181 + | _ -> Sub (r3) :: r484) + | 569 -> Select (function + | 631 | 1124 | 1620 -> r48 + | -1 -> S (T T_RPAREN) :: r181 + | _ -> r407) + | 648 -> Select (function + | -1 -> S (T T_RBRACKET) :: r511 + | _ -> Sub (r513) :: r515) + | 959 -> Select (function + | -1 -> S (T T_RBRACKET) :: r511 + | _ -> Sub (r708) :: r710) | 131 -> Select (function - | 158 | 275 | 298 | 426 | 987 | 1383 | 1443 | 2758 -> r74 + | 153 | 283 | 306 | 434 | 993 | 1389 | 1449 | 2767 -> r74 | _ -> S (T T_QUOTE) :: r83) - | 863 -> Select (function - | 61 | 219 | 577 | 588 | 2044 | 2050 -> r650 - | _ -> S (T T_OPEN) :: r642) - | 2080 -> Select (function - | -1 -> r697 - | _ -> S (T T_LPAREN) :: r1403) - | 259 -> Select (function - | -1 -> r261 - | _ -> S (T T_DOT) :: r264) - | 907 -> Select (function - | -1 -> r261 - | _ -> S (T T_DOT) :: r692) - | 155 -> Select (function - | -1 | 263 | 270 | 316 | 322 | 329 | 354 | 394 | 402 | 410 | 418 | 431 | 439 | 447 | 455 | 2672 | 2680 | 2726 | 2734 | 2742 | 2750 | 2763 | 2771 | 2779 | 2787 | 2797 | 2805 | 2815 | 2823 -> r106 - | _ -> S (T T_COLON) :: r112) + | 869 -> Select (function + | 61 | 227 | 585 | 596 | 2055 | 2061 -> r652 + | _ -> S (T T_OPEN) :: r644) + | 2091 -> Select (function + | -1 -> r699 + | _ -> S (T T_LPAREN) :: r1407) + | 267 -> Select (function + | -1 -> r255 + | _ -> S (T T_DOT) :: r258) + | 913 -> Select (function + | -1 -> r255 + | _ -> S (T T_DOT) :: r694) + | 150 -> Select (function + | -1 | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 2549 | 2557 | 2735 | 2743 | 2751 | 2759 | 2772 | 2780 | 2788 | 2796 | 2806 | 2814 | 2824 | 2832 -> r103 + | _ -> S (T T_COLON) :: r109) | 126 -> Select (function - | 842 | 987 | 1000 | 1035 | 1042 | 1056 | 1383 | 1443 | 1914 -> r63 + | 848 | 993 | 1006 | 1041 | 1048 | 1062 | 1389 | 1449 | 1916 -> r63 | _ -> r61) | 141 -> Select (function - | -1 | 157 | 263 | 270 | 274 | 297 | 316 | 320 | 322 | 326 | 329 | 333 | 354 | 358 | 394 | 398 | 402 | 406 | 410 | 414 | 418 | 422 | 425 | 431 | 435 | 439 | 443 | 447 | 451 | 455 | 459 | 462 | 466 | 2672 | 2676 | 2680 | 2684 | 2726 | 2730 | 2734 | 2738 | 2742 | 2746 | 2750 | 2754 | 2757 | 2763 | 2767 | 2771 | 2775 | 2779 | 2783 | 2787 | 2791 | 2797 | 2801 | 2805 | 2809 | 2815 | 2819 | 2823 | 2827 -> r99 + | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 2549 | 2553 | 2557 | 2561 | 2735 | 2739 | 2743 | 2747 | 2751 | 2755 | 2759 | 2763 | 2766 | 2772 | 2776 | 2780 | 2784 | 2788 | 2792 | 2796 | 2800 | 2806 | 2810 | 2814 | 2818 | 2824 | 2828 | 2832 | 2836 -> r99 | _ -> r61) - | 2855 -> Select (function - | 158 | 275 | 298 | 426 | 987 | 1383 | 1443 | 2758 -> r61 + | 2857 -> Select (function + | 153 | 283 | 306 | 434 | 993 | 1389 | 1449 | 2767 -> r61 | _ -> r82) | 123 -> Select (function - | 842 | 987 | 1000 | 1035 | 1042 | 1056 | 1383 | 1443 | 1914 -> r64 + | 848 | 993 | 1006 | 1041 | 1048 | 1062 | 1389 | 1449 | 1916 -> r64 | _ -> r62) | 140 -> Select (function - | -1 | 157 | 263 | 270 | 274 | 297 | 316 | 320 | 322 | 326 | 329 | 333 | 354 | 358 | 394 | 398 | 402 | 406 | 410 | 414 | 418 | 422 | 425 | 431 | 435 | 439 | 443 | 447 | 451 | 455 | 459 | 462 | 466 | 2672 | 2676 | 2680 | 2684 | 2726 | 2730 | 2734 | 2738 | 2742 | 2746 | 2750 | 2754 | 2757 | 2763 | 2767 | 2771 | 2775 | 2779 | 2783 | 2787 | 2791 | 2797 | 2801 | 2805 | 2809 | 2815 | 2819 | 2823 | 2827 -> r100 + | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 2549 | 2553 | 2557 | 2561 | 2735 | 2739 | 2743 | 2747 | 2751 | 2755 | 2759 | 2763 | 2766 | 2772 | 2776 | 2780 | 2784 | 2788 | 2792 | 2796 | 2800 | 2806 | 2810 | 2814 | 2818 | 2824 | 2828 | 2832 | 2836 -> r100 | _ -> r62) - | 2854 -> Select (function - | 158 | 275 | 298 | 426 | 987 | 1383 | 1443 | 2758 -> r62 + | 2856 -> Select (function + | 153 | 283 | 306 | 434 | 993 | 1389 | 1449 | 2767 -> r62 | _ -> r83) - | 1920 -> Select (function - | 113 | 1064 | 1882 | 2061 | 2181 | 2397 | 2417 | 2421 | 2655 -> r79 + | 1922 -> Select (function + | 113 | 1070 | 1888 | 2072 | 2142 | 2241 | 2261 | 2265 | 2532 -> r79 | _ -> r96) - | 1919 -> Select (function - | 113 | 1064 | 1882 | 2061 | 2181 | 2397 | 2417 | 2421 | 2655 -> r80 + | 1921 -> Select (function + | 113 | 1070 | 1888 | 2072 | 2142 | 2241 | 2261 | 2265 | 2532 -> r80 | _ -> r97) - | 1918 -> Select (function - | 113 | 1064 | 1882 | 2061 | 2181 | 2397 | 2417 | 2421 | 2655 -> r81 + | 1920 -> Select (function + | 113 | 1070 | 1888 | 2072 | 2142 | 2241 | 2261 | 2265 | 2532 -> r81 | _ -> r98) - | 2585 -> Select (function - | -1 -> r122 - | _ -> r106) - | 583 -> Select (function - | -1 -> r154 - | _ -> r106) - | 2707 -> Select (function - | -1 -> r122 - | _ -> r106) - | 204 -> Select (function - | -1 -> r154 - | _ -> r106) - | 2706 -> Select (function - | -1 -> r123 - | _ -> r147) - | 2584 -> Select (function - | -1 -> r123 - | _ -> r436) - | 167 -> Select (function - | -1 -> r124 - | _ -> r148) - | 580 -> Select (function - | -1 -> r124 - | _ -> r437) - | 166 -> Select (function - | -1 -> r125 - | _ -> r149) - | 579 -> Select (function - | -1 -> r125 - | _ -> r438) - | 203 -> Select (function - | -1 -> r155 - | _ -> r162) - | 582 -> Select (function - | -1 -> r155 - | _ -> r444) - | 260 -> Select (function - | -1 -> r260 - | _ -> r264) - | 908 -> Select (function - | -1 -> r260 - | _ -> r692) - | 2104 -> Select (function - | -1 -> r1350 - | _ -> r1425) - | 2103 -> Select (function - | -1 -> r1351 - | _ -> r1426) - | 2102 -> Select (function - | -1 -> r1352 - | _ -> r1427) - | 2076 -> Select (function - | -1 -> r1399 - | _ -> r1393) - | 2075 -> Select (function - | -1 -> r1400 - | _ -> r1394) - | 2074 -> Select (function - | -1 -> r1401 - | _ -> r1395) + | 2462 -> Select (function + | -1 -> r437 + | _ -> r103) + | 591 -> Select (function + | -1 -> r447 + | _ -> r103) + | 268 -> Select (function + | -1 -> r254 + | _ -> r258) + | 914 -> Select (function + | -1 -> r254 + | _ -> r694) + | 2461 -> Select (function + | -1 -> r438 + | _ -> r430) + | 588 -> Select (function + | -1 -> r439 + | _ -> r431) + | 587 -> Select (function + | -1 -> r440 + | _ -> r432) + | 590 -> Select (function + | -1 -> r448 + | _ -> r446) + | 2087 -> Select (function + | -1 -> r1403 + | _ -> r1397) + | 2086 -> Select (function + | -1 -> r1404 + | _ -> r1398) + | 2085 -> Select (function + | -1 -> r1405 + | _ -> r1399) | _ -> raise Not_found diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index dacfe2c23..aa5e33162 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -2166,7 +2166,9 @@ let rec components_of_module_maker fcomp_subst_cache = stamped_create 17 }) | Mty_ident p | Mty_strengthen (_, p, _) -> Error (No_components_abstract p) | Mty_alias p -> Error (No_components_alias p) - | Mty_for_hole -> Error No_components_abstract + (* TODO: I'm not sure what to do for this. Is create_local the right way to create + this? *) + | Mty_for_hole -> Error (No_components_abstract (Pident (Ident.create_local "hole"))) (* Insertion of bindings by identifier + path *) @@ -2750,177 +2752,6 @@ let enter_unbound_module name reason env = modules = IdTbl.add id (Mod_unbound reason) env.modules; summary = Env_module_unbound(env.summary, name, reason) } -(* Open a signature path *) - -let add_components slot root env0 comps = - let add_l w comps env0 = - TycompTbl.add_open slot w root comps env0 - in - let add w comps env0 = IdTbl.add_open slot w root comps env0 in - let add_types w comps env0 additions = - let types = add w comps env0 in - let additions = short_paths_type_open root comps additions in - types, additions - in - let add_cltypes w comps env0 additions = - let cltypes = add w comps env0 in - let additions = short_paths_class_type_open root comps additions in - cltypes, additions - in - let add_modtypes w comps env0 additions = - let modtypes = add w comps env0 in - let additions = short_paths_module_type_open root comps additions in - modtypes, additions - in - let add_modules w comps env0 additions = - let modules = add w comps env0 in - let additions = short_paths_module_open root comps additions in - modules, additions - in - let constrs = - add_l (fun x -> `Constructor x) comps.comp_constrs env0.constrs - in - let labels = - add_l (fun x -> `Label x) comps.comp_labels env0.labels - in - let values = - add (fun x -> `Value x) comps.comp_values env0.values - in - let types, additions = - add_types (fun x -> `Type x) - comps.comp_types env0.types env0.short_paths_additions - in - let modtypes, additions = - add_modtypes (fun x -> `Module_type x) - comps.comp_modtypes env0.modtypes additions - in - let classes = - add (fun x -> `Class x) comps.comp_classes env0.classes - in - let cltypes, additions = - add_cltypes (fun x -> `Class_type x) - comps.comp_cltypes env0.cltypes additions - in - let modules, additions = - add_modules (fun x -> `Module x) - comps.comp_modules env0.modules additions - in - { env0 with - summary = Env_open(env0.summary, root); - constrs; - labels; - values; - types; - modtypes; - classes; - cltypes; - modules; - short_paths_additions = additions - } - -let open_signature slot root env0 : (_,_) result = - match get_components_res (find_module_components root env0) with - | Error _ -> Error `Not_found - | exception Not_found -> Error `Not_found - | Ok (Functor_comps _) -> Error `Functor - | Ok (Structure_comps comps) -> - Ok (add_components slot root env0 comps) - -let remove_last_open root env0 = - let rec filter_summary summary = - match summary with - Env_empty -> raise Exit - | Env_open (s, p) -> - if Path.same p root then s else raise Exit - | Env_value _ - | Env_type _ - | Env_extension _ - | Env_module _ - | Env_modtype _ - | Env_class _ - | Env_cltype _ - | Env_functor_arg _ - | Env_constraints _ - | Env_persistent _ - | Env_copy_types _ - | Env_value_unbound _ - | Env_module_unbound _ -> - map_summary filter_summary summary - in - match filter_summary env0.summary with - | summary -> - let rem_l tbl = TycompTbl.remove_last_open root tbl - and rem tbl = IdTbl.remove_last_open root tbl in - Some { env0 with - summary; - constrs = rem_l env0.constrs; - labels = rem_l env0.labels; - values = rem env0.values; - types = rem env0.types; - modtypes = rem env0.modtypes; - classes = rem env0.classes; - cltypes = rem env0.cltypes; - modules = rem env0.modules; } - | exception Exit -> - None - -(* Open a signature from a file *) - -let open_pers_signature name env = - match open_signature None (Pident(Ident.create_persistent name)) env with - | (Ok _ | Error `Not_found as res) -> res - | Error `Functor -> assert false - (* a compilation unit cannot refer to a functor *) - -let open_signature - ?(used_slot = ref false) - ?(loc = Location.none) ?(toplevel = false) - ovf root env = - let unused root = - match ovf with - | Asttypes.Fresh -> Warnings.Unused_open (Path.name root) - | Asttypes.Override -> Warnings.Unused_open_bang (Path.name root) - in - let warn_unused = - Warnings.is_active (unused root) - and warn_shadow_id = - Warnings.is_active (Warnings.Open_shadow_identifier ("", "")) - and warn_shadow_lc = - Warnings.is_active (Warnings.Open_shadow_label_constructor ("","")) - in - if not toplevel && not loc.Location.loc_ghost - && (warn_unused || warn_shadow_id || warn_shadow_lc) - then begin - let used = used_slot in - if warn_unused then - !add_delayed_check_forward - (fun () -> - if not !used then begin - used := true; - Location.prerr_warning loc (unused (!shorten_module_path env root)) - end - ); - let shadowed = ref [] in - let slot s b = - begin match check_shadowing env b with - | Some kind when - ovf = Asttypes.Fresh && not (List.mem (kind, s) !shadowed) -> - shadowed := (kind, s) :: !shadowed; - let w = - match kind with - | "label" | "constructor" -> - Warnings.Open_shadow_label_constructor (kind, s) - | _ -> Warnings.Open_shadow_identifier (kind, s) - in - Location.prerr_warning loc w - | _ -> () - end; - used := true - in - open_signature (Some slot) root env - end - else open_signature None root env - (* Read a signature from a file *) let read_signature modname cmi ~add_binding = let mty = read_pers_mod modname cmi ~add_binding in @@ -3631,6 +3462,26 @@ let add_components slot root env0 comps locks = let add w comps env0 = IdTbl.add_open slot w root comps ([] : empty list) env0 in + let add_types w comps env0 additions = + let types = add w comps env0 in + let additions = short_paths_type_open root comps additions in + types, additions + in + let add_cltypes w comps env0 additions = + let cltypes = add w comps env0 in + let additions = short_paths_class_type_open root comps additions in + cltypes, additions + in + let add_modtypes w comps env0 additions = + let modtypes = add w comps env0 in + let additions = short_paths_module_type_open root comps additions in + modtypes, additions + in + let add_modules w comps env0 additions = + let modules = add_v w comps env0 in + let additions = short_paths_module_open root comps additions in + modules, additions + in let constrs = add_l (fun x -> `Constructor x) comps.comp_constrs env0.constrs in @@ -3640,20 +3491,24 @@ let add_components slot root env0 comps locks = let values = add_v (fun x -> `Value x) comps.comp_values env0.values in - let types = - add (fun x -> `Type x) comps.comp_types env0.types + let types, additions = + add_types (fun x -> `Type x) + comps.comp_types env0.types env0.short_paths_additions in - let modtypes = - add (fun x -> `Module_type x) comps.comp_modtypes env0.modtypes + let modtypes, additions = + add_modtypes (fun x -> `Module_type x) + comps.comp_modtypes env0.modtypes additions in let classes = add_v (fun x -> `Class x) comps.comp_classes env0.classes in - let cltypes = - add (fun x -> `Class_type x) comps.comp_cltypes env0.cltypes + let cltypes, additions = + add_cltypes (fun x -> `Class_type x) + comps.comp_cltypes env0.cltypes additions in - let modules = - add_v (fun x -> `Module x) comps.comp_modules env0.modules + let modules, additions = + add_modules (fun x -> `Module x) + comps.comp_modules env0.modules additions in { env0 with summary = Env_open(env0.summary, root); @@ -3665,6 +3520,7 @@ let add_components slot root env0 comps locks = classes; cltypes; modules; + short_paths_additions = additions } let open_signature_by_path path env0 = diff --git a/src/ocaml/typing/mtype.ml b/src/ocaml/typing/mtype.ml index 28fb0f1f4..ffc19b348 100644 --- a/src/ocaml/typing/mtype.ml +++ b/src/ocaml/typing/mtype.ml @@ -455,7 +455,7 @@ let rec nondep_mty_with_presence env va ids pres mty = nondep_mty res_env va ids res) in pres, mty - | Mty_for_hole -> pres, Mty_for_hole + | Mty_for_hole as mty_for_hole -> pres, mty_for_hole | Mty_strengthen (mty,p,a) -> (* If we end up strengthening an abstract type with a dependent module, just drop the strengthening. *) diff --git a/src/ocaml/typing/persistent_env.ml b/src/ocaml/typing/persistent_env.ml index b5de414dd..4dfdde67e 100644 --- a/src/ocaml/typing/persistent_env.ml +++ b/src/ocaml/typing/persistent_env.ml @@ -555,7 +555,7 @@ and compute_global penv modname ~params check = let compare_by_param (param1, _) (param2, _) = Global_module.Name.compare param1 param2 in - Misc.Stdlib.List.merge_iter + Misc_stdlib.List.merge_iter ~cmp:compare_by_param expected_type_by_param_name arg_global_by_param_name diff --git a/src/ocaml/typing/typecore.ml b/src/ocaml/typing/typecore.ml index 02d893bf0..a2677b87a 100644 --- a/src/ocaml/typing/typecore.ml +++ b/src/ocaml/typing/typecore.ml @@ -2615,6 +2615,7 @@ let rec type_pat pat_type = expected_ty; pat_env = !!penv; pat_attributes = Msupport.recovery_attributes sp.ppat_attributes; + pat_unique_barrier = Unique_barrier.not_computed (); } in (match category with @@ -6009,6 +6010,13 @@ and type_expect_ exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_array(mut, sargl) -> + let mutability = + match mut with + | Mutable -> Mutable Alloc.Comonadic.Const.legacy + | Immutable -> + Language_extension.assert_enabled ~loc Immutable_arrays (); + Immutable + in type_generic_array ~loc ~env @@ -6695,7 +6703,6 @@ and type_expect_ exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_stack e -> - let exp = type_expect env expected_mode e ty_expected_explained in let expected_mode' = mode_morph (Value.join_with (Comonadic Areality) Regionality.Const.Local) expected_mode @@ -6714,7 +6721,7 @@ and type_expect_ begin match Locality.submode Locality.local (Alloc.proj (Comonadic Areality) alloc_mode.mode) with | Ok () -> () - | Error _ -> raise (error (e.exp_loc, env, + | Error _ -> raise (error (e.pexp_loc, env, Cannot_stack_allocate alloc_mode.locality_context)) end | Texp_list_comprehension _ -> unsupported List_comprehension diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index 2c616188f..288d55bbb 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -2063,7 +2063,8 @@ and transl_signature ?(keep_warnings = false) env sig_acc {psg_items; psg_modali transl_sig (Env.in_signature true env) [] [] sig_acc psg_items in let rem = Signature_names.simplify final_env names rem in - { sig_items = trem; sig_type = rem; sig_final_env = final_env }) + { sig_items = trem; sig_type = rem; sig_final_env = final_env; + sig_modalities; sig_sloc = psg_loc }) and transl_modtype_decl env pmtd = Builtin_attributes.warning_scope pmtd.pmtd_attributes @@ -2433,7 +2434,7 @@ and package_constraints env loc mty constrs = match Mtype.scrape env mty with | Mty_signature sg -> Mty_signature (package_constraints_sig env loc sg constrs) - | Mty_for_hole -> Mty_for_hole + | Mty_for_hole as mty_for_hole -> mty_for_hole | mty -> let rec ident = function Mty_ident p -> p From f6796471bd9ce26c1a73bdff7c45eacc9b1679df Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 10:29:22 -0500 Subject: [PATCH 09/15] Resolve more issues --- src/analysis/destruct.ml | 19 +- src/analysis/ptyp_of_type.ml | 6 +- src/ocaml/preprocess/parser_raw.ml | 824 ++++++++++++++-------------- src/ocaml/preprocess/parser_raw.mli | 68 +-- 4 files changed, 454 insertions(+), 463 deletions(-) diff --git a/src/analysis/destruct.ml b/src/analysis/destruct.ml index 5bc694e2e..31826bf7f 100644 --- a/src/analysis/destruct.ml +++ b/src/analysis/destruct.ml @@ -575,13 +575,7 @@ module Conv = struct (* PR#7330 *) mkpat (Ppat_var nm) | Tpat_any | Tpat_var _ -> mkpat Ppat_any - | Tpat_constant c -> begin - match Untypeast.constant c with - | `Jane_syntax c -> - Jane_syntax.Layouts.pat_of (Lpat_constant c) - ~loc:!Ast_helper.default_loc - | `Parsetree c -> mkpat (Ppat_constant c) - end + | Tpat_constant c -> mkpat (Ppat_constant (Untypeast.constant c)) | Tpat_alias (p, _, _, _, _) -> loop p | Tpat_tuple lst -> let lst = List.map ~f:(fun (lbl, p) -> (lbl, loop p)) lst in @@ -617,17 +611,16 @@ module Conv = struct mkpat (Ppat_record (fields, Open)) | Tpat_array (mut, _, lst) -> let lst = List.map ~f:loop lst in - begin + let mut : Asttypes.mutable_flag = match mut with | Mutable mode -> assert ( Mode.Alloc.Comonadic.Const.eq mode Mode.Alloc.Comonadic.Const.legacy); - mkpat (Ppat_array lst) - | Immutable -> - Jane_syntax.Immutable_arrays.pat_of ~loc:pat.pat_loc - (Iapat_immutable_array lst) - end + Mutable + | Immutable -> Immutable + in + mkpat (Ppat_array (mut, lst)) | Tpat_lazy p -> mkpat (Ppat_lazy (loop p)) in let ps = loop typed in diff --git a/src/analysis/ptyp_of_type.ml b/src/analysis/ptyp_of_type.ml index 97ceb1053..689f998b4 100644 --- a/src/analysis/ptyp_of_type.ml +++ b/src/analysis/ptyp_of_type.ml @@ -28,10 +28,8 @@ let rec module_type = let out = module_type type_out in Mty.functor_ param out | Mty_strengthen (mty, path, _aliasability) -> - Jane_syntax.Strengthen.mty_of ~loc:Location.none - { mty = module_type mty; - mod_id = Location.mknoloc (Untypeast.lident_of_path path) - } + Mty.strengthen ~loc:Location.none (module_type mty) + (Location.mknoloc (Untypeast.lident_of_path path)) and core_type type_expr = let open Ast_helper in diff --git a/src/ocaml/preprocess/parser_raw.ml b/src/ocaml/preprocess/parser_raw.ml index e5cede8e2..3a6e03361 100644 --- a/src/ocaml/preprocess/parser_raw.ml +++ b/src/ocaml/preprocess/parser_raw.ml @@ -3311,7 +3311,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Asttypes.loc) = let _1 = + let _v : (string Location.loc) = let _1 = let _1 = # 5292 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) @@ -3359,13 +3359,13 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (string Asttypes.loc) = Obj.magic _3 in + let _3 : (string Location.loc) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (string Asttypes.loc) = let _1 = + let _v : (string Location.loc) = let _1 = let _1 = # 5293 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "." ^ _3.txt ) @@ -3449,7 +3449,7 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _2 : (string Location.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -3941,7 +3941,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let self : (string Asttypes.loc option) = Obj.magic self in + let self : (string Location.loc option) = Obj.magic self in let _4 : (Parsetree.class_expr) = Obj.magic _4 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -4026,7 +4026,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let self : (string Asttypes.loc option) = Obj.magic self in + let self : (string Location.loc option) = Obj.magic self in let _4 : (Parsetree.class_expr) = Obj.magic _4 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -4094,7 +4094,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _2 : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -4148,7 +4148,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _2 : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -6531,13 +6531,13 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_bs_ in - let _v : (string Asttypes.loc option * Parsetree.class_type_declaration list) = let _1 = + let _v : (string Location.loc option * Parsetree.class_type_declaration list) = let _1 = let a = let attrs2 = let _1 = _1_inlined3 in @@ -6749,7 +6749,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -7026,7 +7026,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.pattern) = Obj.magic _3 in @@ -7293,7 +7293,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.pattern) = Obj.magic _3 in @@ -7560,7 +7560,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.pattern) = Obj.magic _3 in @@ -7796,7 +7796,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _3 : (Asttypes.direction_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in @@ -7943,7 +7943,7 @@ module Tables = struct let _3 : (Asttypes.direction_flag) = Obj.magic _3 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -8104,12 +8104,12 @@ module Tables = struct } = _menhir_stack in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined6 : (Parsetree.attributes) = Obj.magic _1_inlined6 in - let _1_inlined5 : (string Asttypes.loc option) = Obj.magic _1_inlined5 in + let _1_inlined5 : (string Location.loc option) = Obj.magic _1_inlined5 in let _1_inlined4 : unit = Obj.magic _1_inlined4 in let _3 : (Asttypes.direction_flag) = Obj.magic _3 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -8337,7 +8337,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -9538,7 +9538,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -10401,7 +10401,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (string Asttypes.loc option) = + let _v : (string Location.loc option) = # 5318 "src/ocaml/preprocess/parser_raw.mly" ( None ) # 10408 "src/ocaml/preprocess/parser_raw.ml" @@ -10428,12 +10428,12 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _2 : (string Location.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (string Asttypes.loc option) = + let _v : (string Location.loc option) = # 5319 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) # 10440 "src/ocaml/preprocess/parser_raw.ml" @@ -10474,7 +10474,7 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _2 : (string Location.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -10767,7 +10767,7 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _2 : (string Location.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -10898,7 +10898,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -11068,7 +11068,7 @@ module Tables = struct let _5 : (Parsetree.module_expr) = Obj.magic _5 in let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -11185,11 +11185,11 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _2_inlined1 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let _2_inlined1 : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic _2_inlined1 in let _1_inlined3 : (string) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -11315,7 +11315,7 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.module_expr) = Obj.magic _5 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -11423,7 +11423,7 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.module_expr) = Obj.magic _5 in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -11520,7 +11520,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -11627,7 +11627,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -11748,7 +11748,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -11890,14 +11890,14 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined6 : (Parsetree.attributes) = Obj.magic _1_inlined6 in - let _1_inlined5 : (string Asttypes.loc option) = Obj.magic _1_inlined5 in + let _1_inlined5 : (string Location.loc option) = Obj.magic _1_inlined5 in let _1_inlined4 : unit = Obj.magic _1_inlined4 in let _6 : unit = Obj.magic _6 in let _1_inlined3 : (Parsetree.expression) = Obj.magic _1_inlined3 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12093,12 +12093,12 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in + let _1_inlined4 : (string Location.loc option) = Obj.magic _1_inlined4 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12310,17 +12310,17 @@ module Tables = struct } = _menhir_stack in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined8 : (Parsetree.attributes) = Obj.magic _1_inlined8 in - let _1_inlined7 : (string Asttypes.loc option) = Obj.magic _1_inlined7 in + let _1_inlined7 : (string Location.loc option) = Obj.magic _1_inlined7 in let _1_inlined6 : unit = Obj.magic _1_inlined6 in let _6 : unit = Obj.magic _6 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in + let _1_inlined4 : (string Location.loc option) = Obj.magic _1_inlined4 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12538,7 +12538,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12655,12 +12655,12 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in + let _1_inlined4 : (string Location.loc option) = Obj.magic _1_inlined4 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12820,7 +12820,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12943,7 +12943,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.pattern) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13017,7 +13017,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13091,7 +13091,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13230,7 +13230,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -13421,7 +13421,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -13568,7 +13568,7 @@ module Tables = struct let _4 : (Parsetree.core_type option) = Obj.magic _4 in let _3 : (Parsetree.function_param list) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13975,7 +13975,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( # 1055 "src/ocaml/preprocess/parser_raw.mly" @@ -14208,7 +14208,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -14437,7 +14437,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -14670,7 +14670,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( # 1058 "src/ocaml/preprocess/parser_raw.mly" @@ -14907,7 +14907,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( # 1059 "src/ocaml/preprocess/parser_raw.mly" @@ -15151,7 +15151,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( # 1060 "src/ocaml/preprocess/parser_raw.mly" @@ -15398,7 +15398,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -15638,7 +15638,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( # 1061 "src/ocaml/preprocess/parser_raw.mly" @@ -15871,7 +15871,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -16100,7 +16100,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -16329,7 +16329,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -16558,7 +16558,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -16787,7 +16787,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17016,7 +17016,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17245,7 +17245,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17474,7 +17474,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17703,7 +17703,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -17932,7 +17932,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -18161,7 +18161,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -18390,7 +18390,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -18619,7 +18619,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -18848,7 +18848,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -19077,7 +19077,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in @@ -19396,7 +19396,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -19602,7 +19602,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( @@ -19843,7 +19843,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in @@ -20107,7 +20107,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -20376,7 +20376,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -20645,7 +20645,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -20935,7 +20935,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -21281,7 +21281,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _5 : unit = Obj.magic _5 in @@ -21603,7 +21603,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -21949,7 +21949,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _5 : unit = Obj.magic _5 in @@ -22271,7 +22271,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _5 : unit = Obj.magic _5 in @@ -22617,7 +22617,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _5 : unit = Obj.magic _5 in @@ -22989,7 +22989,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let ty_params : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic ty_params in + let ty_params : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic ty_params in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -23322,7 +23322,7 @@ module Tables = struct }; } = _menhir_stack in let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : (string Asttypes.loc) = Obj.magic _4 in + let _4 : (string Location.loc) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -23525,7 +23525,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = # 4254 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],None) ) @@ -23558,7 +23558,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = # 4255 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,None) ) @@ -23605,7 +23605,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = # 4257 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,Some _4) ) @@ -23661,12 +23661,12 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.constructor_arguments) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = let _1 = let xs = @@ -23718,7 +23718,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = # 4262 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],Some _2) ) @@ -23760,12 +23760,12 @@ module Tables = struct } = _menhir_stack in let _4 : (Parsetree.core_type) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = let _1 = let xs = @@ -23825,7 +23825,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let vars_args_res : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let vars_args_res : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -23833,9 +23833,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in let _v : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = let attrs = + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = let attrs = let _1 = _1_inlined2 in # 5315 "src/ocaml/preprocess/parser_raw.mly" @@ -23897,16 +23897,16 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let vars_args_res : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let vars_args_res : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in let _v : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = let attrs = + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = let attrs = let _1 = _1_inlined1 in # 5315 "src/ocaml/preprocess/parser_raw.mly" @@ -24015,7 +24015,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in @@ -24026,12 +24026,12 @@ module Tables = struct ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * + let _v : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined4 in @@ -24182,7 +24182,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined4 : unit = Obj.magic _1_inlined4 in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in @@ -24194,12 +24194,12 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined5_ in - let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * + let _v : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined5 in @@ -24344,7 +24344,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( @@ -24354,12 +24354,12 @@ module Tables = struct ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * + let _v : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined3 in @@ -24499,7 +24499,7 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined3 : ( @@ -24510,12 +24510,12 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * + let _v : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined4 in @@ -24849,7 +24849,7 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _2 : (string Location.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -24979,7 +24979,7 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (string Asttypes.loc list) = Obj.magic _3 in + let _3 : (string Location.loc list) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.jkind_annotation) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -25239,7 +25239,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_jkind_ in - let _v : (string Asttypes.loc * Parsetree.jkind_annotation) = let abbrev = + let _v : (string Location.loc * Parsetree.jkind_annotation) = let abbrev = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -25312,7 +25312,7 @@ module Tables = struct (string) # 25314 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in - let _1 : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = Obj.magic _1 in + let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in @@ -25433,7 +25433,7 @@ module Tables = struct (string) # 25435 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in - let _1 : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = Obj.magic _1 in + let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in @@ -25894,7 +25894,7 @@ module Tables = struct } = _menhir_stack in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let _1 : ( # 1085 "src/ocaml/preprocess/parser_raw.mly" @@ -26022,7 +26022,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let _1 : ( # 1085 "src/ocaml/preprocess/parser_raw.mly" @@ -27459,7 +27459,7 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let pat : (Parsetree.pattern) = Obj.magic pat in let _2 : unit = Obj.magic _2 in @@ -27592,7 +27592,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let pat : (Parsetree.pattern) = Obj.magic pat in let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in @@ -27723,7 +27723,7 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _1 : unit = Obj.magic _1 in @@ -31872,7 +31872,7 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32002,7 +32002,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32134,7 +32134,7 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in @@ -32279,7 +32279,7 @@ module Tables = struct let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in @@ -32420,7 +32420,7 @@ module Tables = struct let _8 : unit = Obj.magic _8 in let _6 : (Parsetree.core_type) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in - let _4 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _4 in + let _4 : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (string) = Obj.magic _1 in @@ -32526,7 +32526,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let _6 : (Parsetree.core_type) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in - let _4 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _4 in + let _4 : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (string) = Obj.magic _1 in @@ -32993,7 +32993,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -33211,7 +33211,7 @@ module Tables = struct Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _2 : (string Location.loc) = Obj.magic _2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -33519,7 +33519,7 @@ module Tables = struct } = _menhir_stack in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -33635,7 +33635,7 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -33857,7 +33857,7 @@ module Tables = struct } = _menhir_stack in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -34056,7 +34056,7 @@ module Tables = struct let modes : (Parsetree.modes) = Obj.magic modes in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -35233,7 +35233,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.type_declaration list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in + let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs_inlined1 in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( @@ -35408,7 +35408,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.type_declaration list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in + let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs_inlined1 in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in @@ -36403,7 +36403,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_opat_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = + let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = # 124 "" ( None ) # 36410 "src/ocaml/preprocess/parser_raw.ml" @@ -36487,7 +36487,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = + let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let _2 = # 126 "" ( Some x ) # 36494 "src/ocaml/preprocess/parser_raw.ml" @@ -36585,7 +36585,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x = + let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let x = let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -36663,7 +36663,7 @@ module Tables = struct }; }; } = _menhir_stack in - let tail : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = Obj.magic tail in + let tail : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = Obj.magic tail in let _2 : unit = Obj.magic _2 in let opat : (Parsetree.pattern option) = Obj.magic opat in let octy : (Parsetree.core_type option) = Obj.magic octy in @@ -36671,7 +36671,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_tail_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x = + let _v : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = let x = let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -37389,7 +37389,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let ty = let _1 = _1_inlined2 in @@ -37474,7 +37474,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _5 = let _1 = _1_inlined2 in @@ -37569,7 +37569,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _5 = let _1 = _1_inlined3 in @@ -37681,7 +37681,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _6 = let _1 = _1_inlined2 in @@ -37798,7 +37798,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _6 = let _1 = _1_inlined3 in @@ -37919,7 +37919,7 @@ module Tables = struct let _10 : unit = Obj.magic _10 in let _9 : (Parsetree.core_type) = Obj.magic _9 in let _8 : unit = Obj.magic _8 in - let _7 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _7 in + let _7 : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic _7 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( @@ -37932,7 +37932,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__11_ in - let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = @@ -38068,7 +38068,7 @@ module Tables = struct let _10 : unit = Obj.magic _10 in let _9 : (Parsetree.core_type) = Obj.magic _9 in let _8 : unit = Obj.magic _8 in - let _7 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _7 in + let _7 : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic _7 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( @@ -38082,7 +38082,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__11_ in - let _v : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = @@ -39824,12 +39824,12 @@ module Tables = struct # 39825 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let attrs2 = + let _v : (Parsetree.module_substitution * string Location.loc option) = let attrs2 = let _1 = _1_inlined4 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -40543,13 +40543,13 @@ module Tables = struct let typ : (Parsetree.module_type option) = Obj.magic typ in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = + let _v : (Parsetree.module_type_declaration * string Location.loc option) = let attrs2 = let _1 = _1_inlined3 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -40653,13 +40653,13 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = + let _v : (Parsetree.module_type_declaration * string Location.loc option) = let attrs2 = let _1 = _1_inlined3 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -40781,7 +40781,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = + let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = # 5166 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [] ) # 40788 "src/ocaml/preprocess/parser_raw.ml" @@ -40806,7 +40806,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = + let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = # 5168 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, [] ) # 40813 "src/ocaml/preprocess/parser_raw.ml" @@ -40831,7 +40831,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) = let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in @@ -41027,7 +41027,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Asttypes.loc * Parsetree.jkind_annotation option) = let _1 = + let _v : (string Location.loc * Parsetree.jkind_annotation option) = let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in @@ -41094,7 +41094,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (string Asttypes.loc * Parsetree.jkind_annotation option) = let name = + let _v : (string Location.loc * Parsetree.jkind_annotation option) = let name = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -41126,11 +41126,11 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic _1 in + let _1 : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 3631 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 41137 "src/ocaml/preprocess/parser_raw.ml" @@ -41159,7 +41159,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Asttypes.loc list) = let x = + let _v : (string Location.loc list) = let x = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in @@ -41196,7 +41196,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let xs : (string Location.loc list) = Obj.magic xs in let _1 : ( # 1085 "src/ocaml/preprocess/parser_raw.mly" (string) @@ -41205,7 +41205,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (string Asttypes.loc list) = let x = + let _v : (string Location.loc list) = let x = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in @@ -41637,11 +41637,11 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : (string Asttypes.loc * Parsetree.jkind_annotation option) = Obj.magic x in + let x : (string Location.loc * Parsetree.jkind_annotation option) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 221 "" ( [ x ] ) # 41648 "src/ocaml/preprocess/parser_raw.ml" @@ -41668,12 +41668,12 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in - let x : (string Asttypes.loc * Parsetree.jkind_annotation option) = Obj.magic x in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let x : (string Location.loc * Parsetree.jkind_annotation option) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 223 "" ( x :: xs ) # 41680 "src/ocaml/preprocess/parser_raw.ml" @@ -42694,12 +42694,12 @@ module Tables = struct let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let me : (Parsetree.module_expr) = Obj.magic me in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) = let attrs2 = + let _v : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = let attrs2 = let _1 = _1_inlined2 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -42783,13 +42783,13 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let me : (Parsetree.module_expr) = Obj.magic me in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) = let attrs2 = + let _v : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = let attrs2 = let _1 = _1_inlined3 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -42867,12 +42867,12 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) = let attrs2 = + let _v : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = let attrs2 = let _1 = _1_inlined3 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -42967,13 +42967,13 @@ module Tables = struct let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) = let attrs2 = + let _v : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = let attrs2 = let _1 = _1_inlined4 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -44390,7 +44390,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (string Asttypes.loc option) = + let _v : (string Location.loc option) = # 114 "" ( None ) # 44397 "src/ocaml/preprocess/parser_raw.ml" @@ -44426,7 +44426,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (string Asttypes.loc option) = let x = + let _v : (string Location.loc option) = let x = let x = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in @@ -44671,7 +44671,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -45332,7 +45332,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -45619,7 +45619,7 @@ module Tables = struct let _2_inlined1 : unit = Obj.magic _2_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -45965,7 +45965,7 @@ module Tables = struct let _2_inlined1 : unit = Obj.magic _2_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -46283,7 +46283,7 @@ module Tables = struct let _2_inlined1 : unit = Obj.magic _2_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -47270,7 +47270,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.pattern) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -47432,7 +47432,7 @@ module Tables = struct } = _menhir_stack in let pat : (Parsetree.pattern) = Obj.magic pat in let _5 : unit = Obj.magic _5 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let xs : (string Location.loc list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -47561,7 +47561,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.pattern) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -48201,7 +48201,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.core_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in @@ -48301,7 +48301,7 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.core_type) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in @@ -48382,7 +48382,7 @@ module Tables = struct } = _menhir_stack in let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _2 : (string Location.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -48473,12 +48473,12 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 = + let _v : (Parsetree.value_description * string Location.loc option) = let attrs2 = let _1 = _1_inlined3 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -48762,12 +48762,12 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_fields_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let fields : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic fields in + let fields : ((Longident.t Location.loc * Parsetree.expression) list) = Obj.magic fields in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_fields_ in let _endpos = _endpos_fields_ in let _v : (Parsetree.expression option * - (Longident.t Asttypes.loc * Parsetree.expression) list) = let eo = + (Longident.t Location.loc * Parsetree.expression) list) = let eo = # 124 "" ( None ) # 48774 "src/ocaml/preprocess/parser_raw.ml" @@ -48805,14 +48805,14 @@ module Tables = struct }; }; } = _menhir_stack in - let fields : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic fields in + let fields : ((Longident.t Location.loc * Parsetree.expression) list) = Obj.magic fields in let _2 : unit = Obj.magic _2 in let x : (Parsetree.expression) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_fields_ in let _v : (Parsetree.expression option * - (Longident.t Asttypes.loc * Parsetree.expression) list) = let eo = + (Longident.t Location.loc * Parsetree.expression) list) = let eo = let x = # 191 "" ( x ) @@ -48924,9 +48924,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in @@ -48960,9 +48960,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in @@ -49002,9 +49002,9 @@ module Tables = struct }; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let xs : (Parsetree.constructor_declaration list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in @@ -49039,9 +49039,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in @@ -49112,9 +49112,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in @@ -49191,9 +49191,9 @@ module Tables = struct }; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let xs : (Parsetree.extension_constructor list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in @@ -49272,9 +49272,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in @@ -49308,9 +49308,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in @@ -49350,9 +49350,9 @@ module Tables = struct }; } = _menhir_stack in let d : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) = Obj.magic d in + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) = Obj.magic d in let xs : (Parsetree.extension_constructor list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in @@ -49476,7 +49476,7 @@ module Tables = struct } = _menhir_stack in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.expression) list) = Obj.magic xs in @@ -49879,7 +49879,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -50261,7 +50261,7 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50421,12 +50421,12 @@ module Tables = struct } = _menhir_stack in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in + let _1_inlined4 : (string Location.loc option) = Obj.magic _1_inlined4 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50633,7 +50633,7 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50776,7 +50776,7 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50941,7 +50941,7 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -51150,7 +51150,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in @@ -51593,7 +51593,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( @@ -52092,7 +52092,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in @@ -53153,7 +53153,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = + let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = # 1362 "src/ocaml/preprocess/parser_raw.mly" ( [] ) # 53160 "src/ocaml/preprocess/parser_raw.ml" @@ -53202,11 +53202,11 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in - let _v : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = let x = + let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = let x = let x = let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__3_ in @@ -53541,7 +53541,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = let x = + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in @@ -53619,7 +53619,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = let x = + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = let tyvar = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in @@ -53672,11 +53672,11 @@ module Tables = struct } = _menhir_stack in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_inlined1_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = let x = + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in @@ -53757,11 +53757,11 @@ module Tables = struct let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__6_ in - let _v : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = let x = + let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = let x = let tyvar = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in @@ -56017,7 +56017,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -56139,7 +56139,7 @@ module Tables = struct let x : unit = Obj.magic x in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -56319,7 +56319,7 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -56425,7 +56425,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_oe_ in - let _v : ((string Asttypes.loc * Parsetree.expression) list) = let _2 = + let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) # 56432 "src/ocaml/preprocess/parser_raw.ml" @@ -56503,7 +56503,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((string Asttypes.loc * Parsetree.expression) list) = let _2 = + let _v : ((string Location.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) # 56510 "src/ocaml/preprocess/parser_raw.ml" @@ -56577,7 +56577,7 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : ((string Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.expression) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( @@ -56588,7 +56588,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((string Asttypes.loc * Parsetree.expression) list) = let x = + let _v : ((string Location.loc * Parsetree.expression) list) = let x = let label = let _1 = # 4922 "src/ocaml/preprocess/parser_raw.mly" @@ -56766,7 +56766,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_eo_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = + let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) # 56773 "src/ocaml/preprocess/parser_raw.ml" @@ -56846,7 +56846,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_x_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = + let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) # 56853 "src/ocaml/preprocess/parser_raw.ml" @@ -56925,7 +56925,7 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in + let xs : ((Longident.t Location.loc * Parsetree.expression) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let eo : (Parsetree.expression option) = Obj.magic eo in let c : (Parsetree.type_constraint option) = Obj.magic c in @@ -56933,7 +56933,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let x = + let _v : ((Longident.t Location.loc * Parsetree.expression) list) = let x = let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in @@ -57033,7 +57033,7 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -57154,16 +57154,16 @@ module Tables = struct } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let vars_args_res : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + let vars_args_res : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs = + let _v : (Parsetree.type_exception * string Location.loc option) = let attrs = let _1 = _1_inlined4 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -57374,7 +57374,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (string Asttypes.loc * Parsetree.jkind_annotation) = Obj.magic _1 in + let _1 : (string Location.loc * Parsetree.jkind_annotation) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -57416,7 +57416,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.value_description * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.value_description * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -57456,7 +57456,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.value_description * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.value_description * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -57503,7 +57503,7 @@ module Tables = struct }; } = _menhir_stack in let bs : (Parsetree.type_declaration list) = Obj.magic bs in - let a : ((Asttypes.rec_flag * string Asttypes.loc option) * + let a : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) = Obj.magic a in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in @@ -57573,7 +57573,7 @@ module Tables = struct }; } = _menhir_stack in let bs : (Parsetree.type_declaration list) = Obj.magic bs in - let a : ((Asttypes.rec_flag * string Asttypes.loc option) * + let a : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) = Obj.magic a in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in @@ -57691,7 +57691,7 @@ module Tables = struct let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -57855,7 +57855,7 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -57963,7 +57963,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.type_exception * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.type_exception * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -58037,7 +58037,7 @@ module Tables = struct let body : (Parsetree.module_type) = Obj.magic body in let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58165,7 +58165,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58274,7 +58274,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_substitution * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_substitution * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -58369,7 +58369,7 @@ module Tables = struct let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58470,7 +58470,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_type_declaration * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_type_declaration * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -58510,7 +58510,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_type_declaration * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_type_declaration * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -58550,7 +58550,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -58656,7 +58656,7 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -58758,7 +58758,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (string Asttypes.loc option * Parsetree.class_type_declaration list) = Obj.magic _1 in + let _1 : (string Location.loc option * Parsetree.class_type_declaration list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -58832,7 +58832,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let thing : (Parsetree.module_type) = Obj.magic thing in let _1 : (Parsetree.attributes) = Obj.magic _1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let kind : (Parsetree.include_kind) = Obj.magic kind in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_kind_ in @@ -59279,7 +59279,7 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let _1_inlined1 : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = Obj.magic _1_inlined1 in + let _1_inlined1 : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -59832,7 +59832,7 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -60978,7 +60978,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let e : (Parsetree.expression) = Obj.magic e in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61044,7 +61044,7 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61121,7 +61121,7 @@ module Tables = struct } = _menhir_stack in let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61219,7 +61219,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.module_expr) = Obj.magic _4 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61321,7 +61321,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.module_expr) = Obj.magic _4 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -61426,7 +61426,7 @@ module Tables = struct let xss : (Parsetree.class_field list list) = Obj.magic xss in let _1_inlined3 : (Parsetree.pattern) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -61796,7 +61796,7 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let xs : ((string Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.expression) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -62077,7 +62077,7 @@ module Tables = struct }; } = _menhir_stack in let _5 : unit = Obj.magic _5 in - let xs : ((string Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.expression) list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -62592,7 +62592,7 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let _2 : (Parsetree.expression option * - (Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic _2 in + (Longident.t Location.loc * Parsetree.expression) list) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -62661,7 +62661,7 @@ module Tables = struct } = _menhir_stack in let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.expression option * - (Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic _4 in + (Longident.t Location.loc * Parsetree.expression) list) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -63346,7 +63346,7 @@ module Tables = struct let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -63718,7 +63718,7 @@ module Tables = struct let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -64090,7 +64090,7 @@ module Tables = struct let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in + let _1_inlined3 : (string Location.loc option) = Obj.magic _1_inlined3 in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -64525,7 +64525,7 @@ module Tables = struct let _7 : unit = Obj.magic _7 in let _6 : (Parsetree.module_expr) = Obj.magic _6 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _4 : unit = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in @@ -65161,7 +65161,7 @@ module Tables = struct let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -65427,7 +65427,7 @@ module Tables = struct let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -65693,7 +65693,7 @@ module Tables = struct let xs_inlined1 : (Parsetree.comprehension_clause list) = Obj.magic xs_inlined1 in let xs : (Parsetree.case list) = Obj.magic xs in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined2 : (string Location.loc option) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -66000,7 +66000,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -66104,7 +66104,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -68351,11 +68351,11 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.type_exception * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.type_exception * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.type_exception * string Asttypes.loc option) = + let _v : (Parsetree.type_exception * string Location.loc option) = # 4217 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) # 68362 "src/ocaml/preprocess/parser_raw.ml" @@ -68424,12 +68424,12 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined5_ in - let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs = + let _v : (Parsetree.type_exception * string Location.loc option) = let attrs = let _1 = _1_inlined5 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -68641,7 +68641,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -68827,7 +68827,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -69244,7 +69244,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -69445,7 +69445,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -69902,7 +69902,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -70099,7 +70099,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -70549,7 +70549,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -70761,7 +70761,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -71233,7 +71233,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -71405,7 +71405,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -71780,7 +71780,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -71967,7 +71967,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -72382,7 +72382,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -72592,7 +72592,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -72803,7 +72803,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73028,7 +73028,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73249,7 +73249,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73469,7 +73469,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73690,7 +73690,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -73925,7 +73925,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -75354,7 +75354,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -75579,7 +75579,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -75805,7 +75805,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -76045,7 +76045,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -76281,7 +76281,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -76516,7 +76516,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -76752,7 +76752,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -77002,7 +77002,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -78564,7 +78564,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -78785,7 +78785,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -79007,7 +79007,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -79243,7 +79243,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -79475,7 +79475,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -79706,7 +79706,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -79938,7 +79938,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -80184,7 +80184,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( @@ -81712,7 +81712,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -81948,7 +81948,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -82185,7 +82185,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -82436,7 +82436,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -82683,7 +82683,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -82929,7 +82929,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -83176,7 +83176,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -83437,7 +83437,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -85080,7 +85080,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85276,7 +85276,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85473,7 +85473,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85684,7 +85684,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -85891,7 +85891,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -86097,7 +86097,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -86304,7 +86304,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -86525,7 +86525,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -87828,7 +87828,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88039,7 +88039,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88251,7 +88251,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88477,7 +88477,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88699,7 +88699,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -88920,7 +88920,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -89142,7 +89142,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -89378,7 +89378,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let inner_type : (Parsetree.core_type) = Obj.magic inner_type in let _3_inlined1 : unit = Obj.magic _3_inlined1 in - let xs : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -94703,7 +94703,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (string Asttypes.loc * Parsetree.jkind_annotation) = Obj.magic _1 in + let _1 : (string Location.loc * Parsetree.jkind_annotation) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -94745,7 +94745,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.value_description * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.value_description * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -94785,7 +94785,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.value_description * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.value_description * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -94832,7 +94832,7 @@ module Tables = struct }; } = _menhir_stack in let bs : (Parsetree.type_declaration list) = Obj.magic bs in - let a : ((Asttypes.rec_flag * string Asttypes.loc option) * + let a : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) = Obj.magic a in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_a_ in @@ -94950,7 +94950,7 @@ module Tables = struct let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95114,7 +95114,7 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95222,7 +95222,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.type_exception * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.type_exception * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -95296,7 +95296,7 @@ module Tables = struct let body : (Parsetree.module_expr) = Obj.magic body in let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95430,7 +95430,7 @@ module Tables = struct let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95532,7 +95532,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_type_declaration * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_type_declaration * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -95572,7 +95572,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) = Obj.magic _1 in + let _1 : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -95671,7 +95671,7 @@ module Tables = struct let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -95773,7 +95773,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (string Asttypes.loc option * Parsetree.class_type_declaration list) = Obj.magic _1 in + let _1 : (string Location.loc option * Parsetree.class_type_declaration list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in @@ -95840,7 +95840,7 @@ module Tables = struct let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let thing : (Parsetree.module_expr) = Obj.magic thing in let _1 : (Parsetree.attributes) = Obj.magic _1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let kind : (Parsetree.include_kind) = Obj.magic kind in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_kind_ in @@ -98677,7 +98677,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in - let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let label = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = @@ -98761,7 +98761,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = @@ -98852,7 +98852,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = @@ -98946,7 +98946,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = @@ -99061,7 +99061,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in - let _v : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + let _v : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = @@ -99293,12 +99293,12 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _1_inlined2 : (string) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let ext : (string Location.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 = + let _v : (Parsetree.value_description * string Location.loc option) = let attrs2 = let _1 = _1_inlined3 in # 5311 "src/ocaml/preprocess/parser_raw.mly" @@ -99605,7 +99605,7 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let xs : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = Obj.magic xs in let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _4 : (Asttypes.private_flag) = Obj.magic _4 in let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in @@ -100344,9 +100344,9 @@ module MenhirInterpreter = struct | N_virtual_with_private_flag : (Asttypes.private_flag) nonterminal | N_virtual_with_mutable_flag : (Asttypes.mutable_flag) nonterminal | N_virtual_flag : (Asttypes.virtual_flag) nonterminal - | N_value_description : (Parsetree.value_description * string Asttypes.loc option) nonterminal + | N_value_description : (Parsetree.value_description * string Location.loc option) nonterminal | N_value_constant : (Parsetree.constant) nonterminal - | N_value : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + | N_value : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) nonterminal | N_val_longident : (Longident.t) nonterminal | N_val_ident : (string) nonterminal @@ -100371,7 +100371,7 @@ module MenhirInterpreter = struct | N_structure : (Parsetree.structure) nonterminal | N_strict_function_or_labeled_tuple_type : (Parsetree.core_type) nonterminal | N_strict_binding_modes : (Parsetree.modes -> Parsetree.expression) nonterminal - | N_str_exception_declaration : (Parsetree.type_exception * string Asttypes.loc option) nonterminal + | N_str_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal | N_single_attr_id : (string) nonterminal | N_simple_pattern_not_ident : (Parsetree.pattern) nonterminal | N_simple_pattern : (Parsetree.pattern) nonterminal @@ -100381,11 +100381,11 @@ module MenhirInterpreter = struct | N_signed_constant : (Parsetree.constant) nonterminal | N_signature_item : (Parsetree.signature_item) nonterminal | N_signature : (Parsetree.signature) nonterminal - | N_sig_exception_declaration : (Parsetree.type_exception * string Asttypes.loc option) nonterminal + | N_sig_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal | N_seq_expr : (Parsetree.expression) nonterminal - | N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_ : ((Longident.t Asttypes.loc * Parsetree.expression) list) nonterminal + | N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_ : ((Longident.t Location.loc * Parsetree.expression) list) nonterminal | N_separated_or_terminated_nonempty_list_SEMI_pattern_ : (Parsetree.pattern list) nonterminal - | N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_ : ((string Asttypes.loc * Parsetree.expression) list) nonterminal + | N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_ : ((string Location.loc * Parsetree.expression) list) nonterminal | N_separated_or_terminated_nonempty_list_SEMI_expr_ : (Parsetree.expression list) nonterminal | N_row_field : (Parsetree.row_field) nonterminal | N_reversed_separated_nontrivial_llist_COMMA_one_type_parameter_of_several_ : (Parsetree.core_type list) nonterminal @@ -100399,13 +100399,13 @@ module MenhirInterpreter = struct | N_reversed_separated_nonempty_llist_AND_comprehension_clause_binding_ : (Parsetree.comprehension_clause_binding list) nonterminal | N_reversed_separated_nonempty_llist_AMPERSAND_core_type_no_attr_ : (Parsetree.core_type list) nonterminal | N_reversed_preceded_or_separated_nonempty_llist_BAR_match_case_ : (Parsetree.case list) nonterminal - | N_reversed_nonempty_llist_typevar_ : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal + | N_reversed_nonempty_llist_typevar_ : ((string Location.loc * Parsetree.jkind_annotation option) list) nonterminal | N_reversed_nonempty_llist_name_tag_ : (string list) nonterminal | N_reversed_nonempty_llist_labeled_simple_expr_ : ((Parsetree.arg_label * Parsetree.expression) list) nonterminal | N_reversed_nonempty_llist_functor_arg_ : ((Lexing.position * Parsetree.functor_parameter) list) nonterminal | N_reversed_nonempty_llist_comprehension_clause_ : (Parsetree.comprehension_clause list) nonterminal | N_reversed_nonempty_concat_fun_param_as_list_ : (Parsetree.function_param list) nonterminal - | N_reversed_llist_preceded_CONSTRAINT_constrain__ : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) nonterminal + | N_reversed_llist_preceded_CONSTRAINT_constrain__ : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) nonterminal | N_reversed_labeled_tuple_pattern_pattern_no_exn_ : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) nonterminal | N_reversed_labeled_tuple_pattern_pattern_ : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) nonterminal | N_reversed_labeled_tuple_body : ((string option * Parsetree.expression) list) nonterminal @@ -100414,11 +100414,11 @@ module MenhirInterpreter = struct | N_reversed_bar_llist_constructor_declaration_ : (Parsetree.constructor_declaration list) nonterminal | N_reverse_product_jkind : (Parsetree.jkind_annotation list) nonterminal | N_record_expr_content : (Parsetree.expression option * - (Longident.t Asttypes.loc * Parsetree.expression) list) nonterminal + (Longident.t Location.loc * Parsetree.expression) list) nonterminal | N_rec_flag : (Asttypes.rec_flag) nonterminal | N_private_virtual_flags : (Asttypes.private_flag * Asttypes.virtual_flag) nonterminal | N_private_flag : (Asttypes.private_flag) nonterminal - | N_primitive_declaration : (Parsetree.value_description * string Asttypes.loc option) nonterminal + | N_primitive_declaration : (Parsetree.value_description * string Location.loc option) nonterminal | N_post_item_attribute : (Parsetree.attribute) nonterminal | N_possibly_poly_core_type_no_attr_ : (Parsetree.core_type) nonterminal | N_possibly_poly_core_type_ : (Parsetree.core_type) nonterminal @@ -100449,33 +100449,33 @@ module MenhirInterpreter = struct | N_option_preceded_EQUAL_expr__ : (Parsetree.expression option) nonterminal | N_option_preceded_COLON_core_type__ : (Parsetree.core_type option) nonterminal | N_option_preceded_COLON_atomic_type__ : (Parsetree.core_type option) nonterminal - | N_option_preceded_AS_mkrhs_LIDENT___ : (string Asttypes.loc option) nonterminal + | N_option_preceded_AS_mkrhs_LIDENT___ : (string Location.loc option) nonterminal | N_option_jkind_constraint_ : (Parsetree.jkind_annotation option) nonterminal | N_option_SEMI_ : (unit option) nonterminal | N_option_BAR_ : (unit option) nonterminal | N_opt_ampersand : (bool) nonterminal | N_operator : (string) nonterminal - | N_open_description : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) nonterminal - | N_open_declaration : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) nonterminal + | N_open_description : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) nonterminal + | N_open_declaration : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) nonterminal | N_object_type : (Parsetree.core_type) nonterminal | N_nonempty_type_kind : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) nonterminal | N_nonempty_list_raw_string_ : (string list) nonterminal - | N_nonempty_list_newtype_ : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal + | N_nonempty_list_newtype_ : ((string Location.loc * Parsetree.jkind_annotation option) list) nonterminal | N_nonempty_list_mode_legacy_ : (Parsetree.modes) nonterminal | N_nonempty_list_mode_ : (Parsetree.modes) nonterminal | N_nonempty_list_modality_ : (Parsetree.modalities) nonterminal - | N_nonempty_list_mkrhs_LIDENT__ : (string Asttypes.loc list) nonterminal - | N_newtypes : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal - | N_newtype : (string Asttypes.loc * Parsetree.jkind_annotation option) nonterminal + | N_nonempty_list_mkrhs_LIDENT__ : (string Location.loc list) nonterminal + | N_newtypes : ((string Location.loc * Parsetree.jkind_annotation option) list) nonterminal + | N_newtype : (string Location.loc * Parsetree.jkind_annotation option) nonterminal | N_name_tag : (string) nonterminal | N_mutable_virtual_flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) nonterminal - | N_mutable_or_global_flag : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) nonterminal + | N_mutable_or_global_flag : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) nonterminal | N_mutable_flag : (Asttypes.mutable_flag) nonterminal | N_mty_longident : (Longident.t) nonterminal - | N_module_type_subst : (Parsetree.module_type_declaration * string Asttypes.loc option) nonterminal - | N_module_type_declaration : (Parsetree.module_type_declaration * string Asttypes.loc option) nonterminal + | N_module_type_subst : (Parsetree.module_type_declaration * string Location.loc option) nonterminal + | N_module_type_declaration : (Parsetree.module_type_declaration * string Location.loc option) nonterminal | N_module_type : (Parsetree.module_type) nonterminal - | N_module_subst : (Parsetree.module_substitution * string Asttypes.loc option) nonterminal + | N_module_subst : (Parsetree.module_substitution * string Location.loc option) nonterminal | N_module_name : (string option) nonterminal | N_module_expr : (Parsetree.module_expr) nonterminal | N_module_declaration_body : (Parsetree.module_type) nonterminal @@ -100491,11 +100491,11 @@ module MenhirInterpreter = struct | N_mk_longident_mod_ext_longident___anonymous_47_ : (Longident.t) nonterminal | N_mk_longident_mod_ext_longident_UIDENT_ : (Longident.t) nonterminal | N_mk_longident_mod_ext_longident_LIDENT_ : (Longident.t) nonterminal - | N_method_ : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + | N_method_ : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) nonterminal | N_meth_list : (Parsetree.object_field list * Asttypes.closed_flag) nonterminal | N_match_case : (Parsetree.case) nonterminal - | N_listx_SEMI_record_pat_field_UNDERSCORE_ : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) nonterminal + | N_listx_SEMI_record_pat_field_UNDERSCORE_ : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) nonterminal | N_list_use_file_element_ : (Parsetree.toplevel_phrase list list) nonterminal | N_list_text_str_structure_item__ : (Parsetree.structure_item list list) nonterminal | N_list_text_cstr_class_field__ : (Parsetree.class_field list list) nonterminal @@ -100531,7 +100531,7 @@ module MenhirInterpreter = struct | N_label_declarations : (Parsetree.label_declaration list) nonterminal | N_label_declaration_semi : (Parsetree.label_declaration) nonterminal | N_label_declaration : (Parsetree.label_declaration) nonterminal - | N_kind_abbreviation_decl : (string Asttypes.loc * Parsetree.jkind_annotation) nonterminal + | N_kind_abbreviation_decl : (string Location.loc * Parsetree.jkind_annotation) nonterminal | N_jkind_desc : (Parsetree.jkind_annotation_desc) nonterminal | N_jkind_constraint : (Parsetree.jkind_annotation) nonterminal | N_jkind_annotation : (Parsetree.jkind_annotation) nonterminal @@ -100541,19 +100541,19 @@ module MenhirInterpreter = struct | N_include_kind : (Parsetree.include_kind) nonterminal | N_implementation : (Parsetree.structure) nonterminal | N_ident : (string) nonterminal - | N_generic_type_declaration_nonrec_flag_type_kind_ : ((Asttypes.rec_flag * string Asttypes.loc option) * + | N_generic_type_declaration_nonrec_flag_type_kind_ : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) nonterminal - | N_generic_type_declaration_no_nonrec_flag_type_subst_kind_ : ((Asttypes.rec_flag * string Asttypes.loc option) * + | N_generic_type_declaration_no_nonrec_flag_type_subst_kind_ : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) nonterminal | N_generic_constructor_declaration_epsilon_ : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) nonterminal + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) nonterminal | N_generic_constructor_declaration_BAR_ : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) nonterminal - | N_generalized_constructor_arguments : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) nonterminal + | N_generalized_constructor_arguments : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) nonterminal | N_functor_args : ((Lexing.position * Parsetree.functor_parameter) list) nonterminal | N_functor_arg : (Lexing.position * Parsetree.functor_parameter) nonterminal @@ -100569,7 +100569,7 @@ module MenhirInterpreter = struct | N_extension_constructor_rebind_epsilon_ : (Parsetree.extension_constructor) nonterminal | N_extension_constructor_rebind_BAR_ : (Parsetree.extension_constructor) nonterminal | N_extension : (Parsetree.extension) nonterminal - | N_ext : (string Asttypes.loc option) nonterminal + | N_ext : (string Location.loc option) nonterminal | N_direction_flag : (Asttypes.direction_flag) nonterminal | N_delimited_type_supporting_local_open : (Parsetree.core_type) nonterminal | N_delimited_type : (Parsetree.core_type) nonterminal @@ -100585,7 +100585,7 @@ module MenhirInterpreter = struct | N_comprehension_clause_binding : (Parsetree.comprehension_clause_binding) nonterminal | N_comprehension_clause : (Parsetree.comprehension_clause) nonterminal | N_clty_longident : (Longident.t) nonterminal - | N_class_type_declarations : (string Asttypes.loc option * Parsetree.class_type_declaration list) nonterminal + | N_class_type_declarations : (string Location.loc option * Parsetree.class_type_declaration list) nonterminal | N_class_type : (Parsetree.class_type) nonterminal | N_class_simple_expr : (Parsetree.class_expr) nonterminal | N_class_signature : (Parsetree.class_type) nonterminal @@ -100599,7 +100599,7 @@ module MenhirInterpreter = struct | N_class_expr : (Parsetree.class_expr) nonterminal | N_attribute : (Parsetree.attribute) nonterminal | N_attr_payload : (Parsetree.payload) nonterminal - | N_attr_id : (string Asttypes.loc) nonterminal + | N_attr_id : (string Location.loc) nonterminal | N_atomic_type : (Parsetree.core_type) nonterminal | N_atat_mode_expr : (Parsetree.modes) nonterminal | N_at_mode_expr : (Parsetree.modes) nonterminal diff --git a/src/ocaml/preprocess/parser_raw.mli b/src/ocaml/preprocess/parser_raw.mli index 3383ecdce..a645d4660 100644 --- a/src/ocaml/preprocess/parser_raw.mli +++ b/src/ocaml/preprocess/parser_raw.mli @@ -345,9 +345,9 @@ module MenhirInterpreter : sig | N_virtual_with_private_flag : (Asttypes.private_flag) nonterminal | N_virtual_with_mutable_flag : (Asttypes.mutable_flag) nonterminal | N_virtual_flag : (Asttypes.virtual_flag) nonterminal - | N_value_description : (Parsetree.value_description * string Asttypes.loc option) nonterminal + | N_value_description : (Parsetree.value_description * string Location.loc option) nonterminal | N_value_constant : (Parsetree.constant) nonterminal - | N_value : ((string Asttypes.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * + | N_value : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes) nonterminal | N_val_longident : (Longident.t) nonterminal | N_val_ident : (string) nonterminal @@ -372,7 +372,7 @@ module MenhirInterpreter : sig | N_structure : (Parsetree.structure) nonterminal | N_strict_function_or_labeled_tuple_type : (Parsetree.core_type) nonterminal | N_strict_binding_modes : (Parsetree.modes -> Parsetree.expression) nonterminal - | N_str_exception_declaration : (Parsetree.type_exception * string Asttypes.loc option) nonterminal + | N_str_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal | N_single_attr_id : (string) nonterminal | N_simple_pattern_not_ident : (Parsetree.pattern) nonterminal | N_simple_pattern : (Parsetree.pattern) nonterminal @@ -382,11 +382,11 @@ module MenhirInterpreter : sig | N_signed_constant : (Parsetree.constant) nonterminal | N_signature_item : (Parsetree.signature_item) nonterminal | N_signature : (Parsetree.signature) nonterminal - | N_sig_exception_declaration : (Parsetree.type_exception * string Asttypes.loc option) nonterminal + | N_sig_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal | N_seq_expr : (Parsetree.expression) nonterminal - | N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_ : ((Longident.t Asttypes.loc * Parsetree.expression) list) nonterminal + | N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_ : ((Longident.t Location.loc * Parsetree.expression) list) nonterminal | N_separated_or_terminated_nonempty_list_SEMI_pattern_ : (Parsetree.pattern list) nonterminal - | N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_ : ((string Asttypes.loc * Parsetree.expression) list) nonterminal + | N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_ : ((string Location.loc * Parsetree.expression) list) nonterminal | N_separated_or_terminated_nonempty_list_SEMI_expr_ : (Parsetree.expression list) nonterminal | N_row_field : (Parsetree.row_field) nonterminal | N_reversed_separated_nontrivial_llist_COMMA_one_type_parameter_of_several_ : (Parsetree.core_type list) nonterminal @@ -400,13 +400,13 @@ module MenhirInterpreter : sig | N_reversed_separated_nonempty_llist_AND_comprehension_clause_binding_ : (Parsetree.comprehension_clause_binding list) nonterminal | N_reversed_separated_nonempty_llist_AMPERSAND_core_type_no_attr_ : (Parsetree.core_type list) nonterminal | N_reversed_preceded_or_separated_nonempty_llist_BAR_match_case_ : (Parsetree.case list) nonterminal - | N_reversed_nonempty_llist_typevar_ : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal + | N_reversed_nonempty_llist_typevar_ : ((string Location.loc * Parsetree.jkind_annotation option) list) nonterminal | N_reversed_nonempty_llist_name_tag_ : (string list) nonterminal | N_reversed_nonempty_llist_labeled_simple_expr_ : ((Parsetree.arg_label * Parsetree.expression) list) nonterminal | N_reversed_nonempty_llist_functor_arg_ : ((Lexing.position * Parsetree.functor_parameter) list) nonterminal | N_reversed_nonempty_llist_comprehension_clause_ : (Parsetree.comprehension_clause list) nonterminal | N_reversed_nonempty_concat_fun_param_as_list_ : (Parsetree.function_param list) nonterminal - | N_reversed_llist_preceded_CONSTRAINT_constrain__ : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) nonterminal + | N_reversed_llist_preceded_CONSTRAINT_constrain__ : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) nonterminal | N_reversed_labeled_tuple_pattern_pattern_no_exn_ : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) nonterminal | N_reversed_labeled_tuple_pattern_pattern_ : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) nonterminal | N_reversed_labeled_tuple_body : ((string option * Parsetree.expression) list) nonterminal @@ -415,11 +415,11 @@ module MenhirInterpreter : sig | N_reversed_bar_llist_constructor_declaration_ : (Parsetree.constructor_declaration list) nonterminal | N_reverse_product_jkind : (Parsetree.jkind_annotation list) nonterminal | N_record_expr_content : (Parsetree.expression option * - (Longident.t Asttypes.loc * Parsetree.expression) list) nonterminal + (Longident.t Location.loc * Parsetree.expression) list) nonterminal | N_rec_flag : (Asttypes.rec_flag) nonterminal | N_private_virtual_flags : (Asttypes.private_flag * Asttypes.virtual_flag) nonterminal | N_private_flag : (Asttypes.private_flag) nonterminal - | N_primitive_declaration : (Parsetree.value_description * string Asttypes.loc option) nonterminal + | N_primitive_declaration : (Parsetree.value_description * string Location.loc option) nonterminal | N_post_item_attribute : (Parsetree.attribute) nonterminal | N_possibly_poly_core_type_no_attr_ : (Parsetree.core_type) nonterminal | N_possibly_poly_core_type_ : (Parsetree.core_type) nonterminal @@ -450,33 +450,33 @@ module MenhirInterpreter : sig | N_option_preceded_EQUAL_expr__ : (Parsetree.expression option) nonterminal | N_option_preceded_COLON_core_type__ : (Parsetree.core_type option) nonterminal | N_option_preceded_COLON_atomic_type__ : (Parsetree.core_type option) nonterminal - | N_option_preceded_AS_mkrhs_LIDENT___ : (string Asttypes.loc option) nonterminal + | N_option_preceded_AS_mkrhs_LIDENT___ : (string Location.loc option) nonterminal | N_option_jkind_constraint_ : (Parsetree.jkind_annotation option) nonterminal | N_option_SEMI_ : (unit option) nonterminal | N_option_BAR_ : (unit option) nonterminal | N_opt_ampersand : (bool) nonterminal | N_operator : (string) nonterminal - | N_open_description : (Longident.t Asttypes.loc Parsetree.open_infos * string Asttypes.loc option) nonterminal - | N_open_declaration : (Parsetree.module_expr Parsetree.open_infos * string Asttypes.loc option) nonterminal + | N_open_description : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option) nonterminal + | N_open_declaration : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option) nonterminal | N_object_type : (Parsetree.core_type) nonterminal | N_nonempty_type_kind : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) nonterminal | N_nonempty_list_raw_string_ : (string list) nonterminal - | N_nonempty_list_newtype_ : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal + | N_nonempty_list_newtype_ : ((string Location.loc * Parsetree.jkind_annotation option) list) nonterminal | N_nonempty_list_mode_legacy_ : (Parsetree.modes) nonterminal | N_nonempty_list_mode_ : (Parsetree.modes) nonterminal | N_nonempty_list_modality_ : (Parsetree.modalities) nonterminal - | N_nonempty_list_mkrhs_LIDENT__ : (string Asttypes.loc list) nonterminal - | N_newtypes : ((string Asttypes.loc * Parsetree.jkind_annotation option) list) nonterminal - | N_newtype : (string Asttypes.loc * Parsetree.jkind_annotation option) nonterminal + | N_nonempty_list_mkrhs_LIDENT__ : (string Location.loc list) nonterminal + | N_newtypes : ((string Location.loc * Parsetree.jkind_annotation option) list) nonterminal + | N_newtype : (string Location.loc * Parsetree.jkind_annotation option) nonterminal | N_name_tag : (string) nonterminal | N_mutable_virtual_flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) nonterminal - | N_mutable_or_global_flag : (Asttypes.mutable_flag * Parsetree.modality Asttypes.loc list) nonterminal + | N_mutable_or_global_flag : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) nonterminal | N_mutable_flag : (Asttypes.mutable_flag) nonterminal | N_mty_longident : (Longident.t) nonterminal - | N_module_type_subst : (Parsetree.module_type_declaration * string Asttypes.loc option) nonterminal - | N_module_type_declaration : (Parsetree.module_type_declaration * string Asttypes.loc option) nonterminal + | N_module_type_subst : (Parsetree.module_type_declaration * string Location.loc option) nonterminal + | N_module_type_declaration : (Parsetree.module_type_declaration * string Location.loc option) nonterminal | N_module_type : (Parsetree.module_type) nonterminal - | N_module_subst : (Parsetree.module_substitution * string Asttypes.loc option) nonterminal + | N_module_subst : (Parsetree.module_substitution * string Location.loc option) nonterminal | N_module_name : (string option) nonterminal | N_module_expr : (Parsetree.module_expr) nonterminal | N_module_declaration_body : (Parsetree.module_type) nonterminal @@ -492,11 +492,11 @@ module MenhirInterpreter : sig | N_mk_longident_mod_ext_longident___anonymous_47_ : (Longident.t) nonterminal | N_mk_longident_mod_ext_longident_UIDENT_ : (Longident.t) nonterminal | N_mk_longident_mod_ext_longident_LIDENT_ : (Longident.t) nonterminal - | N_method_ : ((string Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * + | N_method_ : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes) nonterminal | N_meth_list : (Parsetree.object_field list * Asttypes.closed_flag) nonterminal | N_match_case : (Parsetree.case) nonterminal - | N_listx_SEMI_record_pat_field_UNDERSCORE_ : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) nonterminal + | N_listx_SEMI_record_pat_field_UNDERSCORE_ : ((Longident.t Location.loc * Parsetree.pattern) list * unit option) nonterminal | N_list_use_file_element_ : (Parsetree.toplevel_phrase list list) nonterminal | N_list_text_str_structure_item__ : (Parsetree.structure_item list list) nonterminal | N_list_text_cstr_class_field__ : (Parsetree.class_field list list) nonterminal @@ -532,7 +532,7 @@ module MenhirInterpreter : sig | N_label_declarations : (Parsetree.label_declaration list) nonterminal | N_label_declaration_semi : (Parsetree.label_declaration) nonterminal | N_label_declaration : (Parsetree.label_declaration) nonterminal - | N_kind_abbreviation_decl : (string Asttypes.loc * Parsetree.jkind_annotation) nonterminal + | N_kind_abbreviation_decl : (string Location.loc * Parsetree.jkind_annotation) nonterminal | N_jkind_desc : (Parsetree.jkind_annotation_desc) nonterminal | N_jkind_constraint : (Parsetree.jkind_annotation) nonterminal | N_jkind_annotation : (Parsetree.jkind_annotation) nonterminal @@ -542,19 +542,19 @@ module MenhirInterpreter : sig | N_include_kind : (Parsetree.include_kind) nonterminal | N_implementation : (Parsetree.structure) nonterminal | N_ident : (string) nonterminal - | N_generic_type_declaration_nonrec_flag_type_kind_ : ((Asttypes.rec_flag * string Asttypes.loc option) * + | N_generic_type_declaration_nonrec_flag_type_kind_ : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) nonterminal - | N_generic_type_declaration_no_nonrec_flag_type_subst_kind_ : ((Asttypes.rec_flag * string Asttypes.loc option) * + | N_generic_type_declaration_no_nonrec_flag_type_subst_kind_ : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration) nonterminal | N_generic_constructor_declaration_epsilon_ : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) nonterminal + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) nonterminal | N_generic_constructor_declaration_BAR_ : (Ocaml_parsing.Ast_helper.str * - (string Asttypes.loc * Parsetree.jkind_annotation option) list * + (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Ast_helper.loc * Ocaml_parsing.Docstrings.info) nonterminal - | N_generalized_constructor_arguments : ((string Asttypes.loc * Parsetree.jkind_annotation option) list * + Parsetree.attributes * Location.t * Ocaml_parsing.Docstrings.info) nonterminal + | N_generalized_constructor_arguments : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) nonterminal | N_functor_args : ((Lexing.position * Parsetree.functor_parameter) list) nonterminal | N_functor_arg : (Lexing.position * Parsetree.functor_parameter) nonterminal @@ -570,7 +570,7 @@ module MenhirInterpreter : sig | N_extension_constructor_rebind_epsilon_ : (Parsetree.extension_constructor) nonterminal | N_extension_constructor_rebind_BAR_ : (Parsetree.extension_constructor) nonterminal | N_extension : (Parsetree.extension) nonterminal - | N_ext : (string Asttypes.loc option) nonterminal + | N_ext : (string Location.loc option) nonterminal | N_direction_flag : (Asttypes.direction_flag) nonterminal | N_delimited_type_supporting_local_open : (Parsetree.core_type) nonterminal | N_delimited_type : (Parsetree.core_type) nonterminal @@ -586,7 +586,7 @@ module MenhirInterpreter : sig | N_comprehension_clause_binding : (Parsetree.comprehension_clause_binding) nonterminal | N_comprehension_clause : (Parsetree.comprehension_clause) nonterminal | N_clty_longident : (Longident.t) nonterminal - | N_class_type_declarations : (string Asttypes.loc option * Parsetree.class_type_declaration list) nonterminal + | N_class_type_declarations : (string Location.loc option * Parsetree.class_type_declaration list) nonterminal | N_class_type : (Parsetree.class_type) nonterminal | N_class_simple_expr : (Parsetree.class_expr) nonterminal | N_class_signature : (Parsetree.class_type) nonterminal @@ -600,7 +600,7 @@ module MenhirInterpreter : sig | N_class_expr : (Parsetree.class_expr) nonterminal | N_attribute : (Parsetree.attribute) nonterminal | N_attr_payload : (Parsetree.payload) nonterminal - | N_attr_id : (string Asttypes.loc) nonterminal + | N_attr_id : (string Location.loc) nonterminal | N_atomic_type : (Parsetree.core_type) nonterminal | N_atat_mode_expr : (Parsetree.modes) nonterminal | N_at_mode_expr : (Parsetree.modes) nonterminal From 2d99ac1ace70fcef55e32dcc731f838248a534ad Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 15:32:56 -0500 Subject: [PATCH 10/15] Fix more issues --- src/analysis/ppx_expand.ml | 6 +- src/analysis/ptyp_of_type.ml | 27 +++-- src/frontend/query_commands.ml | 5 +- src/kernel/extension.ml | 30 +++++- src/kernel/mtyper.ml | 130 +++++++++++++++++------ src/ocaml/merlin_specific/tast_helper.ml | 64 +++++++++-- src/ocaml/parsing/language_extension.ml | 2 +- 7 files changed, 206 insertions(+), 58 deletions(-) diff --git a/src/analysis/ppx_expand.ml b/src/analysis/ppx_expand.ml index 2e0445964..f50b912d6 100644 --- a/src/analysis/ppx_expand.ml +++ b/src/analysis/ppx_expand.ml @@ -142,7 +142,11 @@ let get_ppxed_source ~ppxed_parsetree ~pos ppx_kind_with_attr : } | Sig_item _, attr_loc -> let exp = - Pprintast.signature Format.str_formatter (List.rev !signature); + Pprintast.signature Format.str_formatter + { psg_modalities = []; + psg_items = List.rev !signature; + psg_loc = Location.none + }; Format.flush_str_formatter () in { code = exp; attr_start = attr_loc.loc_start; attr_end = attr_loc.loc_end } diff --git a/src/analysis/ptyp_of_type.ml b/src/analysis/ptyp_of_type.ml index 689f998b4..ac4be0256 100644 --- a/src/analysis/ptyp_of_type.ml +++ b/src/analysis/ptyp_of_type.ml @@ -34,8 +34,12 @@ let rec module_type = and core_type type_expr = let open Ast_helper in match Types.get_desc type_expr with - | Tvar { name = None; _ } | Tunivar { name = None; _ } -> Typ.any () - | Tvar { name = Some s; _ } | Tunivar { name = Some s; _ } -> Typ.var s + | Tvar { name = None; jkind = _ } | Tunivar { name = None; jkind = _ } -> + (* CR modes: do something better here with the jkind *) + Typ.any None + | Tvar { name = Some s; jkind = _ } | Tunivar { name = Some s; jkind = _ } -> + (* CR modes: do something better here with the jkind *) + Typ.var s None | Tarrow ( (label, arg_alloc_mode, ret_alloc_mode), type_expr, @@ -119,8 +123,10 @@ and core_type type_expr = List.map ~f:(fun v -> match get_desc v with - | Tunivar { name = Some name; _ } | Tvar { name = Some name; _ } -> - mknoloc name + | Tunivar { name = Some name; jkind = _ } + | Tvar { name = Some name; jkind = _ } -> + (* CR modes: do something *) + (mknoloc name, None) | _ -> failwith "poly: not a var") type_exprs in @@ -270,10 +276,15 @@ and signature_item (str_item : Types.signature_item) = in Sig.text [ Docstrings.docstring str Location.none ] |> List.hd -and signature (items : Types.signature_item list) = - List.map (group_items items) ~f:(function - | Item item -> signature_item item - | Type (rec_flag, type_decls) -> Ast_helper.Sig.type_ rec_flag type_decls) +and signature (items : Types.signature) = + { psg_modalities = []; + psg_items = + List.map (group_items items) ~f:(function + | Item item -> signature_item item + | Type (rec_flag, type_decls) -> + Ast_helper.Sig.type_ rec_flag type_decls); + psg_loc = Location.none + } and group_items (items : Types.signature_item list) = let rec read_type type_acc items = diff --git a/src/frontend/query_commands.ml b/src/frontend/query_commands.ml index 691ab3e0b..b8f47d479 100644 --- a/src/frontend/query_commands.ml +++ b/src/frontend/query_commands.ml @@ -609,10 +609,9 @@ let dispatch pipeline (type a) : a Query_protocol.t -> a = function let ppxed_parsetree = Mpipeline.ppx_parsetree pipeline in let ppx_kind_with_attr = Ppx_expand.check_extension ~parsetree ~pos in match ppx_kind_with_attr with - | Some _ -> + | Some ppx_kind_with_attr -> `Found - (Ppx_expand.get_ppxed_source ~ppxed_parsetree ~pos - (Option.get ppx_kind_with_attr)) + (Ppx_expand.get_ppxed_source ~ppxed_parsetree ~pos ppx_kind_with_attr) | None -> `No_ppx) | Locate (patho, ml_or_mli, pos, context) -> let typer = Mpipeline.typer_result pipeline in diff --git a/src/kernel/extension.ml b/src/kernel/extension.ml index 3ce0d45d9..10693255f 100644 --- a/src/kernel/extension.ml +++ b/src/kernel/extension.ml @@ -142,6 +142,32 @@ let add_hidden_signature env sign = List.fold_left ~f:add_item ~init:env sign *) +(* Combine a list of signatures together into one by turning [s1; s2; ...] into: + sig + include s1 + include s2 + ... + end *) +let combine_sigs sigs : Parsetree.signature = + let items = + List.map sigs ~f:(fun sig_ : Parsetree.signature_item -> + { psig_desc = + Psig_include + ( { pincl_kind = Structure; + pincl_mod = + { pmty_desc = Pmty_signature sig_; + pmty_loc = Location.none; + pmty_attributes = [] + }; + pincl_loc = Location.none; + pincl_attributes = [] + }, + [] ); + psig_loc = Location.none + }) + in + { psg_modalities = []; psg_items = items; psg_loc = Location.none } + let register exts env = (* Log errors ? *) let try_type sg' = try type_sig env sg' with _exn -> [] in @@ -155,8 +181,8 @@ let register exts env = exts in let process_ext e = - let prv = List.concat_map ~f:parse_sig e.private_def in - let pub = List.concat_map ~f:parse_sig e.public_def in + let prv = List.map ~f:parse_sig e.private_def |> combine_sigs in + let pub = List.map ~f:parse_sig e.public_def |> combine_sigs in (try_type prv, try_type pub) in let fakes, tops = List.split (List.map ~f:process_ext exts) in diff --git a/src/kernel/mtyper.ml b/src/kernel/mtyper.ml index f093c1518..ebdd2c411 100644 --- a/src/kernel/mtyper.ml +++ b/src/kernel/mtyper.ml @@ -37,9 +37,14 @@ type typedtree = [ `Interface of Typedtree.signature | `Implementation of Typedtree.structure ] type typedtree_items = - [ `Interface of (Parsetree.signature_item, Typedtree.signature_item) item list - | `Implementation of - (Parsetree.structure_item, Typedtree.structure_item) item list ] + | Interface_items of + { items : (Parsetree.signature_item, Typedtree.signature_item) item list; + psig_modalities : Parsetree.modalities; + sig_modalities : Mode.Modality.Value.Const.t; + sig_sloc : Location.t + } + | Implementation_items of + (Parsetree.structure_item, Typedtree.structure_item) item list type typer_cache_stats = Miss | Hit of { reused : int; typed : int } @@ -90,7 +95,7 @@ let initial_env res = res.initial_env let get_cache_stat res = res.cache_stat -let compatible_prefix result_items tree_items = +let compatible_prefix_rev result_items tree_items = let rec aux acc = function | ritem :: ritems, pitem :: pitems when Types.is_valid ritem.part_snapshot @@ -106,7 +111,7 @@ let compatible_prefix result_items tree_items = in aux [] (result_items, tree_items) -let rec type_structure caught env sg = function +let[@tail_mod_cons] rec type_structure caught env sg = function | parsetree_item :: rest -> let items, sg', part_env = Typemod.merlin_type_structure env sg [ parsetree_item ] @@ -131,10 +136,17 @@ let rec type_structure caught env sg = function item :: type_structure caught part_env part_rev_sg rest | [] -> [] -let rec type_signature caught env sg = function +let[@tail_mod_cons] rec type_signature caught env sg psg_modalities psg_loc = + function | parsetree_item :: rest -> - let { Typedtree.sig_final_env = part_env; sig_items; sig_type } = - Typemod.merlin_transl_signature env sg [ parsetree_item ] + let { Typedtree.sig_final_env = part_env; + sig_items; + sig_type; + sig_modalities = _; + sig_sloc = _ + } = + Typemod.merlin_transl_signature env sg + { psg_modalities; psg_items = [ parsetree_item ]; psg_loc } in let part_rev_sg = List.rev_append sig_type sg in let item = @@ -150,20 +162,22 @@ let rec type_signature caught env sg = function part_warnings = Warnings.backup () } in - item :: type_signature caught part_env part_rev_sg rest + item + :: type_signature caught part_env part_rev_sg psg_modalities psg_loc rest | [] -> [] let type_implementation config caught parsetree = - let { env; snapshot; ident_stamp; uid_stamp; value = prefix; index; _ } = + let { env; snapshot; ident_stamp; uid_stamp; value = cached_value; index; _ } + = get_cache config in - let prefix, parsetree, cache_stats = - match prefix with - | Some (`Implementation items) -> compatible_prefix items parsetree - | Some (`Interface _) | None -> ([], parsetree, Miss) + let rev_prefix, parsetree_suffix, cache_stats = + match cached_value with + | Some (Implementation_items items) -> compatible_prefix_rev items parsetree + | Some (Interface_items _) | None -> ([], parsetree, Miss) in let env', sg', snap', stamp', uid_stamp', warn' = - match prefix with + match rev_prefix with | [] -> (env, [], snapshot, ident_stamp, uid_stamp, Warnings.backup ()) | x :: _ -> caught := x.part_errors; @@ -178,11 +192,11 @@ let type_implementation config caught parsetree = Btype.backtrack snap'; Warnings.restore warn'; Env.cleanup_functor_caches ~stamp:stamp'; - let stamp = List.length prefix - 1 in + let stamp = List.length rev_prefix - 1 in Stamped_hashtable.backtrack !index_changelog ~stamp; Env.cleanup_usage_tables ~stamp:uid_stamp'; Shape.Uid.restore_stamp uid_stamp'; - let suffix = type_structure caught env' sg' parsetree in + let suffix = type_structure caught env' sg' parsetree_suffix in let () = List.iteri ~f:(fun i { typedtree_items = items, _; _ } -> @@ -190,21 +204,33 @@ let type_implementation config caught parsetree = !index_items ~index ~stamp config (`Impl items)) suffix in - let value = `Implementation (List.rev_append prefix suffix) in + let value = Implementation_items (List.rev_append rev_prefix suffix) in ( return_and_cache { env; snapshot; ident_stamp; uid_stamp; value; index }, cache_stats ) -let type_interface config caught parsetree = - let { env; snapshot; ident_stamp; uid_stamp; value = prefix; index; _ } = +let type_interface config caught (parsetree : Parsetree.signature) = + let { env; snapshot; ident_stamp; uid_stamp; value = cached_value; index; _ } + = get_cache config in - let prefix, parsetree, cache_stats = - match prefix with - | Some (`Interface items) -> compatible_prefix items parsetree - | Some (`Implementation _) | None -> ([], parsetree, Miss) + let rev_prefix, parsetree_suffix, cache_stats = + match cached_value with + | Some + (Interface_items + { items; psig_modalities; sig_modalities = _; sig_sloc = _ }) + (* only use the cached items if they were typed using the same modalities on the sig *) + when List.equal + ~eq:(fun + { Location.txt = Parsetree.Modality a; loc = _ } + { Location.txt = Parsetree.Modality b; loc = _ } + -> String.equal a b) + psig_modalities parsetree.psg_modalities -> + compatible_prefix_rev items parsetree.psg_items + | Some (Interface_items _) | Some (Implementation_items _) | None -> + ([], parsetree.psg_items, Miss) in let env', sg', snap', stamp', uid_stamp', warn' = - match prefix with + match rev_prefix with | [] -> (env, [], snapshot, ident_stamp, uid_stamp, Warnings.backup ()) | x :: _ -> caught := x.part_errors; @@ -219,11 +245,14 @@ let type_interface config caught parsetree = Btype.backtrack snap'; Warnings.restore warn'; Env.cleanup_functor_caches ~stamp:stamp'; - let stamp = List.length prefix in + let stamp = List.length rev_prefix in Stamped_hashtable.backtrack !index_changelog ~stamp; Env.cleanup_usage_tables ~stamp:uid_stamp'; Shape.Uid.restore_stamp uid_stamp'; - let suffix = type_signature caught env' sg' parsetree in + let suffix = + type_signature caught env' sg' parsetree.psg_modalities parsetree.psg_loc + parsetree_suffix + in let () = List.iteri ~f:(fun i { typedtree_items = items, _; _ } -> @@ -231,7 +260,28 @@ let type_interface config caught parsetree = !index_items ~index ~stamp config (`Intf items)) suffix in - let value = `Interface (List.rev_append prefix suffix) in + (* transl an empty signature to get the sig_modalities and sig_sloc *) + let ({ sig_final_env = _; + sig_items = _; + sig_type = _; + sig_modalities; + sig_sloc + } + : Typedtree.signature) = + Typemod.merlin_transl_signature Env.empty [] + { psg_modalities = parsetree.psg_modalities; + psg_items = []; + psg_loc = parsetree.psg_loc + } + in + let value = + Interface_items + { items = List.rev_append rev_prefix suffix; + sig_modalities; + psig_modalities = parsetree.psg_modalities; + sig_sloc + } + in ( return_and_cache { env; snapshot; ident_stamp; uid_stamp; value; index }, cache_stats ) @@ -268,16 +318,19 @@ let run config parsetree = let get_env ?pos:_ t = Option.value ~default:t.initial_env (match t.typedtree with - | `Implementation l -> Option.map ~f:(fun x -> x.part_env) (List.last l) - | `Interface l -> Option.map ~f:(fun x -> x.part_env) (List.last l)) + | Implementation_items l -> + Option.map ~f:(fun x -> x.part_env) (List.last l) + | Interface_items + { items = l; sig_modalities = _; psig_modalities = _; sig_sloc = _ } -> + Option.map ~f:(fun x -> x.part_env) (List.last l)) let get_errors t = let errors, checks = Option.value ~default:([], []) (let f x = (x.part_errors, x.part_checks) in match t.typedtree with - | `Implementation l -> Option.map ~f (List.last l) - | `Interface l -> Option.map ~f (List.last l)) + | Implementation_items l -> Option.map ~f (List.last l) + | Interface_items l -> Option.map ~f (List.last l.items)) in let caught = ref errors in Typecore.delayed_checks := checks; @@ -293,12 +346,19 @@ let get_typedtree t = (List.concat typd, List.concat typs) in match t.typedtree with - | `Implementation l -> + | Implementation_items l -> let str_items, str_type = split_items l in `Implementation { Typedtree.str_items; str_type; str_final_env = get_env t } - | `Interface l -> + | Interface_items { items = l; psig_modalities = _; sig_modalities; sig_sloc } + -> let sig_items, sig_type = split_items l in - `Interface { Typedtree.sig_items; sig_type; sig_final_env = get_env t } + `Interface + { Typedtree.sig_items; + sig_type; + sig_final_env = get_env t; + sig_modalities; + sig_sloc + } let get_index t = t.index diff --git a/src/ocaml/merlin_specific/tast_helper.ml b/src/ocaml/merlin_specific/tast_helper.ml index 78e7d62f6..2b3cb5ee5 100644 --- a/src/ocaml/merlin_specific/tast_helper.ml +++ b/src/ocaml/merlin_specific/tast_helper.ml @@ -4,10 +4,16 @@ module Pat = struct let pat_extra = [] let pat_attributes = [] - (* TODO: ask anton about changes here *) let constant ?(loc = Location.none) pat_env pat_type c = let pat_desc = Tpat_constant c in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } + { pat_desc; + pat_loc = loc; + pat_extra; + pat_attributes; + pat_type; + pat_env; + pat_unique_barrier = Unique_barrier.not_computed () + } let var ?loc uid pat_env pat_type str = let pat_loc = @@ -19,26 +25,68 @@ module Pat = struct let pat_desc = Tpat_var (Ident.create_local str.Asttypes.txt, str, uid, mode) in - { pat_desc; pat_loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } + { pat_desc; + pat_loc; + pat_extra; + pat_attributes; + pat_type; + pat_env; + pat_unique_barrier = Unique_barrier.not_computed () + } let record ?(loc = Location.none) pat_env pat_type lst closed_flag = let pat_desc = Tpat_record (lst, closed_flag) in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } + { pat_desc; + pat_loc = loc; + pat_extra; + pat_attributes; + pat_type; + pat_env; + pat_unique_barrier = Unique_barrier.not_computed () + } let tuple ?(loc = Location.none) pat_env pat_type lst = let pat_desc = Tpat_tuple lst in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } + { pat_desc; + pat_loc = loc; + pat_extra; + pat_attributes; + pat_type; + pat_env; + pat_unique_barrier = Unique_barrier.not_computed () + } let construct ?(loc = Location.none) pat_env pat_type lid cstr_desc args locs_coretype = let pat_desc = Tpat_construct (lid, cstr_desc, args, locs_coretype) in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } + { pat_desc; + pat_loc = loc; + pat_extra; + pat_attributes; + pat_type; + pat_env; + pat_unique_barrier = Unique_barrier.not_computed () + } let pat_or ?(loc = Location.none) ?row_desc pat_env pat_type p1 p2 = let pat_desc = Tpat_or (p1, p2, row_desc) in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } + { pat_desc; + pat_loc = loc; + pat_extra; + pat_attributes; + pat_type; + pat_env; + pat_unique_barrier = Unique_barrier.not_computed () + } let variant ?(loc = Location.none) pat_env pat_type lbl sub rd = let pat_desc = Tpat_variant (lbl, sub, rd) in - { pat_desc; pat_loc = loc; pat_extra; pat_attributes; pat_type; pat_env; pat_unique_barrier = Unique_barrier.not_computed () } + { pat_desc; + pat_loc = loc; + pat_extra; + pat_attributes; + pat_type; + pat_env; + pat_unique_barrier = Unique_barrier.not_computed () + } end diff --git a/src/ocaml/parsing/language_extension.ml b/src/ocaml/parsing/language_extension.ml index 5a889222c..4e6de4eaf 100644 --- a/src/ocaml/parsing/language_extension.ml +++ b/src/ocaml/parsing/language_extension.ml @@ -186,7 +186,7 @@ let of_string extn_name : exist option = (************************************) (* equality *) -let equal_t (type a b) (a : a t) (b : b t) : (a, b) Misc.eq option = +let equal_t (type a b) (a : a t) (b : b t) : (a, b) Misc_stdlib.eq option = match a, b with | Comprehensions, Comprehensions -> Some Refl | Mode, Mode -> Some Refl From e28fc5223b98e4a75590b475fb85e3b77835fe09 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 15:58:34 -0500 Subject: [PATCH 11/15] Update magic number script --- update-magic-numbers.sh | 83 ++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 46 deletions(-) diff --git a/update-magic-numbers.sh b/update-magic-numbers.sh index b133b1265..5b0ca4c91 100755 --- a/update-magic-numbers.sh +++ b/update-magic-numbers.sh @@ -7,31 +7,24 @@ cd "$(dirname "${BASH_SOURCE[0]}")" # src/ocaml/typing/magic_numbers.ml based on the magic numbers in # upstream/ocaml_flambda/configure -source_file=upstream/ocaml_flambda/configure -target_magic_file=src/ocaml/typing/magic_numbers.ml -target_config_file=src/ocaml/utils/config.ml +magic_file=src/ocaml/typing/magic_numbers.ml +config_file=src/ocaml/utils/config.ml +version_test_file=tests/test-dirs/version.t function usage () { cat <&2 exit 1 @@ -43,24 +36,20 @@ if [ -n "$(git status --porcelain)" ]; then exit 1 fi -# Collect magic numbers by greping for them in upstream/ocaml_flambda/configure -cmi_magic_number=$(grep -oP 'CMI_MAGIC_NUMBER=\K[a-zA-Z0-9]*' "$source_file") -ast_impl_magic_number=$(grep -oP 'AST_IMPL_MAGIC_NUMBER=\K[a-zA-Z0-9]*' "$source_file") -ast_intf_magic_number=$(grep -oP 'AST_INTF_MAGIC_NUMBER=\K[a-zA-Z0-9]*' "$source_file") -cmt_magic_number=$(grep -oP 'CMT_MAGIC_NUMBER=\K[a-zA-Z0-9]*' "$source_file") -cms_magic_number=$(grep -oP 'CMS_MAGIC_NUMBER=\K[a-zA-Z0-9]*' "$source_file") - -# Create an index magic number based on the cmi magic number. -# The cmi magic number is expected to be start with Caml1999I and end in some number. -# The index magic number is made to be Merl2023I, suffixed with that number. -# ex: Caml1999I551 -> Merl2023I551 -index_magic_number=$(echo "$cmi_magic_number" | sed -E 's/Caml1999I([0-9]+)/Merl2023I\1/') +# Construct a magic number based on a character used to characterize a file type and a +# number to denote version. See DEFINE_MAGIC_NUMBER in build-aux/ocaml_version.v4 in the +# compiler +function make_magic_number() { + prefix="${2:-Caml1999}" + echo "${prefix}${1}${magic_number_version}" +} # Update src/ocaml/typing/magic_numbers.ml -if grep -q "$version" "$target_magic_file"; then - echo "$target_magic_file already contains magic number for $version; skipping" +if grep -q "$version" "$magic_file"; then + echo "$magic_file already contains magic number for $version; skipping" else - echo "Updating magic numbers in $target_magic_file" + echo "Updating magic numbers in $magic_file" + cmi_magic_number=$(make_magic_number I) line_to_insert="| \"$cmi_magic_number\" -> Some \"$version\"" # The below sed looks for a line like: # | "Caml1999I551" -> Some "5.2.0minus-1" @@ -69,29 +58,31 @@ else # and inserts $line_to_insert between them. # The :a;N;$!ba; is some sed magic that makes it read in the entire file before # substituting, which is necessary to match mutli-line patterns. - sed -i -E ':a;N;$!ba;s/(\| "[a-zA-Z0-9]+" -> Some "\S*")\n(\s*)(\| _ -> None)/\1\n\2'"$line_to_insert"'\n\2\3/' "$target_magic_file" + sed -i -E ':a;N;$!ba;s/(\| "[a-zA-Z0-9]+" -> Some "\S*")\n(\s*)(\| _ -> None)/\1\n\2'"$line_to_insert"'\n\2\3/' "$magic_file" fi # Update the magic numbers in src/ocaml/utils/config.ml -echo "Updating magic numbers in $target_config_file" +echo "Updating magic numbers in $config_file and $version_test_file" function replace_magic_number () { name="$1" - value="$2" - sed -i 's/let '"$name"' = "[^"]*"/let '"$name"' = "'"$value"'"/' "$target_config_file" + value=$(make_magic_number "${@:2}") + sed -i 's/let '"$name"' = "[^"]*"/let '"$name"' = "'"$value"'"/' "$config_file" + sed -i 's/"'"$name"'": "[^"]*"/"'"$name"'": "'"$value"'"/' "$version_test_file" } -replace_magic_number cmi_magic_number "$cmi_magic_number" -replace_magic_number ast_impl_magic_number "$ast_impl_magic_number" -replace_magic_number ast_intf_magic_number "$ast_intf_magic_number" -replace_magic_number cmt_magic_number "$cmt_magic_number" -replace_magic_number cms_magic_number "$cms_magic_number" -replace_magic_number index_magic_number "$index_magic_number" +replace_magic_number cmi_magic_number I +replace_magic_number ast_impl_magic_number M +replace_magic_number ast_intf_magic_number N +replace_magic_number cmt_magic_number T +replace_magic_number cms_magic_number S +replace_magic_number index_magic_number I Merl2023 -# After updating magic numbers, check that all strings in $target_config_file are one of +# After updating magic numbers, check that all strings in $config_file are one of # the above magic numbers (or some other known string). This helps ensure that there were # not any new magic numbers added that this script does not know about. -okay_strings=".mli|$cmi_magic_number|$ast_impl_magic_number|$ast_intf_magic_number|$cmt_magic_number|$cms_magic_number|$index_magic_number" +# This isn't important to do in $version_test_file since tests would catch the mistake. +okay_strings="[A-Z][a-z]{3}[0-9]{4}[A-Z]$magic_number_version|.mli|[a-z_]+_magic_number" regex='"(?!'"$okay_strings"')[^"]*"' -if grep -q -P "$regex" "$target_config_file"; then - echo "Warning: There may be new magic numbers in $target_config_file that were not updated:" >&2 - grep -P "$regex" "$target_config_file" >&2 +if grep -q -P "$regex" "$config_file"; then + echo "Warning: There may be new magic numbers in $config_file that were not updated:" >&2 + grep -P "$regex" "$config_file" >&2 fi From a9c317cb523f9918f2749f6b9389a69a824e3ca6 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 16:15:34 -0500 Subject: [PATCH 12/15] Bump magic numbers --- src/ocaml/typing/magic_numbers.ml | 1 + src/ocaml/utils/config.ml | 12 ++++++------ tests/test-dirs/version.t | 24 ++++++++++++------------ 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/ocaml/typing/magic_numbers.ml b/src/ocaml/typing/magic_numbers.ml index 169c97c2c..7fcbf6f4e 100644 --- a/src/ocaml/typing/magic_numbers.ml +++ b/src/ocaml/typing/magic_numbers.ml @@ -58,6 +58,7 @@ module Cmi = struct | "Caml1999I550" -> Some "5.2.0minus-0" | "Caml1999I551" -> Some "5.2.0minus-1" | "Caml1999I552" -> Some "5.2.0minus-2" + | "Caml1999I553" -> Some "5.2.0minus-3" | _ -> None let () = assert (to_version_opt Config.cmi_magic_number <> None) diff --git a/src/ocaml/utils/config.ml b/src/ocaml/utils/config.ml index 068d637da..2c151579f 100644 --- a/src/ocaml/utils/config.ml +++ b/src/ocaml/utils/config.ml @@ -31,13 +31,13 @@ let version = Sys.ocaml_version (* When bumping this number, be sure to also update ../typing/magic_numbers.ml *) -let cmi_magic_number = "Caml1999I552" +let cmi_magic_number = "Caml1999I553" -let ast_impl_magic_number = "Caml1999M552" -let ast_intf_magic_number = "Caml1999N552" -let cmt_magic_number = "Caml1999T552" -let cms_magic_number = "Caml1999S552" -let index_magic_number = "Merl2023I552" +let ast_impl_magic_number = "Caml1999M553" +let ast_intf_magic_number = "Caml1999N553" +let cmt_magic_number = "Caml1999T553" +let cms_magic_number = "Caml1999S553" +let index_magic_number = "Merl2023I553" let interface_suffix = ref ".mli" diff --git a/tests/test-dirs/version.t b/tests/test-dirs/version.t index c3544cf4e..7fb0fd2f8 100644 --- a/tests/test-dirs/version.t +++ b/tests/test-dirs/version.t @@ -2,23 +2,23 @@ { "version": "The Merlin toolkit version %VERSION%, for Ocaml 5.2.0\n", "magicNumbers": { - "cmi_magic_number": "Caml1999I552", - "ast_intf_magic_number": "Caml1999N552", - "ast_impl_magic_number": "Caml1999M552", - "cmt_magic_number": "Caml1999T552", - "cms_magic_number": "Caml1999S552", - "index_magic_number": "Merl2023I552" + "cmi_magic_number": "Caml1999I553", + "ast_intf_magic_number": "Caml1999N553", + "ast_impl_magic_number": "Caml1999M553", + "cmt_magic_number": "Caml1999T553", + "cms_magic_number": "Caml1999S553", + "index_magic_number": "Merl2023I553" } } $ ocaml-index magic-numbers | jq { - "cmi_magic_number": "Caml1999I552", - "ast_intf_magic_number": "Caml1999N552", - "ast_impl_magic_number": "Caml1999M552", - "cmt_magic_number": "Caml1999T552", - "cms_magic_number": "Caml1999S552", - "index_magic_number": "Merl2023I552" + "cmi_magic_number": "Caml1999I553", + "ast_intf_magic_number": "Caml1999N553", + "ast_impl_magic_number": "Caml1999M553", + "cmt_magic_number": "Caml1999T553", + "cms_magic_number": "Caml1999S553", + "index_magic_number": "Merl2023I553" } Verify there is no difference between Merlin and Ocaml-index From d44c2fda8cbec5c090763ed2ffbbbdd980550f9d Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Wed, 13 Nov 2024 16:17:43 -0500 Subject: [PATCH 13/15] Promote tests --- tests/test-dirs/function-recovery.t | 2 +- tests/test-dirs/occurrences/project-wide/punning.t/run.t | 2 +- tests/test-dirs/search/search-by-type.t/run.t | 2 +- tests/test-dirs/type-enclosing/underscore-ids.t | 6 +++--- tests/test-dirs/typing-recovery.t | 8 ++++---- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/test-dirs/function-recovery.t b/tests/test-dirs/function-recovery.t index 761f184ff..484a87664 100644 --- a/tests/test-dirs/function-recovery.t +++ b/tests/test-dirs/function-recovery.t @@ -35,7 +35,7 @@ None expression (test.ml[3,104+11]..test.ml[3,104+28]) Texp_function - alloc_mode id(modevar#c[global,many,portable .. local,once,nonportable]);id(modevar#d[aliased,contended .. unique,uncontended]) + alloc_mode id(modevar#d[global,many,portable .. local,once,nonportable]);id(modevar#e[aliased,contended .. unique,uncontended]) [] Tfunction_body expression (test.ml[3,104+11]..test.ml[3,104+28]) diff --git a/tests/test-dirs/occurrences/project-wide/punning.t/run.t b/tests/test-dirs/occurrences/project-wide/punning.t/run.t index ba9a54ced..c1fcfd724 100644 --- a/tests/test-dirs/occurrences/project-wide/punning.t/run.t +++ b/tests/test-dirs/occurrences/project-wide/punning.t/run.t @@ -17,9 +17,9 @@ Convenience function for querying occurrences Get occurrences of an identifier that is used as the expression part of a punned let expression -FIXME: this should also include the occurrence on line 6 of usages.ml $ occurrences definitions.ml 1:4 $TESTCASE_ROOT/definitions.ml 1:4-5 + $TESTCASE_ROOT/usages.ml 6:7-8 Get occurrences, with the cursor pointing at the identifier in a punned let. Merlin returns the occurrences of the new variable bound in that let, rather than the diff --git a/tests/test-dirs/search/search-by-type.t/run.t b/tests/test-dirs/search/search-by-type.t/run.t index 499538f9e..798bf62a8 100644 --- a/tests/test-dirs/search/search-by-type.t/run.t +++ b/tests/test-dirs/search/search-by-type.t/run.t @@ -198,7 +198,7 @@ "constructible": "Hashtbl.replace_seq _ _" }, { - "file": "ocaml/stdlib/either.mli", + "file": "stdlib/either.mli", "start": { "line": 86, "col": 0 diff --git a/tests/test-dirs/type-enclosing/underscore-ids.t b/tests/test-dirs/type-enclosing/underscore-ids.t index 9e6800531..542096a8f 100644 --- a/tests/test-dirs/type-enclosing/underscore-ids.t +++ b/tests/test-dirs/type-enclosing/underscore-ids.t @@ -382,16 +382,16 @@ We try several places in the identifier to check the result stability pattern (under.ml[2,13+4]..under.ml[2,13+5]) Tpat_var \"f/276\" - value_mode meet(local,once,nonportable)(modevar#2[global,many,portable .. global,many,nonportable]);join(aliased,contended)(modevar#3[aliased,uncontended .. unique,uncontended]) + value_mode meet(local,once,nonportable)(modevar#3[global,many,portable .. global,many,nonportable]);join(aliased,contended)(modevar#4[aliased,uncontended .. unique,uncontended]) expression (under.ml[2,13+6]..under.ml[5,70+17]) ghost Texp_function - alloc_mode map_comonadic(regional_to_global)(modevar#4[global,many,portable .. global,many,nonportable]);id(modevar#5[aliased,contended .. unique,uncontended]) + alloc_mode map_comonadic(regional_to_global)(modevar#5[global,many,portable .. global,many,nonportable]);id(modevar#6[aliased,contended .. unique,uncontended]) [ Nolabel Param_pat pattern (under.ml[2,13+6]..under.ml[2,13+9]) Tpat_var \"x/278\" - value_mode map_comonadic(local_to_regional)(modevar#6[global,many,portable .. local,once,nonportable]);join(aliased,contended)(modevar#7[aliased,contended .. unique,uncontended]) + value_mode map_comonadic(local_to_regional)(modevar#7[global,many,portable .. local,once,nonportable]);join(aliased,contended)(modevar#8[aliased,contended .. unique,uncontended]) ] Tfunction_body expression (under.ml[2,13+18]..under.ml[5,70+17]) diff --git a/tests/test-dirs/typing-recovery.t b/tests/test-dirs/typing-recovery.t index 875e18b4f..a1f0a13c5 100644 --- a/tests/test-dirs/typing-recovery.t +++ b/tests/test-dirs/typing-recovery.t @@ -594,7 +594,7 @@ make sure we also handle that correctly in structures: None ] Tpat_var \"foo2/276\" - value_mode meet(local,once,nonportable)(modevar#2[global,many,portable .. global,many,nonportable]);join(aliased,contended)(modevar#3[aliased,uncontended .. unique,uncontended]) + value_mode meet(local,once,nonportable)(modevar#3[global,many,portable .. global,many,nonportable]);join(aliased,contended)(modevar#4[aliased,uncontended .. unique,uncontended]) expression (test_ct.ml[3,20+24]..test_ct.ml[3,20+28]) extra Texp_constraint @@ -613,7 +613,7 @@ make sure we also handle that correctly in structures: ] alloc_const_option_mode None,None,None,None,None Texp_tuple - alloc_mode meet(local,once,nonportable,map_comonadic(regional_to_global)(modevar#2[global,many,portable .. global,many,nonportable]));unique,uncontended + alloc_mode meet(local,once,nonportable,map_comonadic(regional_to_global)(modevar#3[global,many,portable .. global,many,nonportable]));unique,uncontended [ Label: None expression (test_ct.ml[3,20+24]..test_ct.ml[3,20+25]) @@ -643,7 +643,7 @@ make sure we also handle that correctly in structures: [] ] Tpat_var \"foo3/277\" - value_mode meet(local,once,nonportable)(modevar#4[global,many,portable .. global,many,nonportable]);join(aliased,contended)(modevar#5[aliased,uncontended .. unique,uncontended]) + value_mode meet(local,once,nonportable)(modevar#6[global,many,portable .. global,many,nonportable]);join(aliased,contended)(modevar#7[aliased,uncontended .. unique,uncontended]) expression (test_ct.ml[5,50+23]..test_ct.ml[5,50+27]) extra Texp_constraint @@ -662,7 +662,7 @@ make sure we also handle that correctly in structures: ] alloc_const_option_mode None,None,None,None,None Texp_tuple - alloc_mode meet(local,once,nonportable,map_comonadic(regional_to_global)(modevar#4[global,many,portable .. global,many,nonportable]));unique,uncontended + alloc_mode meet(local,once,nonportable,map_comonadic(regional_to_global)(modevar#6[global,many,portable .. global,many,nonportable]));unique,uncontended [ Label: None expression (test_ct.ml[5,50+23]..test_ct.ml[5,50+24]) From 27af03dd805b41d4109a082a18d33bd89a7a2f60 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Thu, 14 Nov 2024 13:35:29 -0500 Subject: [PATCH 14/15] Add comments about subdirectory --- import-added-ocaml-source-files.sh | 3 +++ import-ocaml-source.sh | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/import-added-ocaml-source-files.sh b/import-added-ocaml-source-files.sh index 64d037884..85f1080d7 100755 --- a/import-added-ocaml-source-files.sh +++ b/import-added-ocaml-source-files.sh @@ -18,6 +18,9 @@ Fetches any new files that previously hadn't been imported. This ignores files outside of *directories* that were previously imported, so if a whole new directory is added, you may need to manually add the new file. + +See usage information for ./import-ocaml-source.sh for more info about +the subdirectory arguments. USAGE } diff --git a/import-ocaml-source.sh b/import-ocaml-source.sh index a1b0514b6..13157e1d6 100755 --- a/import-ocaml-source.sh +++ b/import-ocaml-source.sh @@ -23,6 +23,12 @@ This attempts to import new files from the compiler by running the try making matched pairs of files in this repository with the right names: one in "upstream/ocaml_flambda/", and one in "src/ocaml". Then running the script will pull in the named file(s). + +The SUBDIRECTORY argument is useful when importing from a repository that buries +the relevant compiler files inside a subdirectory. This used to be the case for +flambda (files were under an "ocaml/" direcotry), although it is no longer the +case. The OLD_SUBDIRECTORY argument is useful for when the directory structure +has changed since the last import. USAGE } @@ -50,6 +56,8 @@ fi if [[ $# -le 4 ]]; then repository="${2-$repository}" + # Although the subdirectory arguments are probably no longer useful, it doesn't hurt + # to keep them around in case they ever are of use. subdirectory="${3-$subdirectory}" old_subdirectory="${4-$old_subdirectory}" else From 35e3fdb64efe5c0b1988ba93790d12e51773f639 Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Fri, 15 Nov 2024 14:40:07 -0500 Subject: [PATCH 15/15] Use Ast_helper.Sg.mk --- src/analysis/ppx_expand.ml | 5 +---- src/analysis/ptyp_of_type.ml | 12 ++++-------- src/kernel/extension.ml | 2 +- src/kernel/mtyper.ml | 9 ++++----- 4 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/analysis/ppx_expand.ml b/src/analysis/ppx_expand.ml index f50b912d6..5d2add8b2 100644 --- a/src/analysis/ppx_expand.ml +++ b/src/analysis/ppx_expand.ml @@ -143,10 +143,7 @@ let get_ppxed_source ~ppxed_parsetree ~pos ppx_kind_with_attr : | Sig_item _, attr_loc -> let exp = Pprintast.signature Format.str_formatter - { psg_modalities = []; - psg_items = List.rev !signature; - psg_loc = Location.none - }; + (Ast_helper.Sg.mk (List.rev !signature)); Format.flush_str_formatter () in { code = exp; attr_start = attr_loc.loc_start; attr_end = attr_loc.loc_end } diff --git a/src/analysis/ptyp_of_type.ml b/src/analysis/ptyp_of_type.ml index ac4be0256..345b78243 100644 --- a/src/analysis/ptyp_of_type.ml +++ b/src/analysis/ptyp_of_type.ml @@ -277,14 +277,10 @@ and signature_item (str_item : Types.signature_item) = Sig.text [ Docstrings.docstring str Location.none ] |> List.hd and signature (items : Types.signature) = - { psg_modalities = []; - psg_items = - List.map (group_items items) ~f:(function - | Item item -> signature_item item - | Type (rec_flag, type_decls) -> - Ast_helper.Sig.type_ rec_flag type_decls); - psg_loc = Location.none - } + Ast_helper.Sg.mk + (List.map (group_items items) ~f:(function + | Item item -> signature_item item + | Type (rec_flag, type_decls) -> Ast_helper.Sig.type_ rec_flag type_decls)) and group_items (items : Types.signature_item list) = let rec read_type type_acc items = diff --git a/src/kernel/extension.ml b/src/kernel/extension.ml index 10693255f..c15c4a0b9 100644 --- a/src/kernel/extension.ml +++ b/src/kernel/extension.ml @@ -166,7 +166,7 @@ let combine_sigs sigs : Parsetree.signature = psig_loc = Location.none }) in - { psg_modalities = []; psg_items = items; psg_loc = Location.none } + Ast_helper.Sg.mk items let register exts env = (* Log errors ? *) diff --git a/src/kernel/mtyper.ml b/src/kernel/mtyper.ml index ebdd2c411..5e1ac03eb 100644 --- a/src/kernel/mtyper.ml +++ b/src/kernel/mtyper.ml @@ -146,7 +146,8 @@ let[@tail_mod_cons] rec type_signature caught env sg psg_modalities psg_loc = sig_sloc = _ } = Typemod.merlin_transl_signature env sg - { psg_modalities; psg_items = [ parsetree_item ]; psg_loc } + (Ast_helper.Sg.mk ~loc:psg_loc ~modalities:psg_modalities + [ parsetree_item ]) in let part_rev_sg = List.rev_append sig_type sg in let item = @@ -269,10 +270,8 @@ let type_interface config caught (parsetree : Parsetree.signature) = } : Typedtree.signature) = Typemod.merlin_transl_signature Env.empty [] - { psg_modalities = parsetree.psg_modalities; - psg_items = []; - psg_loc = parsetree.psg_loc - } + (Ast_helper.Sg.mk ~modalities:parsetree.psg_modalities + ~loc:parsetree.psg_loc []) in let value = Interface_items